SYSTEMD-GPT-AUTO-GENERATOR(8)

الاسم
مُولّد-نظام-جي-بي-تي-آلي - مُولّد للاكتشاف الآلي وتركيب أقسام الجذر، /home/، /srv/، /var/ و /var/tmp/، بالإضافة إلى اكتشاف وتمكين أقسام المبادلة، استنادًا إلى GUIDs نوع قسم GPT

موجز

/usr/lib/systemd/system-generators/systemd-gpt-auto-generator

الوصف

مُولّد-نظام-جي-بي-تي-آلي هو مُولّد وحدات يكتشف آليًا قسم الجذر، /home/، /srv/، /var/، /var/tmp/، قسم نظام EFI (ESP)، قسم محمل الإقلاع الموسع (XBOOTLDR)، وأقسام المبادلة وينشئ وحدات تركيب ومبادلة لها، استنادًا إلى GUIDs نوع قسم جداول أقسام GUID (GPT). انظر مواصفات UEFI[1]، الفصل 5 لمزيد من التفاصيل. ينفذ مواصفات الأقسام القابلة للاكتشاف UAPI.2[2].

لاحظ أن هذا المُولّد ليس له تأثير على الأنظمة غير GPT. لن ينشئ أيضًا تكوين نقطة تركيب للأدلة التي تحتوي بالفعل على ملفات أو إذا كانت نقطة التركيب مُهيأة صراحة في fstab(5). بالإضافة إلى ذلك، لن تُنشأ أي وحدة لقسم ESP أو XBOOTLDR إذا وُجدت إدخالات تركيب في التسلسلات الهرمية /boot/ أو /efi/ في fstab(5).

إذا تم تجاوز الوحدات التي ينشئها هذا المُولّد، على سبيل المثال بواسطة وحدات في أدلة ذات أولوية أعلى، فقد تظل الإضافات والتبعيات الإضافية التي أنشأها هذا المُولّد مستخدمة.

عند التشغيل في قرص RAM الأولي (initrd)، يمكن لهذا المُولّد البحث آليًا عن نظام ملفات الجذر. تحديدًا:

    • سيبحث عن قسم الجذر على نفس القرص الفعلي حيث يوجد قسم نظام EFI (ESP). لاحظ أن الدعم من محمل الإقلاع مطلوب لكي يعمل هذا: يُستخدم متغير EFI LoaderDevicePartUUID من UUID البائع 4a67b082-0a4c-41cf-b6c7-440b29bb8c4f لتحديد القسم (وبالتالي القرص) الذي تم إقلاع النظام منه. إذا لم يضبط محمل الإقلاع هذا المتغير، فلن يتمكن هذا المُولّد من اكتشاف قسم الجذر. انظر واجهة محمل الإقلاع[3] للتفاصيل.

    • بدلاً من ذلك، سيبحث عن نظام ملفات الجذر على جهاز كتلة حلقة ارتجاعية حيث يكون حقل ".lo_name" مضبوطًا على إحدى السلاسل الحرفية "rootdisk" أو "rootdisk.raw". يمكن ضبط هذا الحقل عبر سلسلة losetup' --loop-ref=. بالنسبة للصور التي تم تنزيلها عبر systemd-import-generator(8)، تأكد من ضبط خيار "blockdev" وضبط سلسلة الاسم المحلي على "rootdisk" لتحقيق هذا التأثير. لاحظ أن اكتشاف نظام ملفات الجذر على أجهزة كتلة الحلقة الارتجاعية مثل هذه يتم فقط إذا تم تحديد "root=gpt-auto" أو "root=dissect" صراحة على سطر أوامر النواة، على عكس الاكتشاف المستند إلى ESP المُبلغ عنه من محمل الإقلاع والذي يتم تمكينه أيضًا إذا لم يتم تحديد أي معامل "root=" على الإطلاق. (يعتمد الأخير على إنشاء رابط رمزي لجهاز الكتلة systemd-udevd.service' /dev/gpt-auto-root).

