SYSTEMD-BOOT(7)

الاسم
systemd-boot، sd-boot - مدير إقلاع UEFI بسيط

الوصف

systemd-boot (اختصار: sd-boot) هو مدير إقلاع UEFI بسيط. يوفر قائمة نصية لاختيار مدخل الإقلاع ومحررًا لسطر أوامر النواة. يدعم systemd-boot الأنظمة ذات البرامج الثابتة UEFI فقط.

يقوم systemd-boot بتحميل معلومات مدخل الإقلاع من قسم نظام EFI (ESP)، الذي يُوصل عادةً في /efi/ أو /boot/ أو /boot/efi/ أثناء وقت تشغيل نظام التشغيل، وكذلك من قسم محمل الإقلاع الموسع (XBOOTLDR) إذا كان موجودًا (يُوصل عادةً إلى /boot/). يجب أن توجد أجزاء ملفات التهيئة والنوى وصور initrd وصور EFI الأخرى للإقلاع عمومًا على ESP أو قسم محمل الإقلاع الموسع. يجب بناء نوى Linux مع CONFIG_EFI_STUB لتكون قابلة للتنفيذ المباشر كصورة EFI. أثناء الإقلاع، يقوم systemd-boot آليًا بتجميع قائمة بمداخل الإقلاع من المصادر التالية:

    • مداخل الإقلاع المُعرّفة بملفات وصف النوع رقم 1 من UAPI.1 مواصفات محمل الإقلاع[1] الموجودة في /loader/entries/ على ESP وقسم محمل الإقلاع الموسع. تصف هذه عادةً صور نواة Linux مع صور initrd المرتبطة، ولكنها قد تصف بدلاً من ذلك ملفات تنفيذية EFI أخرى عشوائية.

    • صور النواة الموحدة، النوع رقم 2 من UAPI.1 مواصفات محمل الإقلاع[1]، وهي ثنائيات EFI قابلة للتنفيذ في /EFI/Linux/ على ESP وقسم محمل الإقلاع الموسع.

    • مدير إقلاع EFI لمايكروسوفت ويندوز، إذا كان مثبتًا.

    • مدير إقلاع Apple macOS، إذا كان مثبتًا.

    • ثنائي EFI Shell، إذا كان مثبتًا.

    • خيار "إعادة الإقلاع إلى واجهة البرامج الثابتة"، إذا كان مدعومًا من البرامج الثابتة UEFI.

    • تسجيل متغيرات الإقلاع الآمن إذا كانت البرامج الثابتة UEFI في وضع الإعداد وتم توفير الملفات على ESP.

يدعم systemd-boot الميزات التالية:

    • يمكن إجراء تغييرات أساسية في تهيئة مدير الإقلاع (مثل تهيئة المهلة، اختيار مدخل الإقلاع المبدئي، ...) مباشرةً من واجهة مستخدم محمل الإقلاع في وقت الإقلاع، وكذلك أثناء وقت تشغيل النظام باستخدام متغيرات EFI.

    • يتكامل مدير الإقلاع مع أمر systemctl لتنفيذ ميزات مثل systemctl reboot --boot-loader-entry=... (لإعادة الإقلاع إلى مدخل قائمة إقلاع محدد، أي "إعادة الإقلاع إلى ويندوز") و systemctl reboot --boot-loader-menu=... (لإعادة الإقلاع إلى قائمة محمل الإقلاع)، من خلال تنفيذ واجهة محمل الإقلاع[2]. انظر systemctl(1) للتفاصيل.

    • يقوم متغير EFI مُعيَّن من قبل محمل الإقلاع بإعلام نظام التشغيل بقسم نظام EFI المستخدم أثناء الإقلاع. يُستخدم هذا بعد ذلك لوصل قسم نظام EFI الصحيح آليًا إلى /efi/ أو /boot/ أثناء وقت تشغيل نظام التشغيل. انظر systemd-gpt-auto-generator(8) للتفاصيل.

    • يوفر مدير الإقلاع معلومات حول وقت الإقلاع المُنفَق في البرامج الثابتة UEFI باستخدام واجهة محمل الإقلاع[2]. يمكن عرض هذه المعلومات باستخدام systemd-analyze(1).

    • ينفذ مدير الإقلاع عد الإقلاع والرجوع آليًا إلى مداخل إقلاع أقدم عاملة عند الفشل. انظر تقييم الإقلاع الآلي[3].

    • يقرأ مدير الإقلاع اختياريًا بذرة عشوائية من قسم ESP، ويجمعها مع 'رمز نظام' مخزَّن في متغير EFI دائم ويستنتج بذرة عشوائية لاستخدامها من قبل نظام التشغيل كتهيئة لتجمع الإنتروبيا، مما يوفر تجمع إنتروبيا كاملًا أثناء الإقلاع المبكر.

    • يسمح مدير الإقلاع بتسجيل متغيرات الإقلاع الآمن إذا كانت البرامج الثابتة UEFI في وضع الإعداد. بالإضافة إلى ذلك، يمكن تسجيل المتغيرات آليًا إذا تمت تهيئتها.

