| BOOTCTL(1) | bootctl | BOOTCTL(1) |
نام (NAME)
bootctl - کنترل پیکربندی فریمور و مدیریت بوت EFI
خلاصه دستور (SYNOPSIS)
bootctl [گزینهها...] {COMMAND}
توضیحات (DESCRIPTION)
دستور bootctl میتواند وضعیت فریمور EFI و بوتلودر را بررسی کند، بوتلودرها و مدخلهای بوتلودر موجود را فهرست و مدیریت نماید، و بوتلودر systemd-boot(7) را روی سیستم فعلی نصب، بهروزرسانی یا حذف کند.
دستورات عمومی فریمور EFI و بوتلودر (GENERIC EFI FIRMWARE/BOOT LOADER COMMANDS)
این دستورات در هر سیستم EFI، فارغ از بوتلودر مورد استفاده، در دسترس هستند.
status
برای جزئیات خروجی، مثال زیر را ببینید.
افزودهشده در نسخه 239.
reboot-to-firmware [BOOL]
نکته: از systemctl reboot --firmware-setup برای یکبار راهاندازی مجدد به تنظیمات فریمور استفاده کنید. برای جزئیات به systemctl(1) مراجعه کنید.
افزودهشده در نسخه 251.
دستورات مشخصات بوتلودر (BOOT LOADER SPECIFICATION COMMANDS)
این دستورات برای تمام بوتلودرهایی که UAPI.1 Boot Loader Specification[1] را پیادهسازی کردهاند، مانند systemd-boot، در دسترس هستند.
list
برای جزئیات خروجی به مثال زیر مراجعه کنید.
افزودهشده در نسخه 239.
unlink [ID]
اگر هیچ آرگومان ID مشخص نشود، گزینهٔ --oldest باید مشخص گردد؛ در این صورت، مدخل بوتلودر دارای کمترین نسخه حذف میشود (به دلایل پایداری، مدخل منوی در حال بوت جاری هرگز حذف نمیشود و آخرین مدخل موجود بوتلودر نیز حذف نخواهد شد).
افزودهشده در نسخه 253.
link KERNEL
عنوان، نسخه، شماره کامیت و شمارنده تلاشهای اولیه مدخلهای تولیدشده را میتوان با --entry-title=، --entry-version=، --entry-commit= و --tries-left= بازنویسی کرد. منابع جانبی اضافی (ایمیجهای افزونه سیستم، ایمیجهای افزونه پیکربندی، فایلهای اعتبارنامه) برای ارسال به UKI هنگام بوت را میتوان با --extra= مشخص کرد.
اگر ESP/XBOOTLDR فضای آزاد کافی برای مدخل جدید بوتلودر و منابع ارجاعشدهاش نداشته باشد، قدیمیترین مدخل موجود بوتلودر منطبق با توکن مدخل انتخابشده حذف میشود (به همراه هر منبع ارجاعشده توسط آن که دیگر توسط هیچ مدخل دیگری ارجاع داده نمیشود). این مرحله تا زمانی که مدخل جدید بوتلودر جا شود تکرار میگردد. به دلایل پایداری، مدخل بوتلودر در حال اجرای جاری هرگز حذف نمیشود و آخرین مدخل موجود بوتلودر نیز حذف نخواهد شد.
به طور پیشفرض، اگر پس از حذف خودکار مدخلهای قدیمیتر، فضای آزاد باقیمانده ESP/XBOOTLDR به کمتر از آستانهٔ ایمنی برسد، عملیات متوقف میشود؛ از --keep-free= برای تنظیم آن استفاده کنید.
افزودهشده در نسخه 261.
cleanup
افزودهشده در نسخه 253.
دستورات رابط بوتلودر (BOOT LOADER INTERFACE COMMANDS)
این دستورات برای تمام بوتلودرهایی که UAPI.1 Boot Loader Specification[1] و Boot Loader Interface[2] را پیادهسازی کردهاند، مانند systemd-boot، در دسترس هستند.
set-preferred ID, set-default ID, set-oneshot ID, set-sysfail ID
از bootctl list میتوان برای فهرست کردن مدخلهای بوتلودر موجود و شناسههای آنها استفاده کرد.
علاوه بر این، شناسه مدخل بوتلودر را میتوان به عنوان یکی از موارد زیر مشخص کرد: @default، @oneshot یا @current، که به ترتیب متناظر با مدخل پیشفرض فعلی بوتلودر برای تمام بوتهای آینده، مدخل پیشفرض فعلی بوتلودر برای بوت بعدی، و مدخل بوتلودر در حال بوت جاری هستند. این شناسههای ویژه به مقادیر فعلی متغیرهای EFI زیر حل میشوند: LoaderEntryDefault، LoaderEntrySysFail، LoaderEntryOneShot و LoaderEntrySelected؛ برای جزئیات به UAPI.1 Boot Loader Specification[1] مراجعه کنید. این شناسههای ویژه در درجه اول به عنوان راهی سریع برای تبدیل مدخل بوتلودر در حال اجرا به انتخاب پیشفرض دائمی، یا ارتقای مدخل پیشفرض بوت بعدی به مدخل پیشفرض تمام بوتهای آینده کاربرد دارند، اما ممکن است برای عملیات دیگر نیز استفاده شوند.
اگر روی @saved تنظیم شود، مدخل انتخابشده در هر بوت به عنوان یک متغیر EFI ذخیره میشود و دفعه بعد که بوتلودر شروع به کار کرد به طور خودکار انتخاب میگردد.
اگر یک رشته خالی ("") به عنوان شناسه مشخص شود، متغیر EFI متناظر حذف (unset) خواهد شد.
نکته: از systemctl reboot --boot-loader-entry=ID برای راهاندازی مجدد به یک مدخل خاص بوت و از systemctl reboot --boot-loader-menu=timeout برای یکبار راهاندازی مجدد به منوی بوتلودر استفاده کنید. برای جزئیات به systemctl(1) مراجعه نمایید.
افزودهشده در نسخه 240.
set-timeout TIMEOUT, set-timeout-oneshot TIMEOUT
اگر این مقدار روی menu-disabled یا menu-hidden یا 0 تنظیم شود، هیچ منویی نمایش داده نمیشود و مدخل پیشفرض بلافاصله بوت خواهد شد، در حالی که تنظیم آن روی menu-force تایماوت را غیرفعال کرده و همیشه منو را نشان میدهد. هنگامی که یک رشته خالی ("") مشخص شود، بوتلودر به تایماوت پیشفرض منوی خود برمیگردد.
افزودهشده در نسخه 250.
دستورات SYSTEMD-BOOT (SYSTEMD-BOOT COMMANDS)
این دستورات بوتلودر EFI به نام systemd-boot را مدیریت میکنند و همراه با سایر بوتلودرها کار نمیکنند.
install
افزودهشده در نسخه 239.
update
افزودهشده در نسخه 239.
remove
افزودهشده در نسخه 239.
is-installed
افزودهشده در نسخه 243.
random-seed
برای اطلاعات بیشتر به Random Seeds[3] مراجعه کنید.
افزودهشده در نسخه 243.
دستورات تصویر هسته (KERNEL IMAGE COMMANDS)
kernel-identify KERNEL-IMAGE
افزودهشده در نسخه 253.
kernel-inspect KERNEL-IMAGE
افزودهشده در نسخه 253.
گزینهها (OPTIONS)
گزینههای زیر پشتیبانی میشوند:
--esp-path=
--boot-path=
--root=root
افزودهشده در نسخه 252.
--image=image
افزودهشده در نسخه 252.
--image-policy=policy
--install-source=
افزودهشده در نسخه 252.
-p, --print-esp-path
افزودهشده در نسخه 236.
-x, --print-boot-path
مدخلهای Boot Loader Specification Type #1 عموماً باید در پوشهٔ "$(bootctl -x)/loader/entries/" قرار گیرند. وجود آن پوشه همچنین میتواند به عنوان نشانهای از دردسترس بودن پشتیبانی از مدخلهای بوتلودر در سیستم استفاده شود. به همین ترتیب، مدخلهای Boot Loader Specification Type #2 باید در پوشهٔ "$(bootctl -x)/EFI/Linux/" قرار داده شوند.
توجه داشته باشید که این گزینه (مشابه گزینهٔ --print-esp-path ذکرشده در بالا)، مستقل از بوتلودر مورد استفاده در دسترس است، یعنی حتی بدون نصب بودن systemd-boot.
افزودهشده در نسخه 242.
--print-loader-path
افزودهشده در نسخه 257.
--print-stub-path
افزودهشده در نسخه 257.
-R, --print-root-device
افزودهشده در نسخه 254.
--print-efi-architecture
افزودهشده در نسخه 261.
--variables=yes|no|auto
افزودهشده در نسخه 258.
--random-seed=yes|no
افزودهشده در نسخه 257.
--graceful
افزودهشده در نسخه 244.
-q, --quiet
افزودهشده در نسخه 251.
--make-entry-directory=yes|no
افزودهشده در نسخه 251.
--entry-token=
اگر روی machine-id تنظیم شود، مدخلها بر اساس شناسه ماشین (machine ID) سیستم در حال اجرا نامگذاری میشوند (مثلاً "b0e793a9baf14b5fa13ecbe84ff637ac"). برای جزئیات درباره مفهوم و فایل شناسه ماشین به machine-id(5) مراجعه فرمایید.
اگر روی os-id تنظیم شود، مدخلها بر اساس شناسه سیستمعاملِ سیستم در حال اجرا نامگذاری میشوند، یعنی فیلد ID= از os-release(5) (مثلاً "fedora"). به همین ترتیب، اگر روی os-image-id تنظیم شود، مدخلها بر اساس شناسه ایمیج سیستمعامل در حال اجرا نامگذاری میشوند، یعنی فیلد IMAGE_ID= از os-release (مثلاً "vendorx-cashier-system").
اگر روی auto (پیشفرض) تنظیم شود، در صورت وجود فایل /etc/kernel/entry-token خوانده شده و مقدار ذخیرهشده در آن استفاده میشود. در غیر این صورت، اگر شناسه ماشین محلی مقداردهی شده باشد، از آن استفاده میشود. در غیر این صورت، IMAGE_ID= از os-release (در صورت تنظیم بودن) استفاده میشود. در غیر این صورت، ID= از os-release (در صورت تنظیم بودن) استفاده خواهد شد.
مگر اینکه روی "machine-id" تنظیم شده باشد، یا زمانی که --make-entry-directory=yes استفاده شود، رشتهٔ توکن انتخابشده در فایل /etc/kernel/entry-token نوشته میشود تا اطمینان حاصل شود که برای مدخلهای آینده استفاده خواهد شد. این فایل همچنین توسط kernel-install(8) خوانده میشود تا مشخص کند مدخلهای بوتلودر برای هستههای تازهنصبشده تحت چه نامی تولید شوند، یا نام مدخلها را برای حذف موارد قدیمی تعیین نماید.
استفاده از شناسه ماشین برای نامگذاری مدخلها عموماً ارجح است، با این حال مواردی وجود دارد که در آنها استفاده از سایر شناسهها گزینه خوبی است. به ویژه: اگر دادههای هویتی که شناسه ماشین به همراه دارد نباید در پارتیشن (رمزنگارینشدهٔ) $BOOT ذخیره شود، یا اگر شناسه باید در اولین بوت ایجاد شود و در زمان آمادهسازی مدخلها شناختهشده نیست. توجه داشته باشید که استفاده از شناسه ماشین این مزیت را دارد که چندین نصب موازی از یک سیستمعامل میتوانند روی یک رسانه همزیستی داشته باشند و مدخلهای بوتلودر خود را به طور مستقل بهروزرسانی کنند. هنگام استفاده از شناسه دیگر (مانند شناسه سیستمعامل یا شناسه ایمیج سیستمعامل)، نصبهای موازی از یک سیستمعامل سعی میکنند از همان نام مدخل استفاده کنند. برای پشتیبانی از نصبهای موازی، نصاب باید هنگام افزودن نصب دوم از توکن مدخل متفاوتی استفاده کند.
افزودهشده در نسخه 251.
--all-architectures
افزودهشده در نسخه 252.
--efi-boot-option-description=
استفاده از نام مدخل پیشفرض "Linux Boot Manager" عموماً ترجیح داده میشود، زیرا تنها یک بوتلودر نصبشده در یک پارتیشن ESP واحد باید برای بوت هر تعداد نصب سیستمعامل موجود در دیسکهای مختلف سیستم استفاده شود. به طور خاص توزیعها نباید از این فلگ برای نصب یک مدخل با نام تجاری خاص در فهرست گزینههای بوت استفاده کنند. با این حال، در شرایطی که چندین دیسک وجود دارد و هر کدام دارای پارتیشن ESP اختصاصی خود هستند، این گزینه میتواند برای آسانتر کردن شناسایی بوتلودر مورد استفاده در منوی گزینه بوت فریمور مفید باشد.
افزودهشده در نسخه 252.
--efi-boot-option-description-with-device=
افزودهشده در نسخه 260.
--dry-run
در حالت اجرای آزمایشی، عملیاتهای unlink و cleanup فقط فایلهایی را که حذف خواهند شد بدون حذف واقعی آنها چاپ میکنند.
افزودهشده در نسخه 253.
--oldest
افزودهشده در نسخه 261.
--keep-free=BYTES
افزودهشده در نسخه 261.
--entry-title=TITLE
افزودهشده در نسخه 261.
--entry-version=VERSION
افزودهشده در نسخه 261.
--entry-commit=NR
افزودهشده در نسخه 261.
--extra=PATH, -X PATH
افزودهشده در نسخه 261.
--tries-left=NR
افزودهشده در نسخه 261.
--secure-boot-auto-enroll=yes|no, --private-key=PATH/URI, --private-key-source=TYPE[:NAME], --certificate=PATH, --certificate-source=TYPE[:NAME]
هنگام تعیین این گزینه، باید یک گواهی و یک کلید خصوصی نیز با استفاده از گزینههای --certificate= و --private-key= ارائه شود. گزینهٔ --certificate= مسیری به یک گواهی X.509 با کدگذاری PEM یا یک URI را میگیرد که به ارائهدهنده OpenSSL پیکربندیشده با --certificate-source ارسال میشود؛ این گزینه یکی از مقادیر "file" یا "provider" را میگیرد، که در مورد دوم شناسه ارائهدهنده خاص با دونقطه جدا میشود، مانند "provider:pkcs11". گزینهٔ --private-key= میتواند یک مسیر یا یک URI دریافت کند که به موتور یا ارائهدهنده OpenSSL ارسال میشود، همانطور که توسط --private-key-source= به صورت چندتایی "type:name" مشخص شده است، مانند "engine:pkcs11". موتور یا ارائهدهنده امضای OpenSSL مشخصشده برای امضای فهرستهای امضای EFI استفاده خواهد شد.
افزودهشده در نسخه 257.
--no-pager
--json=MODE
-h, --help
--version
فایلهای .EFI امضاشده (SIGNED .EFI FILES)
دستورات bootctl install و update ابتدا به دنبال فایل systemd-boot با پسوند ".efi.signed" میگردند و آن را به جای فایل عادی ".efi" کپی میکنند. این به توزیعها یا کاربران نهایی اجازه میدهد تا ایمیجهای امضاشده را برای بوت امن UEFI (UEFI SecureBoot) ارائه دهند.
کدهای خروج (EXIT STATUS)
در صورت موفقیت، مقدار ۰ و در غیر این صورت یک کد خطای غیرصفر بازگردانده میشود. bootctl --print-root-device در صورتی که سیستم فایل ریشه توسط یک دستگاه بلوکی منفرد پشتیبانی نشود کد خروج ۸۰، و در صورت بروز خطاهای دیگر سایر کدهای خروج غیرصفر را برمیگرداند.
متغیرهای محیطی (ENVIRONMENT)
اگر $SYSTEMD_RELAX_ESP_CHECKS=1 تنظیم شود، بررسیهای اعتبارسنجی برای ESP تسهیل میشوند و مسیر مشخصشده با --esp-path= میتواند به هر نوع سیستم فایلی روی هر نوع پارتیشنی اشاره کند.
به طور مشابه، $SYSTEMD_RELAX_XBOOTLDR_CHECKS=1 برخی بررسیهای اعتبارسنجی را برای پارتیشن Extended Boot Loader غیرفعال میکند.
مثالها (EXAMPLES)
مثال ۱. خروجی از status و list
$ bootctl status
System:
Firmware: UEFI 2.40 (firmware-version) ← firmware vendor and version
Secure Boot: disabled (setup) ← Secure Boot status
TPM2 Support: yes
Boot into FW: supported ← does the firmware support booting into itself
Current Boot Loader: ← details about systemd-boot or another boot loader
Product: systemd-boot version implementing the Boot Loader Interface[2]
Features: ✓ Boot counting
✓ Menu timeout control
✓ One-shot menu timeout control
✓ Default entry control
✓ One-shot entry control
✓ Support for XBOOTLDR partition
✓ Support for passing random seed to OS
✓ Load drop-in drivers
✓ Boot loader sets ESP information
✓ Menu can be disabled
ESP: /dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000
File: └─/EFI/systemd/systemd-bootx64.efi
Random Seed: ← random seed used for entropy in early boot
Passed to OS: yes
System Token: set
Exists: yes
Available Boot Loaders on ESP:
ESP: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000)
File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 251
File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 251
Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/...
File: └─/EFI/systemd/systemd-bootx64.efi
Title: Fedora
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/...
File: └─/EFI/fedora/shimx64.efi
Title: Linux-Firmware-Updater
ID: 0x0002
Status: active, boot-order
Partition: /dev/disk/by-partuuid/...
File: └─/EFI/fedora/fwupdx64.efi
Boot Loader Entries:
$BOOT: /boot/efi (/dev/disk/by-partuuid/01234567-89ab-cdef-dead-beef00000000)
Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Fedora Linux 36 (Workstation Edition)
id: ...
source: /boot/efi/loader/entries/entry-token-kernel-version.conf
version: kernel-version
machine-id: ...
linux: /entry-token/kernel-version/linux
initrd: /entry-token/kernel-version/initrd
options: root=...
$ bootctl list
Boot Loader Entries:
type: Boot Loader Specification Type #1 (.conf)
title: Fedora Linux 36 (Workstation Edition) (default) (selected)
id: ...
source: /boot/efi/loader/entries/entry-token-kernel-version.conf
version: kernel-version
machine-id: ...
linux: /entry-token/kernel-version/linux
initrd: /entry-token/kernel-version/initrd
options: root=...
type: Boot Loader Specification Type #2 (.efi)
title: Fedora Linux 35 (Workstation Edition)
id: ...
source: /boot/efi/EFI/Linux/fedora-kernel-version.efi
version: kernel-version
machine-id: ...
linux: /EFI/Linux/fedora-kernel-version.efi
options: root=...
type: Automatic
title: Reboot Into Firmware Interface
id: auto-reboot-to-firmware-setup
source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
در این فهرست، "(default)" مدخلی را که به طور پیشفرض استفاده خواهد شد مشخص میکند، و "(selected)" مدخلی را مشخص مینماید که آخرین بار انتخاب شده است (یعنی در حال حاضر در حال اجرا است).
همچنین ببینید (SEE ALSO)
systemd-boot(7), UAPI.1 Boot Loader Specification[1], Boot Loader Interface[2], systemd-boot-random-seed.service(8)
یادداشتها (NOTES)
- 1.
- UAPI.1 Boot Loader Specification
- 2.
- Boot Loader Interface
- 3.
- Random Seeds
- 4.
- UAPI.2 Discoverable Partitions Specification
- 5.
- Automatic Boot Assessment
| systemd 261.2 |