عند التشغيل على النظام المضيف (أي بعد الانتقال بنجاح من initrd إلى نظام ملفات الجذر)، سيبحث هذا المُولّد عن جميع الأقسام الأخرى على نفس القرص الفعلي كقسم الجذر. لهذا الاكتشاف، الدعم من محمل الإقلاع غير مطلوب. علاوة على ذلك، ليس مطلوبًا أن يكون قسم الجذر قد تم اكتشافه آليًا بواسطة initrd (كما هو موصوف أعلاه) لكي يحدث اكتشاف أقسام الملفات غير الجذرية. أو بعبارة أخرى: الاكتشاف الآلي لنظام ملفات الجذر وأنظمة الملفات غير الجذرية هما عمليتان مستقلتان، لا تعتمدان على بعضهما البعض، ويتم إجراؤهما خلال مرحلتين متميزتين من عملية الإقلاع (واحدة في initrd، والأخرى بعده). لن يتم البحث عن هذه الأقسام على الأنظمة حيث يتم توزيع نظام ملفات الجذر على أقراص متعددة، على سبيل المثال عبر btrfs RAID.

يمكن تهيئة قسم الجذر صراحة عن طريق إنشاء رابط رمزي من /run/systemd/volatile-root إلى /dev/block/$major:$minor. هذا مفيد بشكل خاص إذا تم استبدال تركيب الجذر بشكل من أشكال نظام الملفات المتطاير (overlayfs).

مُولّد-نظام-جي-بي-تي-آلي مفيد لمركزة تهيئة نظام الملفات في جدول الأقسام وجعل التهيئة في /etc/fstab أو على سطر أوامر النواة غير ضرورية.

يبحث هذا المُولّد عن الأقسام استنادًا إلى GUID نوع قسمها. يتم التعرف على GUIDs نوع القسم التالية:

جدول 1. GUIDs نوع القسم
نوع القسم | GUID | الاسم | نقطة التركيب | الشرح
SD_GPT_ROOT_X86_64 | 4f68bce3-e8cd-4db1-96e7-fbcaf984b709 | قسم الجذر (x86-64) | / | القسم الأول الذي يحمل UUID من هذا النوع، والموجود على نفس القرص الذي يحتوي على ESP المستخدم للإقلاع، يُستخدم كنظام الملفات الجذر / على أنظمة AMD64 / x86 ذات 64 بت.
SD_GPT_ROOT_ARM64 | b921b045-1df0-41c3-af44-4c6f280d3fae | القسم الجذر (ARM 64 بت) | / | القسم الأول الذي يحمل UUID من هذا النوع، والموجود على نفس القرص الذي يحتوي على ESP المستخدم للإقلاع، يُستخدم كنظام الملفات الجذر / على أنظمة AArch64 / ARM ذات 64 بت.
SD_GPT_ROOT_ALPHA SD_GPT_ROOT_ARC SD_GPT_ROOT_ARM SD_GPT_ROOT_ARM64 SD_GPT_ROOT_IA64 SD_GPT_ROOT_LOONGARCH64 SD_GPT_ROOT_MIPS SD_GPT_ROOT_MIPS64 SD_GPT_ROOT_MIPS_LE SD_GPT_ROOT_MIPS64_LE SD_GPT_ROOT_PARISC SD_GPT_ROOT_PPC SD_GPT_ROOT_PPC64 SD_GPT_ROOT_PPC64_LE SD_GPT_ROOT_RISCV32 SD_GPT_ROOT_RISCV64 SD_GPT_ROOT_S390 SD_GPT_ROOT_S390X SD_GPT_ROOT_TILEGX SD_GPT_ROOT_X86 SD_GPT_ROOT_X86_64 SD_GPT_USR_ALPHA SD_GPT_USR_ARC SD_GPT_USR_ARM SD_GPT_USR_IA64 SD_GPT_USR_LOONGARCH64 SD_GPT_USR_MIPS_LE SD_GPT_USR_MIPS64_LE SD_GPT_USR_PARISC SD_GPT_USR_PPC SD_GPT_USR_PPC64 SD_GPT_USR_PPC64_LE SD_GPT_USR_RISCV32 SD_GPT_USR_RISCV64 SD_GPT_USR_S390 SD_GPT_USR_S390X SD_GPT_USR_TILEGX SD_GPT_USR_X86 | ... | الأقسام الجذرية للمعماريات الأخرى | / | القسم الأول الذي يحمل UUID من النوع المطابق للمعمارية، والموجود على نفس القرص الذي يحتوي على ESP المستخدم للإقلاع، يُستخدم كنظام الملفات الجذر /. للقائمة الكاملة والقيم الثابتة، انظر UAPI.2 Discoverable Partitions Specification[2].
SD_GPT_HOME | 933ac7e1-2eb4-4f13-b844-0e14e2aef915 | القسم الرئيسي | /home/ | القسم الأول الذي يحمل UUID من هذا النوع على نفس قرص القسم الجذر يُركب إلى /home/.
SD_GPT_SRV | 3b8f8425-20e0-4f3b-907f-1a25a76f98e8 | قسم بيانات الخادم | /srv/ | القسم الأول الذي يحمل UUID من هذا النوع على نفس قرص القسم الجذر يُركب إلى /srv/.
SD_GPT_VAR | 4d21b016-b534-45c2-a9fb-5c16e091fd2d | قسم البيانات المتغيرة | /var/ | القسم الأول الذي يحمل UUID من هذا النوع على نفس قرص القسم الجذر يُركب إلى /var/ — بشرط أن يتطابق UUID لقسمه مع أول 128 بت من HMAC-SHA256 لـ uuid نوع GPT لهذا القسم والمُعيّن بواسطة معرف الآلة للتثبيت المخزن في machine-id(5). يمكن إنشاء هذا باستخدام systemd-id128(1).
SD_GPT_TMP | 7ec6f557-3bc5-4aca-b293-16ef5df639d1 | قسم البيانات المؤقتة | /var/tmp/ | القسم الأول الذي يحمل UUID من هذا النوع على نفس قرص القسم الجذر يُركب إلى /var/tmp/.
SD_GPT_SWAP | 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f | المبادلة | n/a | جميع الأقسام التي تحمل UUID من هذا النوع على نفس قرص القسم الجذر تُستخدم كمبادلة.
SD_GPT_ESP | c12a7328-f81f-11d2-ba4b-00a0c93ec93b | قسم نظام EFI (ESP) | /efi/ أو /boot/ | القسم الأول الذي يحمل UUID من هذا النوع والموجود على نفس قرص القسم الجذر يُركب إلى /boot/ أو /efi/، انظر أدناه.
SD_GPT_XBOOTLDR | bc13c2ff-59e6-4262-a352-b275fd6f7172 | قسم محمل الإقلاع الموسع | /boot/ | القسم الأول الذي يحمل UUID من هذا النوع والموجود على نفس قرص القسم الجذر يُركب إلى /boot/، انظر أدناه.