يمكن استخدام bootctl(1) من نظام قيد التشغيل لتحديد موقع ESP وقسم محمل الإقلاع الموسع، وسرد المداخل المتاحة، وتثبيت systemd-boot نفسه.

يمكن استخدام kernel-install(8) لنسخ صور النواة إلى ESP أو قسم محمل الإقلاع الموسع وإنشاء ملفات وصف متوافقة مع مواصفات محمل الإقلاع.

يمكن استخدام systemd-stub(7) كدعامة إقلاع UEFI للنوى المنفذة، وهو مفيد لعرض شاشات الإقلاع الرسومية قبل الانتقال إلى عالم Linux. وهو قادر أيضًا على التقاط ملفات بيانات الاعتماد المساعدة آليًا (لتحديد معلمات الإقلاع) وصور إضافات النظام، كملفات مرافقة لصور النواة المُقلعة.

ارتباطات المفاتيح

يمكن استخدام المفاتيح التالية في قائمة الإقلاع:

↑ (أعلى)، ↓ (أسفل)، j، k، PageUp، PageDown، Home، End
    التنقل لأعلى/لأسفل في قائمة الإدخالات

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

↵ (إدخال)، → (يمين)
    إقلاع الإدخال المحدد

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

d
    جعل الإدخال المحدد إدخال الإقلاع المفضل

    يُضبط متغير EFI للسماح باستمرار هذا الإعداد.

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

D
    جعل الإدخال المحدد إدخال الإقلاع المبدئي

    يُضبط متغير EFI للسماح باستمرار هذا الإعداد.

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

e
    تحرير سطر أوامر النواة للإدخال المحدد

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

+, t
    زيادة المهلة قبل إقلاع الإدخال المبدئي

    يُضبط متغير EFI للسماح باستمرار هذا الإعداد.

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

-, T
    تقليل المهلة

    يُضبط متغير EFI للسماح باستمرار هذا الإعداد.

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

r
    تغيير دقة الشاشة، مع تخطي أي أوضاع غير مدعومة.

    يُضبط متغير EFI للسماح باستمرار هذا الإعداد.

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

R
    إعادة تعيين دقة الشاشة إلى المبدئي للبرنامج الثابت أو ملف التهيئة.

    يُضبط متغير EFI للسماح باستمرار هذا الإعداد.

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

p
    طباعة الحالة

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

h, ?, F1
    عرض شاشة مساعدة

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

f
    إعادة الإقلاع إلى واجهة البرنامج الثابت.

    للتّوافق مع روابط المفاتيح لعدة تطبيقات برامج ثابتة، يمكن الوصول إلى هذه العملية أيضًا باستخدام F2 وF10 وDel وEsc.

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

Shift+o
    إيقاف تشغيل النظام.

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

Shift+b
    إعادة إقلاع النظام.

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

يمكن الضغط على المفاتيح التالية أثناء الإقلاع أو في قائمة الإقلاع لإقلاع إدخال معين مباشرة:

l
    لينكس

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

w
    Windows

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

a
    macOS

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

s
    صدفة EFI

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

1, 2, 3, 4, 5, 6, 7, 8, 9
    رقم إدخال الإقلاع 1 ... 9

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

