SYSTEMD-GPT-AUTO-GENERATOR(8)

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

موجز

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

الوصف

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 | Swap | 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.