يفهم هذا المولد أعلام السمات التالية للأقسام:

جدول 2. أعلام سمات الأقسام
علم | القيمة | ينطبق على | الشرح
SD_GPT_FLAG_READ_ONLY | 0x1000000000000000 | /, /home/, /srv/, /var/, /var/tmp/, قسم محمل الإقلاع الموسع | يتم تثبيت القسم للقراءة فقط
SD_GPT_FLAG_NO_AUTO | 0x8000000000000000 | /, /home/, /srv/, /var/, /var/tmp/, قسم محمل الإقلاع الموسع | لا يتم تثبيت القسم آليًا
SD_GPT_FLAG_NO_BLOCK_IO_PROTOCOL | 0x0000000000000002 | قسم نظام EFI (ESP) | لا يتم تثبيت القسم آليًا

قد يتم تشفير أقسام /home/ و /srv/ و /var/ و /var/tmp/ والمبادلة بتنسيق LUKS. في هذه الحالة، يتم إعداد جهاز معين خرائط الأجهزة تحت الأسماء /dev/mapper/home أو /dev/mapper/srv أو /dev/mapper/var أو /dev/mapper/tmp أو /dev/mapper/swap. لاحظ أن هذا قد يخلق تعارضات إذا تم إدراج نفس القسم في /etc/crypttab باسم جهاز معين خرائط أجهزة مختلف.

عند تشغيل systemd في initrd، قد يتم تشفير القسم / باستخدام LUKS أيضًا. في هذه الحالة، يتم إعداد جهاز معين خرائط الأجهزة تحت الاسم /dev/mapper/root، ويتم إعداد sysroot.mount الذي يقوم بتثبيت الجهاز تحت /sysroot. لمزيد من المعلومات، راجع bootup(7).

يتم إنشاء وحدات التثبيت والتثبيت الآلي لقسم نظام EFI (ESP) وقسم محمل الإقلاع الموسع (XBOOTLDR) على أنظمة EFI. إذا كان القرص يحتوي على قسم XBOOTLDR، كما هو معرف في مواصفات محمل الإقلاع UAPI.1[4]، فإنه يصبح متاحًا في /boot/. ينشئ هذا المولد وحدة تثبيت آلي؛ سيتم تنشيط التثبيت فقط عند الطلب عند الوصول. سيتم إنشاء نقطة التثبيت إذا لزم الأمر.

