Přeskočit na obsah
Tato stránka je zastaralá. Podívejte se prosím na nejnovější dokumentaci na /configuration/secure_boot_setup/

Nastavení Secure Boot

sbctl je uživatelsky přívětivý správce klíčů pro Secure Boot, schopný nastavit Secure Boot, nabízí možnosti správy klíčů a sleduje soubory, které je třeba podepsat ve spouštěcím řetězci.

Terminál
sudo pacman -S sbctl

Příprava před nastavením

Sekce “Příprava před nastavením”

Pokud používáte GRUB, spusťte následující příkaz pro povolení podpory Secure Boot v GRUBu pomocí CA klíčů.

Terminál
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=cachyos --modules="tpm" --disable-shim-lock

Vstup do režimu Setup Mode v UEFI

Sekce “Vstup do režimu Setup Mode v UEFI”

Nejprve musíme přejít do nastavení firmwaru a nastavit režim Secure Boot na “Setup Mode”. Z již běžícího systému můžete do nastavení firmwaru restartovat následujícím příkazem.

Terminál
systemctl reboot --firmware-setup

Takto vypadá BIOS na Lenovo Ideapad 5 Pro. Resetujte do režimu nastavení nebo obnovte tovární klíče a restartujte zpět do systému.

Terminál
sudo sbctl status # Pokud je povolen režim nastavení, můžeme přejít k dalšímu kroku
Installed: sbctl is not installed
Setup Mode: Enabled
Secure Boot Disabled
sudo sbctl create-keys # Vytvoření vlastních klíčů pro Secure Boot
Created Owner UUID a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Creating secure boot keys...✔
Secure boot keys created!
sudo sbctl enroll-keys -m # Zapsání vašich klíčů spolu s klíči od Microsoftu
Enrolling keys to EFI variables...✔
Enrolled keys to the EFI variables!
sudo sbctl status
# sbctl by nyní měl být nainstalován a můžeme přejít k podepisování obrazů kernelu a zavaděče
Installed: sbctl is installed
Owner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Setup Mode: Disabled
Secure Boot Disabled
Vendor Keys: microsoft

Podepisování obrazu kernelu a zavaděče

Sekce “Podepisování obrazu kernelu a zavaděče”

CachyOS poskytuje skript sbctl-batch-sign, který vezme seznam souborů, které je třeba podepsat, z výstupu sudo sbctl verify a všechny je podepíše.

Terminál
sudo sbctl verify
Verifying 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 verify
Verifying 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

Nyní, když jsou všechny soubory podepsány, můžeme restartovat zpět do nastavení UEFI a povolit Secure Boot. Všimněte si, že se jedná o jednorázový proces, protože podepisování souborů s příznakem -s uloží tyto soubory do databáze sbctl. sbctl se dodává s pacman hookem, což znamená, že automaticky podepíše všechny nové soubory při aktualizaci kernelu nebo zavaděče.

CachyOS používá systemd-boot-update.service poskytovaný systemd k aktualizaci zavaděče při restartu. To znamená, že sbctl pacman hook nepodepíše aktualizované EFI binární soubory. Jako náhradní řešení můžeme zavaděč podepsat přímo.

Terminál
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi

Limine je speciální zavaděč, který umožňuje kontrolu hashe obrazů kernelu a dalších souborů, které Limine používá během spouštění. Pokud je toto povoleno, jakákoli ruční konfigurace provedená uživatelem, např. podepsání obrazu pomocí sbctl-batch-sign, změní hash odpovídajících souborů a ověření kontrolního součtu Limine selže.

Podepisování těchto souborů však na Limine není nutné, protože má speciální proces spouštění, který obchází řetězení EFI a kontroly podpisů. Jediné EFI binární soubory, které je třeba podepsat, jsou samotný Limine a záložní EFI binární soubor, který se nachází na všech systémech UEFI.

Chcete-li povolit automatické zapsání kontrolního součtu konfigurace, nastavte následující v /etc/default/limine:

Terminál
ENABLE_ENROLL_LIMINE_CONFIG=yes

Poté spusťte:

Terminál
# Podepsání speciálního EFI binárního souboru
sudo sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI
# Použití limine-enroll-config k zapsání kontrolního součtu konfigurace a podepsání EFI binárního souboru Limine
# Toto používá sbctl pod kapotou
sudo limine-enroll-config
# Aktualizace nainstalovaných EFI binárních souborů Limine
sudo limine-update

Ověření, že je Secure Boot povolen

Sekce “Ověření, že je Secure Boot povolen”

Chcete-li zkontrolovat, že je Secure Boot skutečně povolen, můžete spustit jeden z následujících příkazů.

Terminál
sudo sbctl status
Installed: sbctl is installed
Owner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Setup Mode: Disabled
Secure Boot: Enabled
Vendor Keys: microsoft
bootctl
System:
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
  • Arch Wiki položila základy pro tento průvodce. Většina věcí zde byla převzata odtud.
  • sbctl - Tento snadný průvodce pro povolení podpory Secure Boot by nebyl možný, nebýt úžasné práce, která byla vynaložena na vytvoření tohoto softwaru.
  • Improving the Secure Boot Experience by Morten linderud - Blogový příspěvek od Mortena “Foxborona” Linderuda o tom, jak byla zkušenost se Secure Boot komplikovaná před sbctl.