تظهر قائمة الإقلاع عند تكوين مهلة قائمة غير صفرية. إذا ضبطت مهلة القائمة على الصفر، فاضغط مع الاستمرار على مفتاح (يوصى بالمسافة) قبل تهيئة محمل الإقلاع لإظهار قائمة الإقلاع. لاحظ أنه وفقًا لتنفيذ البرنامج الثابت، قد تكون النافذة الزمنية لقبول ضغطات المفاتيح قبل تهيئة محمل الإقلاع قصيرة. إذا فاتتك النافذة، فأعد التشغيل وحاول مرة أخرى، مع الضغط المتكرر على مفتاح مناسب؛ في معظم الأنظمة، يمكن الوصول إلى النافذة الزمنية بعد عدة محاولات. يمكن استخدام مفاتيح غير مفتاح المسافة، باستثناء المفاتيح المذكورة أعلاه. إذا لم يعمل عرض القائمة عند الطلب بشكل جيد، ففكر في تعيين مهلة غير صفرية لعرض قائمة الإقلاع دون قيد أو شرط. قد تقدم بعض بيئات سطح المكتب خيارًا للإقلاع مباشرة إلى قائمة الإقلاع، مما يتجنب المشكلة تمامًا. بدلاً من ذلك، استخدم سطر الأوامر systemctl reboot --boot-loader-menu= بقيمة غير صفرية من الصدفة.

في المحرر، تقوم معظم المفاتيح بإدراج نفسها ببساطة، ولكن يمكن استخدام المفاتيح التالية لتنفيذ إجراءات إضافية:

← (يسار)، → (يمين)، الصفحة الرئيسية، النهاية
    التنقل لليسار/لليمين

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

مفتاح الهروب، Ctrl+c
    إلغاء التحرير والخروج من المحرر

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

Ctrl+k
    مسح سطر الأوامر للأمام

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

Ctrl+w، Alt+Backspace
    حذف كلمة للخلف

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

Ctrl+Del، Alt+d
    حذف كلمة للأمام

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

↵ (إدخال)
    إدخال الإقلاع مع سطر الأوامر المحرر

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

لاحظ أنه ما لم يتم تكوين خلاف ذلك في البرنامج الثابت UEFI، سيستخدم systemd-boot تخطيط لوحة المفاتيح الأمريكي، لذا قد لا تتطابق تسميات المفاتيح لمفاتيح مثل +/-.

الملفات

توجد الملفات التي يعالجها systemd-boot بشكل عام على ESP الخاص بـ UEFI والذي يُوصل عادةً إلى /efi/ أو /boot/ أو /boot/efi/ أثناء تشغيل نظام التشغيل. كما يعالج الملفات على قسم محمل الإقلاع الموسع الذي يُوصل عادةً إلى /boot/، إذا كان موجودًا.

يقرأ systemd-boot التكوين في وقت التشغيل مثل مهلة الإقلاع والإدخال المبدئي من /loader/loader.conf على ESP (بالاشتراك مع البيانات المقروءة من متغيرات EFI). انظر loader.conf(5).

تُقرأ ملفات وصف إدخال الإقلاع التابعة لـ UAPI.1 Boot Loader Specification[1] من /loader/entries/ على ESP وقسم محمل الإقلاع الموسع.

تُقرأ إدخالات إقلاع النواة الموحدة التابعة لـ UAPI.1 Boot Loader Specification[1] من /EFI/Linux/ على ESP وقسم محمل الإقلاع الموسع.

اختياريًا، يُخزن بذرة عشوائية لتوفير تجمع الإنتروبيا المبكر للإقلاع في /loader/random-seed في ESP.

أثناء التهيئة، يحمل systemd-boot آليًا جميع ملفات برامج التشغيل الموضوعة في دليل /EFI/systemd/drivers/ الخاص بـ ESP. يجب أن تحتوي الملفات الموضوعة هناك على امتداد لمعرف بنية EFI متبوعًا بـ .efi (على سبيل المثال، بالنسبة لـ x86-64 يعني هذا لاحقة x64.efi). يمكن استخدام هذا، على سبيل المثال، لإضافة دعم للأجهزة غير المدعومة أصلاً بواسطة البرنامج الثابت.

يمكن تنفيذ تسجيل متغيرات الإقلاع الآمن يدويًا أو آليًا إذا كانت الملفات متاحة تحت /loader/keys/NAME/{db,dbx,KEK,PK}.auth، حيث NAME هو اسم العرض لمجموعة المتغيرات في القائمة. إذا كانت إحدى المجموعات مسماة auto، فقد تُسجل آليًا اعتمادًا على بيئة التنفيذ وقيمة خيار "secure-boot-enroll". انظر loader.conf(5).