يتم تثبيت ESP إلى /boot/ إذا كان هذا الدليل موجودًا ولا يُستخدم لـ XBOOTLDR، وإلا إلى /efi/. كما هو الحال مع /boot/، يتم استخدام وحدة تثبيت آلي. سيتم إنشاء نقطة التثبيت إذا لزم الأمر.

لا يتم إنشاء أي تهيئة لنقاط التثبيت التي تم تكوينها في fstab(5) أو عندما يحتوي الدليل الهدف على ملفات.

عند استخدام هذا المولد مع أنظمة ملفات btrfs، تأكد من تعيين الأحجام الفرعية المبدئية الصحيحة عليها، باستخدام btrfs subvolume set-default.

إذا تم إقلاع النظام عبر systemd-stub(7) وأبلغ الدليل إلى مساحة المستخدم بأن صورة النواة تم قياسها إلى TPM2 PCR، فسيتم قياس أي معرفات حجم جذر و/var/ مكتشفة (ومفاتيح تشفير الحجم، في حالة تشفيرها) آليًا إلى PCR 15 عند التنشيط، عبر systemd-pcrfs@.service(8). علاوة على ذلك، يتم قياس معلومات حول فتحة مفتاح LUKS المستخدمة لفتح الحجم في NvPCR "cryptsetup". أخيرًا، إذا كان القسم الجذر أو /usr/ محميًا عبر Verity، يتم قياس تجزئة الجذر الخاصة به وسلسلة/مُصدر المفتاح المستخدم لتوقيع تجزئة الجذر المقدم (إن وجد) في NvPCR "verity".

يتم التحقق من بيانات تعريف قيود التثبيت الموجودة في أنظمة الملفات عن طريق سحب systemd-validatefs@.service(8) للتثبيتات المُنشأة.

يقوم systemd-gpt-auto-generator بتنفيذ systemd.generator(7).

سطر أوامر النواة

يفهم systemd-gpt-auto-generator معاملات سطر أوامر النواة التالية:

systemd.gpt_auto، rd.systemd.gpt_auto
    تأخذ هذه الخيارات وسيطًا منطقيًا اختياريًا، وتكون مبدئيًا بنعم. يتم تمكين المولد مبدئيًا، ويمكن استخدام قيمة خاطئة لتعطيله (مثل "systemd.gpt_auto=0").

    أُضيف في الإصدارة 242.

systemd.image_policy=
    يأخذ سلسلة سياسة تشريح صورة كوسيط (وفقًا لـ systemd.image-policy(7))، ويسمح بفرض سياسة على تشريح واستخدام إدخالات جدول أقسام GPT المكتشفة آليًا.

    لاحظ أن سياسة الصورة المحددة لا تؤخذ في الاعتبار للاكتشاف الآلي لنظام الملفات الجذر أو /usr/ ما لم يتم تحديد root=dissect/mount.usr=dissect (أو root=dissect-force). (سيتم تطبيق السياسة دائمًا على أنواع الأقسام الأخرى القابلة للاكتشاف الآلي.)

    أُضيف في الإصدار 254.

systemd.image_filter=
    تأخذ سلسلة فلتر تشريح صورة كوسيطة (وفقًا لـ systemd.image-filter(7))، وتسمح بفرض مجموعة من أنماط المطابقة العامة على مطابقة القسم لإدخالات جدول أقسام GPT المكتشفة آليًا.

    لاحظ أن فلتر الصورة المحدد لا يُؤخذ في الاعتبار للاكتشاف الآلي لنظام الملفات الجذر أو /usr/ ما لم يتم تحديد root=dissect/mount.usr=dissect (أو root=dissect-force). (سيُطبق الفلتر دائمًا على أنواع الأقسام الأخرى القابلة للاكتشاف الآلي.)

    أُضيف في الإصدار 258.

