Настройка Secure Boot
Предварительная настройка
Заголовок раздела «Предварительная настройка»Загрузчик GRUB
Заголовок раздела «Загрузчик GRUB»Если вы используете GRUB, выполните следующую команду, чтобы включить поддержку Secure Boot в GRUB с использованием CA-ключей.
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=cachyos --modules="tpm" --disable-shim-lockВход в режим настройки (Setup Mode) в UEFI
Заголовок раздела «Вход в режим настройки (Setup Mode) в UEFI»Сначала нам нужно зайти в настройки прошивки и установить для режима Secure Boot значение “Setup Mode” (Режим настройки). Вы можете перезагрузиться из уже запущенной системы в настройки прошивки с помощью следующей команды.
systemctl reboot --firmware-setup
Так выглядит BIOS на Lenovo Ideapad 5 Pro. Сбросьте в режим настройки или восстановите заводские ключи и перезагрузитесь обратно в систему.
Однако на некоторых материнских платах MSI нет режима настройки. Чтобы добиться того же эффекта, выполните два шага, показанные на изображении ниже:

На некоторых материнских платах ASUS поведение аналогично упомянутым выше платам MSI — у них нет выделенного режима настройки.
Перейдите в Boot → Secure Boot, установите для Secure Boot Mode значение Custom, затем откройте Key Management и выберите «Delete all Secure Boot Variables».
Установка sbctl и регистрация ключей
Заголовок раздела «Установка sbctl и регистрация ключей»Прежде чем продолжить, убедитесь, что sbctl установлен.
sbctl — это удобный менеджер ключей Secure Boot, способный настраивать безопасную загрузку, предоставляющий возможности управления ключами и отслеживающий файлы, которые необходимо подписывать в цепочке загрузки.
Как установить sbctl
sudo pacman -S sbctlТеперь, когда sbctl установлен, необходимо его настроить и зарегистрировать ваши ключи в прошивке. Этот процесс довольно прост — просто следуйте шагам ниже.
-
Проверьте, включён ли режим настройки:
Окно терминала sudo sbctl statusОжидаемый вывод
Окно терминала Installed: ✘ sbctl is not installedSetup Mode: ✘ EnabledSecure Boot ✘ Disabled -
Создайте свои собственные ключи Secure Boot:
Окно терминала sudo sbctl create-keysПример успешного создания ключей
Окно терминала Created Owner UUID a9fbbdb7-a05f-48d5-b63a-08c5df45ee70Creating secure boot keys...✔Secure boot keys created! -
Зарегистрируйте ваши ключи вместе со встроенными ключами Microsoft и прошивки OEM:
Окно терминала sudo sbctl enroll-keys --microsoft --firmware-builtinОжидаемый вывод
Окно терминала Enrolling keys to EFI variables...✔Enrolled keys to the EFI variables! -
Снова проверьте статус sbctl, чтобы убедиться, что ключи зарегистрированы и режим настройки отключён:
Окно терминала sudo sbctl statusОжидаемый вывод
Окно терминала Installed: ✔ sbctl is installedOwner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70Setup Mode: ✔ DisabledSecure Boot ✘ DisabledVendor Keys: microsoft
Подпись образа ядра и загрузчика
Заголовок раздела «Подпись образа ядра и загрузчика»CachyOS предоставляет sbctl-batch-sign,
скрипт, который берет список файлов, требующих подписи, из вывода sudo sbctl verify и подписывает их все.
sudo sbctl verifyVerifying file database and EFI images in /boot...✘ /boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn4.0.fc40.x86_64/linux is not signed✘ /boot/EFI/BOOT/BOOTX64.EFI is not signed✘ /boot/EFI/systemd/systemd-bootx64.efi is not signed✘ /boot/1c4b5246eef05ac3bc87339323cd5101/0-rescue/linux is not signed✘ /boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn3.0.fc40.x86_64/linux is not signed
sudo sbctl-batch-sign
sudo sbctl verifyVerifying file database and EFI images in /boot...✔ /boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn4.0.fc40.x86_64/linux is signed✔ /boot/EFI/BOOT/BOOTX64.EFI is signed✔ /boot/EFI/systemd/systemd-bootx64.efi is signed✔ /boot/1c4b5246eef05ac3bc87339323cd5101/0-rescue/linux is signed✔ /boot/1c4b5246eef05ac3bc87339323cd5101/6.10.0-cn3.0.fc40.x86_64/linux is signedТеперь, когда все файлы подписаны. Перезагрузите систему и зайдите в настройки UEFI, чтобы включить Secure Boot.
Обратитесь к этому разделу для справки
Обратите внимание, что это одноразовый процесс, так как подпись файлов с флагом -s сохранит эти файлы в базе данных sbctl.
CachyOS использует systemd-boot-update.service, предоставляемый systemd, для обновления загрузчика при перезагрузке. Это означает, что хук pacman
sbctl не будет подписывать обновленные EFI-файлы. В качестве обходного пути мы можем подписать загрузчик напрямую.
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efiLimine — это особый загрузчик, который позволяет проверять хеш-суммы образов ядра
и других файлов, которые Limine использует во время загрузки. Если эта функция включена, любая
ручная настройка, выполненная пользователем, например, подпись образа через
sbctl-batch-sign, изменит хеш-сумму соответствующих файлов, что
приведет к сбою проверки контрольной суммы Limine.
Однако подписывать эти файлы в Limine не обязательно, потому что у него есть особый процесс загрузки, который обходит цепочку загрузки EFI (chainloading) и проверки подписей. Единственные EFI-файлы, которые необходимо подписать — это сам Limine.
Чтобы включить автоматическую регистрацию контрольной суммы конфигурации, добавьте следующее в /etc/default/limine:
ENABLE_ENROLL_LIMINE_CONFIG=yesДалее сгенерируйте хеш для заставки Limine:
- Проверьте текущее имя и путь к изображению заставки в файле конфигурации:
Вы должны увидеть строку вида:
Откройте терминал и выполните следующую команду: sudo cat /boot/limine.confОкно терминала wallpaper: boot():/limine-splash.png - Сгенерируйте хеш BLAKE2B для изображения заставки и добавьте его к пути в файле конфигурации:
Результатом будет хеш, подобный следующему примеру:
Выполните следующую команду, заменив путь на найденный в предыдущем шаге: sudo b2sum /boot/limine-splash.pngОкно терминала 75205d08fa9c61599897857e861d6b2f6da25465183fc4cc9efecffb22ee630efb510f2ef1b17677db94c28d5c69ad2ceb4d3892f5bec9cfa65c97b5ba16f52f - Скопировав сгенерированный на предыдущем шаге хеш, откройте файл конфигурации в текстовом редакторе и добавьте хеш к пути изображения заставки, как показано ниже:
Как видите, хеш добавляется к пути с символом
Окно терминала wallpaper: boot():/limine-splash.png#75205d08fa9c61599897857e861d6b2f6da25465183fc4cc9efecffb22ee630efb510f2ef1b17677db94c28d5c69ad2ceb4d3892f5bec9cfa65c97b5ba16f52f#. Сохраните файл после внесения изменений.
После включения регистрации контрольной суммы конфигурации и генерации хеша для изображения заставки, выполните следующие команды для регистрации контрольной суммы и подписи EFI-файла Limine:
# Используйте limine-enroll-config для регистрации контрольной суммы конфигурации и подписи EFI-файла Limine# Под капотом используется sbctlsudo limine-enroll-configsudo limine-updateПроверка включения Secure Boot
Заголовок раздела «Проверка включения Secure Boot»Чтобы убедиться, что безопасная загрузка действительно включена, вы можете выполнить одну из следующих команд:
sudo sbctl statusInstalled: ✓ sbctl is installedOwner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70Setup Mode: ✓ DisabledSecure Boot: ✓ EnabledVendor Keys: microsoft
bootctlSystem: Firmware: UEFI 2.80 (INSYDE Corp. 28724.16435) Firmware Arch: x64 Secure Boot: enabled (user) TPM2 Support: yes Measured UKI: no Boot into FW: supportedСсылки и благодарности
Заголовок раздела «Ссылки и благодарности»- The Arch Wiki заложила основу для этого руководства. Большая часть материала взята оттуда.
- sbctl - Это простое руководство по включению поддержки Secure Boot не было бы возможным, если бы не потрясающая работа по созданию этой программы.
- Improving the Secure Boot Experience by Morten linderud - Статья в блоге Мортена
“Foxboron” Линдеруда о том, насколько сложным был опыт работы с безопасной загрузкой до появления
sbctl.