| LOADER.CONF(5) | loader.conf | LOADER.CONF(5) |
نام (NAME)
loader.conf - فایل پیکربندی بوتلودر systemd-boot
خلاصه دستور (SYNOPSIS)
ESP/loader/loader.conf
توضیحات (DESCRIPTION)
systemd-boot(7) فایل ESP/loader/loader.conf را میخواند. این فایل پیکربندی میکند که آیا منو نمایش داده شود و برای چه مدت، قلم (فونت)، بوق صوتی، انواع ورودیهای منو برای نمایش، انتخاب پیشفرض، و برخی جنبههای ثبت کلیدهای راهاندازی امن (Secure Boot) و مدیریت سفتافزار چگونه باشد. فهرست گزینههای موجود را در زیر مشاهده فرمایید.
این فایل از کدگذاری UTF-8 استفاده کرده و از مجموعهای از خطوط جداشده با «line feed» (یعنی کد اسکی ۱۰) تشکیل میشود. خطوطی که خالی هستند یا با علامت توضیح ("#") شروع میشوند، نادیده گرفته میشوند. سایر خطوط شامل یک نام گزینه، به دنبال آن فاصله خالی (whitespace)، و سپس مقدار گزینه هستند.
آرگومانهای بولی (Boolean) میتوانند به صورت "yes"/"y"/"true"/"t"/"on"/"1" یا "no"/"n"/"false"/"f"/"off"/"0" نوشته شوند.
نکته: systemd-boot همچنین فایلهای ورودی بوتلودر، نوع ۱# (ESP/loader/entries/*.conf و XBOOTLDR/loader/entries/*.conf) و نوع ۲# (ESP/EFI/Linux/*.uki و XBOOTLDR/EFI/Linux/*.uki) را میخواند. این فایلها در UAPI.1 Boot Loader Specification[1] شرح داده شدهاند.
نکته: رفتار systemd-boot همچنین تحت تأثیر متغیرهای EFI قرار دارد. برخی از تنظیمات مشخصشده در این فایل میتوانند توسط آنها بازنویسی شوند؛ به عنوان مثال ورودی پیشفرض منوی بوت یا زمان انتظار (timeout) منو. برای جزئیات بیشتر به systemd-boot(7) مراجعه فرمایید.
گزینهها (OPTIONS)
پیکربندیهای زیر در loader.conf پشتیبانی میشوند:
default
اگر بر روی "@saved" تنظیم شود، ورودی انتخابشده در هر بار راهاندازی به عنوان یک متغیر EFI ذخیره شده و در بار بعدی شروع به کار بوتلودر، به طور خودکار انتخاب خواهد شد.
Table 1. ورودیهای شناساییشده خودکار از نامهای زیر استفاده خواهند کرد:
| نام | توضیحات |
| auto-efi-default | لودر پیشفرض EFI |
| auto-efi-shell | پوسته EFI Shell |
| auto-osx | سیستمعامل macOS |
| auto-poweroff | خاموش کردن سیستم |
| auto-reboot | راهاندازی مجدد سیستم |
| auto-reboot-to-firmware-setup | راهاندازی مجدد به رابط سفتافزار |
| auto-windows | مدیر بوت ویندوز (Windows Boot Manager) |
الگوهای
نویسه عام (glob)
پشتیبانیشده
عبارتند از
"?"، "*" و "[...]"
(شامل
بازهها).
توجه داشته
باشید که
این الگوها
از همان
ساختار
نحوی glob(7)
استفاده
میکنند،
اما از
تمامی
ویژگیهای
آن
پشتیبانی
نمیکنند.
به ویژه،
نفی مجموعه
و کلاسهای
نویسه
نامگذاریشده
پشتیبانی
نمیشوند.
تطبیق الگو
به صورت
غیرحساس به
بزرگی و
کوچکی حروف
بر روی
شناسه
ورودی
(همانطور
که توسط bootctl list
نمایش داده
میشود)
انجام
میگیرد.
اضافهشده در نسخه 239.
timeout
اگر بر روی "menu-disabled" یا "menu-hidden" یا "0" (پیشفرض) تنظیم شود، هیچ منویی نمایش داده نمیشود و ورودی پیشفرض بلافاصله راهاندازی خواهد شد. مگر اینکه از "menu-disabled" استفاده شده باشد، منو میتواند با فشردن و نگهداشتن یک کلید قبل از اجرای systemd-boot نمایش داده شود. تنظیم این گزینه روی "menu-force" زمان انتظار را غیرفعال کرده و همیشه منو را نمایش میدهد.
اضافهشده در نسخه 239.
console-mode
یک عدد یا یکی از مقادیر ویژه ذکرشده در زیر را میپذیرد. مقادیر زیر میتوانند استفاده شوند:
0
اضافهشده در نسخه 239.
1
اضافهشده در نسخه 239.
2
اضافهشده در نسخه 239.
auto
اضافهشده در نسخه 239.
max
اضافهشده در نسخه 239.
keep
اضافهشده در نسخه 239.
اضافهشده در نسخه 239.
editor
اضافهشده در نسخه 239.
auto-entries
اضافهشده در نسخه 239.
auto-firmware
اضافهشده در نسخه 239.
auto-reboot
اضافهشده در نسخه 255.
auto-poweroff
اضافهشده در نسخه 255.
beep
اضافهشده در نسخه 251.
secure-boot-enroll
ثبت کلیدهای راهاندازی امن (Secure Boot) یافتشده در ESP را در صورتی که سیستم در حالت راهاندازی (setup mode) باشد، کنترل میکند:
if-safe
اضافهشده در نسخه 253.
manual
اضافهشده در نسخه 253.
off
اضافهشده در نسخه 253.
force
اضافهشده در نسخه 253.
مجموعههای مختلف متغیرها را میتوان در مسیر /loader/keys/NAME تنظیم کرد که در آن NAME نامی است که قرار است به عنوان نام ورودی استفاده شود. این ویژگی امکان ارائه چندین مجموعه از متغیرهای Secure Boot و انتخاب یکی از آنها در زمان اجرا را فراهم میسازد.
متغیرهای Secure Boot پشتیبانیشده عبارتند از یک پایگاهداده برای ایمیجهای مجاز، یکی برای کلید تبادل کلید (KEK) و یکی برای کلید پلتفرم (PK). برای اطلاعات بیشتر، به UEFI specification[2] در بخش Secure Boot and Driver Signing مراجعه فرمایید. منبع دیگری که تعامل متغیرهای مختلف را توضیح میدهد، EDK2 documentation[3] است.
یک مجموعه کامل از متغیرهای UEFI شامل db.auth، KEK.auth و PK.auth است. توجه داشته باشید که این فایلها باید متغیرهای احرازهویتشده UEFI باشند. برای نمونهای از نحوه تولید آنها از کلیدهای معمولی X.509 به ادامه مطلب مراجعه فرمایید.
uuid=$(systemd-id128 new --uuid)
for key in PK KEK db; do
openssl req -new -x509 -subj "/CN=${key}/" -keyout "${key}.key" -out "${key}.pem"
openssl x509 -outform DER -in "${key}.pem" -out "${key}.der"
sbsiglist --owner "${uuid}" --type x509 --output "${key}.esl" "${key}.der"
done
# همچنین ببینید: Windows Secure Boot Key Creation and Management Guidance[4]
curl --location \
"https://go.microsoft.com/fwlink/p/?linkid=321192" -o ms-db-2011.der \
"https://go.microsoft.com/fwlink/p/?linkid=321185" -o ms-kek-2011.der \
"https://go.microsoft.com/fwlink/p/?linkid=321194" -o ms-uefi-db-2011.der \
"https://go.microsoft.com/fwlink/p/?linkid=2239776" -o ms-db-2023.der \
"https://go.microsoft.com/fwlink/p/?linkid=2239775" -o ms-kek-2023.der \
"https://go.microsoft.com/fwlink/p/?linkid=2239872" -o ms-uefi-db-2023.der
sha1sum -c <<END
580a6f4cc4e4b669b9ebdc1b2b3e087b80d0678d ms-db-2011.der
31590bfd89c9d74ed087dfac66334b3931254b30 ms-kek-2011.der
46def63b5ce61cf8ba0de2e6639c1019d0ed14f3 ms-uefi-db-2011.der
45a0fa32604773c82433c3b7d59e7466b3ac0c67 ms-db-2023.der
459ab6fb5e284d272d5e3e6abc8ed663829d632b ms-kek-2023.der
b5eeb4a6706048073f0ed296e7f580a790b59eaa ms-uefi-db-2023.der
END
for key in ms-*.der; do
sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output "${key%der}esl" "${key}"
done
# در صورت تمایل، گواهیهای Microsoft Windows را اضافه کنید (جهت راهاندازی ویندوز مورد نیاز است).
cat ms-db-*.esl >>db.esl
# در صورت تمایل، گواهیهای Microsoft UEFI را برای درایورهای سفتافزار / Option ROMها و بوتلودرهای
# شخص ثالث (شامل shim) اضافه کنید. این مورد بر روی سختافزار واقعی اکیداً توصیه میشود زیرا عدم
# گنجاندن آن ممکن است دستگاه شما را نیمهبریک کند (پاراگراف بعدی را ببینید).
cat ms-uefi-*.esl >>db.esl
# در صورت تمایل، گواهیهای Microsoft KEK را اضافه کنید. در صورتی که از هر یک از کلیدهای مایکروسافت
# استفاده شود توصیه میگردد، زیرا پایگاهداده رسمی ابطال UEFI با این کلید امضا شده است. پایگاهداده ابطال را
# میتوان با fwupdmgr(1) بهروزرسانی کرد.
cat ms-kek-*.esl >>KEK.esl
attr=NON_VOLATILE,RUNTIME_ACCESS,BOOTSERVICE_ACCESS,TIME_BASED_AUTHENTICATED_WRITE_ACCESS
sbvarsign --attr "${attr}" --key PK.key --cert PK.pem --output PK.auth PK PK.esl
sbvarsign --attr "${attr}" --key PK.key --cert PK.pem --output KEK.auth KEK KEK.esl
sbvarsign --attr "${attr}" --key KEK.key --cert KEK.pem --output db.auth db db.esl
این قابلیت خطرناک تلقی میشود زیرا حتی اگر تمام فایلهای مورد نیاز با کلیدهای بارگذاریشده امضا شده باشند، باز هم ممکن است برخی از فایلهای لازم برای عملکرد صحیح سیستم امضا نشده باشند. این امر به ویژه در مورد Option ROMها (مثلاً برای کنترلرهای ذخیرهسازی یا کارتهای گرافیک) صدق میکند. برای جزئیات بیشتر به Secure Boot and Option ROMs[5] مراجعه فرمایید.
اضافهشده در نسخه 252.
secure-boot-enroll-action
reboot
shutdown
این گزینه تنها در صورتی کاربرد دارد که "secure-boot-enroll" فعال باشد.
اضافهشده در نسخه 258.
secure-boot-enroll-timeout-sec
اگر بر روی "hidden" یا "0" تنظیم شود، هیچ هشداری نمایش داده نمیشود و کلیدها بلافاصله ثبت خواهند شد. زمان انتظار پیشفرض (در صورت عدم تنظیم صریح) ۱۵ ثانیه است.
این گزینه تنها در صورتی کاربرد دارد که "secure-boot-enroll" فعال باشد.
اضافهشده در نسخه 259.
reboot-for-bitlocker
یک راهکار دور زدن برای زمانی که بیتلاکر (BitLocker) پس از بهروزرسانی بوتلودر نیازمند کلید بازیابی (recovery key) میشود (به طور پیشفرض غیرفعال است).
تلاش میکند تا درایوهای رمزگذاریشده با BitLocker را همراه با یک TPM فعال شناسایی کند. اگر هر دو یافت شوند و Windows Boot Manager در منوی بوت انتخاب شود، متغیر EFI مربوط به "BootNext" تنظیم شده و سیستم راهاندازی مجدد میگردد. سپس سفتافزار مستقیماً Windows Boot Manager را راهاندازی میکند، به طوری که مقادیر ثباتهای PCR ماژول TPM در حالتهای مورد انتظار باقی مانده و ویندوز بتواند کلید رمزگذاری را رمزگشایی کند. این به systemd-boot(7) اجازه میدهد تا بدون نیاز به ارائه کلید بازیابی برای باز کردن قفل درایو BitLocker، بهروزرسانی شود.
توجه داشته باشید که ثباتهای PCR مورد استفاده ویندوز را میتوان با خطمشی گروهی (Group Policy) به نام "Configure TPM platform validation profile for native UEFI firmware configurations" در مسیر "Computer Configuration\Administrative Templates\Windows Components\BitLocker Drive Encryption" پیکربندی کرد. هنگامی که Secure Boot فعال است، تغییر این مورد به PCRهای "0,2,7,11" باید ایمن باشد. برای اینکه مقادیر PCR بر روی یک درایو از قبل رمزگذاریشده تغییر یابد، محافظ کلید TPM باید حذف شده و سپس مجدداً اضافه شود. اگر PCR 4 اندازهگیری نمیشود، این تنظیم میتواند برای افزایش سرعت راهاندازی ویندوز غیرفعال شود.
اضافهشده در نسخه 251.
reboot-on-error
yes
no
auto
این گزینه پیشفرض است، زیرا معمولاً یک گزینه ایمن بوده که یک لاگ اندازهگیری تمیز را در هر تلاش بوت تضمین میکند، و در عین حال خطر افتادن در یک حلقه راهاندازی مجدد بیپایان را ندارد.
اضافهشده در نسخه 258.
log-level
مقادیر معتبر عبارتند از "emerg"، "alert"، "crit"، "err"، "warning"، "notice"، "info" و "debug".
در صورت مشخص نشدن، از "info" استفاده خواهد شد، مگر اینکه قبلاً از طریق رشته SMBIOS Type 11 پیکربندی شده باشد؛ به smbios-type-11(7) مراجعه کنید.
توجه داشته باشید که سطح لاگ پیکربندیشده تنها پس از تجزیه loader.conf اعمال خواهد شد، بنابراین پیامهای لاگ تولیدشده قبل از آن نقطه ممکن است تحت تأثیر این تنظیم قرار نگیرند.
اضافهشده در نسخه 259.
مثالها (EXAMPLES)
# /boot/efi/loader/loader.conf timeout 0 default 01234567890abcdef1234567890abdf0-* editor no
منو به طور پیشفرض نمایش داده نخواهد شد (منو همچنان میتواند با فشردن و نگهداشتن یک کلید در حین بوت نمایش داده شود). یکی از ورودیهای دارای فایلهایی با نامی که با "01234567890abcdef1234567890abdf0-" شروع میشود، به طور پیشفرض انتخاب خواهد شد. اگر بیش از یک ورودی مطابقت داشته باشد، ورودی دارای بالاترین اولویت انتخاب میشود (معمولاً ورودی با بالاترین شماره نسخه). ویرایشگر غیرفعال خواهد بود، بنابراین امکان تغییر خط فرمان کرنل وجود نخواهد داشت.
همچنین ببینید (SEE ALSO)
یادداشتها (NOTES)
- 1.
- UAPI.1 Boot Loader Specification
- 2.
- UEFI specification
- 3.
- EDK2 documentation
- 4.
- Windows Secure Boot Key Creation and Management Guidance
- 5.
- Secure Boot and Option ROMs
| systemd 261.2 |