Zum Inhalt springen
Diese Seite ist veraltet. Bitte beachten Sie die neueste Dokumentation unter /configuration/secure_boot_setup/

Secure Boot einrichten

sbctl ist ein benutzerfreundlicher Schlüsselmanager für Secure Boot, mit dem du Secure Boot einrichten, Schlüssel verwalten und den Überblick über Dateien behalten kannst, die in der Boot-Kette signiert werden müssen.

Terminal-Fenster
sudo pacman -S sbctl

Wenn du GRUB verwendest, führe den folgenden Befehl aus, um die Secure-Boot-Unterstützung für GRUB mit CA-Schlüsseln zu aktivieren.

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

Zuerst müssen wir in die Firmware-Einstellungen gehen und den Secure-Boot-Modus auf „Setup-Modus“ stellen. Du kannst von einem laufenden System mit dem folgenden Befehl in die Firmware-Einstellungen neustarten.

Terminal-Fenster
systemctl reboot --firmware-setup

So sieht das BIOS auf einem Lenovo Ideapad 5 Pro aus. Setze es in den Setup-Modus zurück oder stelle die Werksschlüssel wieder her und starte das System neu.

Manche MSI-Motherboards haben jedoch keinen Setup-Modus. Um den gleichen Effekt zu erzielen, folge den beiden Schritten aus dem Bild unten:


Manche ASUS Mainboards verhalten sich ähnlich wie die gerade genannten MSI Mainboards, da sie keinen dedizierten Setup Mode haben.

Unter Boot → Secure Boot den Secure Boot Mode auf Custom stellen, anschließend unter Key Management die Option “Delete all Secure Boot Variables” auswählen.

Terminal-Fenster
sudo sbctl status # Wenn der Setup-Modus aktiviert ist, können wir mit dem nächsten Schritt fortfahren
Installed: sbctl is not installed
Setup Mode: Enabled
Secure Boot Disabled
sudo sbctl create-keys # Erstelle deine eigenen Secure-Boot-Schlüssel
Created Owner UUID a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Creating secure boot keys...✔
Secure boot keys created!
sudo sbctl enroll-keys --microsoft # Registriere deine Schlüssel zusammen mit den Schlüsseln von Microsoft
Enrolling keys to EFI variables...✔
Enrolled keys to the EFI variables!
sudo sbctl status
# sbctl sollte jetzt installiert sein, wir können mit dem Signieren der Kernel-Images und des Boot-Managers fortfahren
Installed: sbctl is installed
Owner GUID: a9fbbdb7-a05f-48d5-b63a-08c5df45ee70
Setup Mode: Disabled
Secure Boot Disabled
Vendor Keys: microsoft

CachyOS stellt sbctl-batch-sign bereit, ein Skript, das die Liste der zu signierenden Dateien von sudo sbctl verify entgegennimmt und sie alle signiert. Limine-Benutzer sollten zu Limine springen.

Terminal-Fenster
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

Jetzt, da alle Dateien signiert sind. Starte dein System neu und geh in deine UEFI-Einstellungen, um Secure Boot zu aktivieren.

Beachte, dass dies ein einmaliger Vorgang ist, da das Signieren von Dateien mit dem -s-Flag diese Dateien in der Datenbank von sbctl speichert.

CachyOS verwendet den systemd-boot-update.service, der von systemd bereitgestellt wird, um den Boot-Manager beim Neustart zu aktualisieren. Das bedeutet, dass der sbctl- Pacman-Hook die aktualisierten EFI-Binärdateien nicht signieren wird. Als Workaround können wir den Boot-Manager direkt signieren.

Terminal-Fenster
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi

Limine ist ein spezieller Boot-Manager, der es ermöglicht, den Hash von Kernel- Images und anderen Dateien, die Limine beim Booten verwendet, zu überprüfen. Wenn dies aktiviert ist, wird jede manuelle Konfiguration durch den Benutzer, z. B. das Signieren des Images über sbctl-batch-sign, den Hash der entsprechenden Dateien ändern und die Prüfsummenverifizierung von Limine fehlschlagen lassen.

Das Signieren dieser Dateien ist bei Limine jedoch nicht notwendig, da es einen speziellen Boot-Prozess hat, der das EFI-Chainloading und die Signaturprüfungen umgeht. Die einzigen EFI- Binärdateien, die signiert werden müssen, ist Limine selbst.

Um die automatische Registrierung der Konfigurationsprüfsumme zu aktivieren, setze folgendes in /etc/default/limine:

Terminal-Fenster
ENABLE_ENROLL_LIMINE_CONFIG=yes

Führe dann aus:

Terminal-Fenster
# Verwende limine-enroll-config, um die Konfigurationsprüfsumme einzutragen und die EFI-Binärdatei von Limine zu signieren
# Dies verwendet sbctl im Hintergrund
sudo limine-enroll-config
sudo limine-update

Um zu überprüfen, ob Secure Boot tatsächlich aktiviert ist, kannst du einen der folgenden Befehle ausführen

Terminal-Fenster
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
  • Das Arch Wiki hat die Grundlage für diese Anleitung gelegt. Das meiste hier wurde von dort übernommen.
  • sbctl - Diese einfache Anleitung zur Aktivierung der Secure-Boot-Unterstützung wäre nicht möglich gewesen ohne die großartige Arbeit, die in die Entwicklung dieser Software geflossen ist.
  • Improving the Secure Boot Experience by Morten linderud - Blogbeitrag von Morten “Foxboron” Linderud darüber, wie kompliziert die Secure-Boot-Erfahrung vor sbctl war.