Handbook / Current desktop documentation
Secure Boot
Manual sbctl workflow, firmware keys, bootloader risks and undo.
This is the English desktop Handbook, published online from the same generated catalog. References to buttons, panels and menus describe the installed desktop. Package updates can be newer than the downloadable ISO. Check installation & validation scope.
Eitr documents Secure Boot but never enrolls keys or signs files for you. A mistake here can leave a machine that refuses to boot or shows no picture, so follow these steps by hand, on a machine you can reach firmware setup on, with your disk passphrase and recovery instructions at hand. Nothing in this guide has been verified on Eitr test hardware yet.
Before you start
- UEFI boot only. Note how to open firmware setup (often F2, Del or F12) and set a firmware administrator password, or anyone can turn Secure Boot off again.
- If TPM disk unlock is enrolled, keep the passphrase ready: enrolling keys changes TPM PCR 7, so the next boot asks for it once. Re-enroll TPM unlock afterwards (Security → TPM Disk Unlock: remove, then enroll).
- In firmware setup, put Secure Boot into Setup Mode (often "Clear keys" or "Reset to Setup Mode"). Do not delete keys you cannot restore; most firmware has "Restore factory keys".
sbctl workflow
sudo pacman -S --needed sbctl
sbctl status # must report "Setup Mode: Enabled"
sudo sbctl create-keys # private keys stay in /var/lib/sbctl (root-only)
sudo sbctl enroll-keys -m # -m keeps Microsoft's keys; see risks below
sudo sbctl verify # lists EFI files and whether they are signed
sudo sbctl sign -s <file> # once per unsigned file listed by verify
sign -s saves the file in sbctl's database; sbctl's pacman hook re-signs saved
files after kernel and boot loader updates. Run sudo sbctl verify after each
change, then enable Secure Boot in firmware and reboot. Back up /var/lib/sbctl
offline and privately: it holds signing keys. Never copy it into this repository.
Risks
- Option ROMs and vendor keys. Graphics cards, NVMe drives and network cards
often run firmware (Option ROMs) signed by Microsoft's UEFI CA. Enrolling only
your own keys without
-mcan make the firmware refuse them: no display, no boot disk, and on some laptops no way back into firmware setup. Keep-munless you know the hardware has no such firmware.sbctl enroll-keys --tpm-eventlogcan add the hashes of the Option ROMs used at this boot instead, but they change with hardware or firmware updates. - Unsigned files. Every EFI binary in the boot path must be signed with your keys. A missed file stops the boot; disable Secure Boot in firmware to recover.
- Dual boot. Windows keeps booting only with
-m.
Boot loaders and snapshot entries
- GRUB: reinstall with
sudo grub-install --target=x86_64-efi --efi-directory=<esp> --bootloader-id=GRUB --modules="tpm" --disable-shim-lock, then sign the newgrubx64.efiand the kernels in/boot. In this setup GRUB does not check kernel signatures, so grub-btrfs snapshot entries keep booting, but the protection covers the GRUB binary rather than every kernel. Re-rungrub-installandsbctl signafter GRUB updates that change the image. - Limine: sign the Limine EFI binary (
sbctl sign -s <esp>/EFI/limine/BOOTX64.EFIor wherever it is installed). Limine protects its config and kernels with hashes rather than signatures. If you enroll the config hash into the binary (limine enroll-config), every change tolimine.conf, including each new snapshot entry from limine-snapper-sync, must re-enroll and re-sign it. Confirm that yourlimine-mkinitcpio-hooksettings do this (it uses sbctl when installed) before enabling Secure Boot, or the next snapshot sync makes the loader refuse its menu. - systemd-boot: sign
systemd-bootx64.efiand the kernels or unified kernel images it loads. It does not support snapshot boot entries. - Snapshot entries for older kernels must still pass your loader's checks. After enabling Secure Boot, boot one snapshot entry once to confirm it works before you need it.
Undo
- Enter firmware setup and disable Secure Boot, or choose "Restore factory keys" to return to the vendor key set. The installed system keeps booting with Secure Boot off.
- Optionally remove saved files from sbctl's database with
sudo sbctl remove-file <file>; signatures on the files themselves are harmless. - If TPM unlock was enrolled while Secure Boot was on, PCR 7 changes again: enter the passphrase once and re-enroll.
References: sbctl, Arch Wiki: Secure Boot.