الملفات المساعدة

بالنسبة لإدخالات محمل الإقلاع من النوع #1 (كما هو معرّف في مواصفات محمل الإقلاع UAPI.1[1])، سيجمع systemd-boot موارد رفيقة إضافية مُعلنة عبر المفتاح "extra" في الإدخال، ويُولّد آليًا أرشيفات cpio initrd منها، ويُسجّل تلك الأرشيفات عبر بروتوكول Linux initrd EFI بحيث تُمرّر إلى النواة مع initrd الخاص بالإدخال. هذا مدعوم للإدخالات التي تشير إلى صورة نواة موحدة (UKI) عبر المفتاحين "uki" أو "uki-url". كل مفتاح "extra" يشير إلى ملف عادي واحد (نسبة إلى جذر نظام الملفات المحتوي على مقتطف الإدخال) ويمكن تحديد المفتاح عدة مرات. تُعرَف الموارد الرفيقة بلاحقة اسم الملف:

    • الملفات ذات اللاحقة .cred تُحزم في أرشيف cpio موضوع في دليل /.extra/credentials/ من تسلسل ملفات initrd. هذا يُقصد به نقل بيانات استيثاق مساعدة، معمّاة، ومُوثّقة لاستخدامها مع LoadCredentialEncrypted=. انظر systemd.exec(5) و systemd-creds(1) لتفاصيل عن بيانات الاستيثاق المُعمّاة. يُقاس أرشيف cpio المُولّد في TPM PCR 12 (إذا وُجد TPM).

    • الملفات ذات اللاحقة .sysext.raw تُحزم في أرشيف cpio موضوع في دليل /.extra/sysext/ من تسلسل ملفات initrd. هذا يُقصد به تمرير صور إضافية لامتدادات النظام خاصة بالإدخال إلى initrd. انظر systemd-sysext(8) لتفاصيل عن صور امتدادات النظام. يُقاس أرشيف cpio المُولّد في TPM PCR 13 (إذا وُجد TPM).

    • الملفات ذات اللاحقة .confext.raw تُحزم في أرشيف cpio موضوع في دليل /.extra/confext/ من تسلسل ملفات initrd. هذا يُقصد به تمرير صور إضافية لامتدادات التهيئة خاصة بالإدخال إلى initrd. انظر systemd-confext(8) لتفاصيل عن صور امتدادات التهيئة. يُقاس أرشيف cpio المُولّد في TPM PCR 12 (إذا وُجد TPM).

عندما تكون النواة المُقلعة هي UKI، فإن systemd-stub UEFI stub المُضمّن فيها سيجمع الموارد الرفيقة المُحقونة هنا مع أي ملفات رفيقة يجمعها هو نفسه من دليل الإسقاط .extra.d/ الخاص بـ UKI ومن /loader/credentials/ و /loader/extensions/، بحيث تُدمج جميع المصادر بشكل موحد في /.extra/ في initrd. انظر systemd-stub(7) لتفاصيل.

مثال إدخال من النوع #1 يستخدم المفتاح "extra":

    title       My OS
    version     1.2.3
    machine-id  6a9857a393724b7a981ebb5b8495b9ea
    uki         /6a9857a393724b7a981ebb5b8495b9ea/1.2.3/img.efi
    extra       /6a9857a393724b7a981ebb5b8495b9ea/1.2.3/foo.cred
    extra       /6a9857a393724b7a981ebb5b8495b9ea/1.2.3/bar.sysext.raw
    extra       /6a9857a393724b7a981ebb5b8495b9ea/1.2.3/baz.confext.raw

متغيرات EFI

تُعرف متغيرات EFI التالية، ويمكن تعيينها أو قراءتها بواسطة systemd-boot للاتصال بين محمل الإقلاع ونظام التشغيل. يُستخدم UUID البائع "4a67b082-0a4c-41cf-b6c7-440b29bb8c4f" في جميع الحالات.