root=، rootfstype=، rootflags=
    عند استخدام root= مع القيمة الخاصة "gpt-auto"، يتم تمكين الاكتشاف الآلي الأساسي للقسم الجذر بناءً على نوع قسم GPT. يُؤخر استخدام القسم الجذر حتى الخروج من وضع إعادة الضبط إلى المصنع، في حال تم تمكينه أثناء الإقلاع الحالي. انظر إعادة الضبط إلى المصنع[5] لمزيد من المعلومات حول ذلك. إذا تم تحديد "gpt-auto-force"، يتم تمكين الاكتشاف الآلي للقسم الجذر متجاهلاً أي وضع إعادة ضبط إلى المصنع.

    إذا تم تعيين root= إلى القيمة الخاصة "dissect"، يتم تمكين الاكتشاف الآلي الكامل للقسم الجذر بناءً على معلومات قسم GPT. هذه مجموعة شاملة من root=gpt-auto، حيث تقوم آليًا بتكوين أقسام Verity (بما في ذلك الإعداد القائم على التوقيع) باتباع المنطق المحدد لذلك في مواصفات الأقسام القابلة للاكتشاف UAPI.2[6]. علاوة على ذلك، تأخذ سياسة الصورة المكونة وفلتر الصورة في الاعتبار لجميع أنواع الأقسام، بما في ذلك نظام الملفات الجذر. "root=dissect" ستنتظر حتى اكتمال مرحلة إعادة الضبط إلى المصنع إذا كانت سارية المفعول قبل تنشيط نظام الملفات الجذر. استخدم "root=dissect-force" لتجاهل مرحلة إعادة الضبط إلى المصنع وتنشيط نظام الملفات الجذر فورًا.

    أي قيمة أخرى (أي بخلاف "gpt-auto"، "gpt-auto-force"، "dissect"، "dissect-force") تعطل الاكتشاف الآلي لنظام الملفات الجذر.

    إذا لم يتم تحديد root= على الإطلاق في سطر أوامر النواة، يتم أيضًا تمكين الاكتشاف الآلي للقسم الجذر عبر ESP المبلغ عنه من قبل محمل الإقلاع (مع مراعاة حالة إعادة الضبط إلى المصنع، أي ما يعادل "root=gpt-auto")، ولكن في هذه الحالة لا يتم تمكين الاكتشاف بناءً على حقل ".lo_name" لجهاز الكتلة الحلقية.

    تُستخدم خيارات rootfstype= و rootflags= لتحديد نوع نظام الملفات وخياراته عند اكتشاف نظام الملفات الجذر آليًا.

    أُضيف في الإصدارة 242.

mount.usr=، mount.usrfstype=، mount.usrflags=
    مشابه لـ root=، rootfstype=، rootflags= (انظر أعلاه)، ولكنه ينطبق على قسم /usr/ بدلاً من ذلك. لاحظ أن إعدادات "gpt-auto"، "gpt-auto-force"، "dissect-force" التي يفهمها root= غير مدعومة من قبل mount.usr= (ولكن "dissect" مدعومة).

    لاحظ أيضًا أن الاكتشاف الآلي للقسم لـ /usr/ يجب تمكينه صراحة، على عكس الاكتشاف لنظام الملفات الجذر، الذي يتم تمكينه إذا لم يتم تمرير أي معامل root= على الإطلاق.

    أُضيف في الإصدار 258.

rw، ro
    قم بتركيب القسم الجذر للقراءة-الكتابة أو للقراءة فقط مبدئيًا.

    لاحظ أنه على عكس معظم خيارات سطر أوامر النواة، فإن هذه الإعدادات لا تتجاوز التهيئة في نظام الملفات، ويمكن إعادة تركيب نظام الملفات لاحقًا. انظر systemd-remount-fs.service(8).

    أُضيف في الإصدارة 242.

systemd.swap=
    تأخذ وسيطة منطقية أو تمكين الخيار إذا تم تحديده بدون وسيطة. إذا تم تعطيله، يتم تعطيل الاكتشاف الآلي لقسم (أقسام) المبادلة بناءً على نوع قسم GPT. المبدئي هو ممكّن.

    أُضيف في الإصدار 254.

انظر أيضًا

systemd(1)، systemd.mount(5)، systemd.swap(5)، systemd-fstab-generator(8)، systemd-cryptsetup@.service(8)، systemd-pcrfs@.service(8)، systemd-validatefs@.service(8)، machine-id(5)، cryptsetup(8)، fstab(5)، btrfs(8)

ملاحظات

1.  مواصفات UEFI
    https://uefi.org/specifications

2.  UAPI.2 مواصفات الأقسام القابلة للاكتشاف
    https://uapi-group.org/specifications/specs/discoverable_partitions_specification

3.  واجهة محمل الإقلاع
    https://systemd.io/BOOT_LOADER_INTERFACE

4.  مواصفات محمل الإقلاع UAPI.1
    https://uapi-group.org/specifications/specs/boot_loader_specification

5.  إعادة ضبط المصنع
    https://systemd.io/FACTORY_RESET

6.  UAPI.2 مواصفات الأقسام القابلة للاكتشاف
    https://uapi-group.org/specifications/specs/discoverable_partitions_specification/

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.