LoaderBootCountPath
    إذا تم تمكين عد الإقلاع، يحتوي على المسار إلى الملف الذي تُشفّر فيه عدادات الإقلاع في اسمه. يُعيّن بواسطة محمل الإقلاع. يستخدم systemd-bless-boot.service(8) هذه المعلومات لوضع علامة على الإقلاع كنجاح كما يُحدد من خلال التنشيط الناجح لوحدة الهدف boot-complete.target.

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

LoaderConfigTimeout، LoaderConfigTimeoutOneShot
    مهلة القائمة بالثواني. تُقرأ بواسطة محمل الإقلاع. LoaderConfigTimeout يُحتفظ به بشكل دائم، بينما LoaderConfigTimeoutOneShot هو تجاوز لمرة واحدة يُقرأ مرة واحدة (وفي هذه الحالة يُعطى أولوية على LoaderConfigTimeout) ثم يُزال. LoaderConfigTimeout يمكن التلاعب به باستخدام المفاتيح t/T، انظر أعلاه.

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

LoaderConfigConsoleMode
    وضع وحدة التحكم الرقمي للقائمة. يُقرأ بواسطة محمل الإقلاع. LoaderConfigConsoleMode يُحتفظ به بشكل دائم. LoaderConfigConsoleMode يمكن التلاعب به باستخدام المفاتيح r/R، انظر أعلاه.

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

LoaderDevicePartUUID
    يحتوي على UUID القسم الذي بدأ منه محمل الإقلاع في الإقلاع الحالي (عادةً قسم نظام EFI). يُضبط بواسطة محمل الإقلاع. (لاحظ أن systemd-stub(7) سيضبط هذا أيضًا، إذا لم يُضبط بعد، لدعم الأنظمة التي تُقلع مباشرةً إلى صورة نواة موحدة، متجاوزة أي محمل إقلاع.) يستخدم systemd-gpt-auto-generator(8) هذه المعلومات لإيجاد القرص المُقلع منه آليًا، لاكتشاف أقسام أخرى مختلفة على نفس القرص آليًا.

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

LoaderDeviceURL
    إذا تم استدعاء محمل الإقلاع عبر الإقلاع الشبكي، يحتوي هذا المتغير على عنوان URL الأصلي. يمكن استخدام هذا للحصول آليًا على موارد إضافية من نفس المصدر.

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

LoaderEntries
    قائمة بمعرفات جميع إدخالات محمل الإقلاع المكتشفة. تُضبط بواسطة محمل الإقلاع.

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

LoaderEntryPreferred، LoaderEntryDefault، LoaderEntrySysFail، LoaderEntryOneShot
    معرف إدخال محمل الإقلاع المبدئي. يمكن ضبطه في نظام التشغيل ومحمل الإقلاع. LoaderEntryOneShot يضبط الإدخال المبدئي للإقلاع التالي فقط، بينما LoaderEntryDefault يضبطه بشكل دائم لجميع الإقلاعات المستقبلية. LoaderEntryPreferred يشبه LoaderEntryDefault ولكنه يأخذ في الاعتبار أيضًا تقييم الإقلاع ويتخطى إدخالات الإقلاع التي تحتوي على عداد محاولات متبقية يساوي صفرًا. تستخدم أوامر bootctl(1) set-default و set-oneshot هذه المتغيرات. يُعدل محمل الإقلاع LoaderEntryDefault عند الطلب، عند استخدام المفتاح d، انظر أعلاه.

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

LoaderEntryLastBooted
    معرف إدخال محمل الإقلاع الذي تمت محاولته آخر مرة. يُضبط ويُقرأ بواسطة محمل الإقلاع، فقط عندما يكون /loader/loader.conf مضبوطًا على "@saved". انظر loader.conf(5).

    سيضمن محمل الإقلاع أن LoaderEntryLastBooted محدث لكل إقلاع، ويُحدّثه حسب الحاجة وسيتجنب تغييره تمامًا عند ضبط LoaderEntryOneShot.

    يقرأ محمل الإقلاع المتغير، الذي يأخذ أولوية أعلى من LoaderEntryDefault. يُتجاهل المتغير عند ضبط LoaderEntryOneShot.

    لا يمكن استخدام LoaderEntryLastBooted كمؤشر على نجاح الإقلاع الأخير أو فشله.

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

LoaderEntrySelected
    معرف إدخال محمل الإقلاع الذي يتم إقلاعه حاليًا. يُضبط بواسطة محمل الإقلاع.

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

LoaderFeatures
    مجموعة من الأعلام تشير إلى الميزات التي يدعمها محمل الإقلاع. تُضبط بواسطة محمل الإقلاع. استخدم bootctl(1) لعرض هذه البيانات.

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

LoaderFirmwareInfo، LoaderFirmwareType
    معلومات موجزة عن البرامج الثابتة. تُضبط بواسطة محمل الإقلاع. استخدم bootctl(1) لعرض هذه البيانات.

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

LoaderTpm2ActivePcrBanks
    تمثيل سلسلة سداسي عشري لقناع بتات بقيم محددة في مواصفات بروتوكول TCG EFI لـ TPM 2.0 مثل EFI_TCG2_BOOT_HASH_ALG_*. إذا لم يُكتشف دعم TPM2 أو لم توجد بنوك نشطة، سيُضبط على 0. يضبطه محمل الإقلاع. استخدم systemd-analyze(1) لعرض هذه البيانات.

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

LoaderPcrSMBIOS
    مؤشر سجل PCR يختار هياكل SMBIOS التي تُقاس فيها — النوع 1 (معلومات النظام، مع حقل "نوع الإيقاظ" المتقلب المُصفّر)، النوع 2 (معلومات اللوحة الأساسية) والنوع 11 (سلاسل OEM). مُنسّق كسلسلة محارف ASCII عشرية (مثل "1"). يُضبط بواسطة محمل الإقلاع إذا أُكمل القياس بنجاح، ويبقى غير مضبط بخلاف ذلك. (لاحظ أن systemd-stub يُجري نفس القياس عند الإقلاع مباشرة، متجاوزًا محمل الإقلاع.)

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

LoaderImageIdentifier
    مسار نظام الملفات إلى الملف التنفيذي EFI لمحمل الإقلاع للإقلاع الحالي، نسبةً إلى الدليل الجذر للقسم (أي نسبةً إلى القسم المشار إليه بواسطة LoaderDevicePartUUID، انظر أعلاه). يُضبط بواسطة محمل الإقلاع. (لاحظ أن systemd-stub سيضبط هذا أيضًا، إذا لم يُضبط بعد، لدعم الأنظمة التي تُقلع مباشرةً إلى صورة نواة موحدة، متجاوزة أي محمل إقلاع.) استخدم bootctl(1) لعرض هذه البيانات.

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

LoaderInfo
    معلومات موجزة عن محمل الإقلاع. تُضبط بواسطة محمل الإقلاع. استخدم bootctl(1) لعرض هذه البيانات.

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

LoaderTimeExecUSec، LoaderTimeInitUSec، LoaderTimeMenuUsec
    معلومات عن الوقت المستغرق في أجزاء مختلفة من محمل الإقلاع. تُضبط بواسطة محمل الإقلاع. استخدم systemd-analyze(1) لعرض هذه البيانات.

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

LoaderSystemToken
    حقل بيانات عشوائي ثنائي، يُستخدم لتوليد البذرة العشوائية لتمريرها إلى نظام التشغيل (انظر أعلاه). لاحظ أن هذه البيانات العشوائية تُولد عمومًا مرة واحدة فقط، أثناء تثبيت نظام التشغيل، ثم لا تُحدّث أبدًا مرة أخرى.

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

العديد من هذه المتغيرات مُعرّفة بواسطة واجهة محمل الإقلاع[2].

سلاسل SMBIOS من النوع 11

يمكن تكوين systemd-boot باستخدام سلاسل SMBIOS من النوع 11. تتكون السلاسل القابلة للتطبيق من اسم، متبوعًا بـ "="، متبوعًا بالقيمة. ما لم يكتشف systemd-boot أنه يعمل داخل بيئة حوسبة سرية، سيبحث systemd-boot في الجدول عن سلسلة باسم محدد، وإذا وُجدت، سيستخدم قيمتها. تُقرأ السلاسل التالية:

io.systemd.boot.kernel-cmdline-extra
    إذا تم ضبطه، تُضاف قيمة هذه السلسلة إلى قائمة وسائط سطر أوامر النواة لإدخالات مواصفات محمل الإقلاع من النوع 1 التي تُقاس في PCR12 وتُمرر إلى النواة.

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

io.systemd.boot-entries.extra:ID=تعريف
    يسمح هذا بإدراج إدخالات إضافية في قائمة systemd-boot. خذ زوجًا من معرف إدخال القائمة وسلسلة تعريف إدخال القائمة. يجب أن يكون الأول مناسبًا للاستخدام كاسم ملف لإدخال مواصفات محمل الإقلاع من النوع #1 (لاحظ أنه يُستخدم لأغراض التعريف فقط، ولا يُصل إلى أي ملف بهذا الاسم فعليًا)، ويجب أن يتبع الأخير بناء جملة محتويات إدخال من النوع #1. أي إدخال قائمة مُعرّف بهذه الطريقة يُعالج ويُعرض بنفس الطريقة تقريبًا مثل إدخال من النوع #1 يُقرأ من قسم ESP أو XBOOTLDR. مثال:

        io.systemd.boot-entries.extra:fooos-current.conf=title FooOS (Current)
        uki-url http://example.com/somedir/fooos.efi

    لاحظ أن هذا المثال يحتوي على حرف سطر جديد. عند إنشاء هذه السلسلة من شِل، يجب توخي الحذر لترميزها بشكل صحيح.

    مرر سلاسل متعددة منسقة بهذه الطريقة لتوليد إدخالات قائمة متعددة.

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

io.systemd.boot.loglevel
    إذا ضُبطت، فستُستخدم قيمة هذه السلسلة كمستوى للسجل. القيم الصالحة (من الأكثر إلى الأقل خطورة) هي "emerg" و "alert" و "crit" و "err" و "warning" و "notice" و "info" و "debug".

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

عد الإقلاع

يطبق systemd-boot آلية عد إقلاع بسيطة فوق مواصفات محمل الإقلاع UAPI.1[1]، للرجوع التلقائي وغير المراقب إلى إصدارات نواة أقدم/إدخالات محمل إقلاع عندما يفشل إدخال معين باستمرار. أي ملف إدخال محمل إقلاع وملف صورة نواة موحدة يحتوي على "+" متبوعة برقم واحد أو رقمين (إذا كانا اثنين فيجب فصلهما بـ "-")، قبل اللاحقة .conf أو .efi يخضع لعد الإقلاع: الرقم الأول من الرقمين ('محاولات متبقية') يُنقص بواحد في كل محاولة إقلاع، والرقم الثاني من الرقمين ('محاولات منجزة') يُزاد بواحد (إذا كان 'محاولات منجزة' غائبًا يُعتبر مكافئًا لـ 0). اعتمادًا على القيمة الحالية لهذين العدادين، يُعتبر إدخال الإقلاع في واحدة من ثلاث حالات:

    1. إذا كان عداد 'محاولات متبقية' لإدخال أكبر من الصفر، يُعتبر الإدخال في حالة 'غير محددة'. هذا يعني أن الإدخال لم يكمل الإقلاع بنجاح بعد، ولكن أيضًا لم يُحدد أنه لا يعمل.

    2. إذا كان عداد 'محاولات متبقية' لإدخال صفرًا، يُعتبر الإدخال في حالة 'سيئة'. هذا يعني أنه لن تُجرى محاولات أخرى لإقلاع هذا العنصر (أي، ما لم تكن جميع إدخالات الإقلاع الأخرى أيضًا في حالة 'سيئة')، لأن جميع محاولات إقلاع هذا الإدخال لم تكتمل بنجاح.

    3. إذا كان عدادا 'محاولات متبقية' و'محاولات منجزة' لإدخال غائبين، يُعتبر الإدخال في حالة 'جيدة'. هذا يعني أن عد الإقلاع الإضافي للإدخال مُعطل، لأنه أقلع بنجاح مرة واحدة على الأقل. تنقل خدمة systemd-bless-boot.service(8) الإدخال المُقلع حاليًا من حالة 'غير محددة' إلى حالة 'جيدة' عندما تكتمل محاولة الإقلاع بنجاح.

بشكل عام، عند إضافة إدخالات جديدة إلى محمل الإقلاع، تبدأ أولاً في حالة 'غير محددة'، أي مع عداد 'محاولات متبقية' أكبر من الصفر. يبقى إدخال الإقلاع في هذه الحالة حتى إما أن يتمكن من إكمال إقلاع كامل بنجاح مرة واحدة على الأقل (في هذه الحالة سيكون في حالة 'جيدة') — أو يصل عداد 'محاولات متبقية' إلى الصفر (في هذه الحالة سيكون في حالة 'سيئة').

مثال: لنفترض أن ملف إدخال محمل الإقلاع foo.conf مُعد لـ 3 محاولات إقلاع. سينشئه المثبت تحت الاسم foo+3.conf. في الإقلاع الأول، يعيد محمل الإقلاع تسميته إلى foo+2-1.conf. إذا لم يكتمل ذلك الإقلاع بنجاح، يعيد محمل الإقلاع تسميته إلى foo+1-2.conf في الإقلاع التالي. إذا فشل ذلك أيضًا، سيُعاد تسميته أخيرًا إلى foo+0-3.conf بواسطة محمل الإقلاع في الإقلاع التالي، وبعد ذلك يُعتبر 'سيئًا'. إذا نجح الإقلاع مع ذلك، يُعاد تسمية ملف الإدخال إلى foo.conf بواسطة نظام التشغيل، بحيث يُعتبر 'جيدًا' من ذلك الحين فصاعدًا.

تأخذ قائمة الإقلاع عداد 'محاولات متبقية' في الاعتبار عند فرز إدخالات القائمة: تُرتب الإدخالات في حالة 'سيئة' في بداية القائمة، والإدخالات في حالة 'جيدة' أو 'غير محددة' في النهاية. يمكن للمستخدم اختيار إقلاع أي إدخال من القائمة بحرية، بما في ذلك تلك المُوسومة بالفعل كـ 'سيئة'. إذا تم تحديد إدخال القائمة للإقلاع آليًا، فهذا يعني أن الإدخالات 'الجيدة' أو 'غير المحددة' مفضلة بشكل عام (حيث أن العنصر السفلي من القائمة هو المُقلع مبدئيًا)، ولن تُؤخذ الإدخالات 'السيئة' في الاعتبار إلا إذا لم تبقَ إدخالات 'جيدة' أو 'غير محددة'.

يضبط إطار تثبيت النواة kernel-install(8) اختياريًا عداد 'محاولات متبقية' الأولي إلى القيمة المحددة في /etc/kernel/tries عند إنشاء إدخال محمل إقلاع لأول مرة.

استخدام SYSTEMD-BOOT في الآلات الافتراضية

عند استخدام qemu[4] مع OVMF[5] (برنامج UEFI الثابت للآلات الافتراضية)، يعمل مفتاح -kernel ليس فقط لأنوية لينكس، بل لأي ثنائي EFI، بما في ذلك systemd-boot وأنوية لينكس الموحدة (UKIs). مثال لسطر أوامر لتحميل systemd-boot على x64:

qemu-system-x86_64 -drive if=pflash,format=qcow2,readonly=on,file=/usr/share/edk2/ovmf/OVMF_CODE_4M.qcow2 -kernel /usr/lib/systemd/boot/efi/systemd-bootx64.efi -drive file=... [ ... ]

(قد يلزم تعديل المسار إلى ملف البرنامج الثابت اعتمادًا على التوزيعة.) سيكتشف systemd-boot أنه بدأ مباشرة بدلاً من تحميله من ESP وسيبحث عن ESP في هذه الحالة، مع مراعاة معلومات ترتيب الإقلاع من المشرف (إذا كانت متوفرة). لاحظ أنه لكي ينتج عن هذا نتيجة مفيدة، يجب استخدام وسيطة -drive أخرى لإرفاق صورة قرص فعلية مع ESP.

انظر أيضًا

bootctl(1), loader.conf(5), systemd-bless-boot.service(8), systemd-boot-random-seed.service(8), kernel-install(8), systemd-stub(7), مواصفات محمل الإقلاع UAPI.1[1], واجهة محمل الإقلاع[2], قياسات TPM2 PCR التي أجراها systemd[6]

ملاحظات

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

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

3.  تقييم الإقلاع الآلي
    https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT

4.  qemu
    https://www.qemu.org/docs/master/

5.  OVMF
    https://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt

6.  قياسات TPM2 PCR التي أجراها systemd
    https://systemd.io/TPM2_PCR_MEASUREMENTS

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

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

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