Mir ist klar, dass Sie eine Lösung gefunden haben, bei der Secure Boot über Shim / deaktiviert wird mokutil
. Es gibt jedoch einen anderen Weg: Sie können den Kernel selbst signieren.
Im großen und ganzen ist das Verfahren:
- Generieren Sie Ihren eigenen sicheren Startschlüssel. Sie würden das mit dem
openssl
Programm machen. Sie müssen den öffentlichen Schlüssel DER-Datei auf Ihre EFI-Systempartition (ESP) kopieren, auf der normalerweise gemountet wird /boot/efi
. - Unterschreiben Sie Ihre Kernel-Datei. Ich benutze ein Werkzeug, das dazu aufgerufen wird
sbsign
. IIRC, Fedora bevorzugt ein anderes Programm, dessen letzte Überprüfung komplexer war. Sie müssen entweder den aktuellen Kernel umbenennen und Ihre signierte Version an seine Stelle setzen oder einen neuen GRUB-Eintrag für Ihren neuen Kernel erstellen. - Starten Sie das EFI neu und starten Sie MokManager. Einige Bootloader, wie z. B. mein eigener REIFInd, bieten eine Möglichkeit, den MokManager manuell einzugeben. Wenn dies nicht der Fall ist, müssen Sie möglicherweise durch einige Reifen springen, damit es funktioniert. Sobald Sie sich in MokManager befinden, müssen Sie die DER-Datei suchen, die Sie in das ESP kopiert haben, und diese Ihrer MOK-Liste hinzufügen.
- Wenn Sie jetzt einen Neustart durchführen, sollten Sie in der Lage sein, Ihren neu signierten Kernel auch bei aktiviertem Secure Boot zu starten.
Dieses Verfahren wird auf dieser Seite ausführlicher behandelt . Es ist langwierig und lohnt sich vielleicht nicht im Vergleich zum Deaktivieren von Secure Boot - aber dann vielleicht auch. Sie müssen abwägen, ob Sie durch diese Reifen springen möchten, um bei aktivem Secure Boot weiterhin booten zu können.
Beachten Sie außerdem, dass bei der Installation von rEFInd möglicherweise ein Satz von Secure Boot-Schlüsseln generiert und als gespeichert wird /etc/refind.d/keys/refind_local.*
. (Das refind-install
Skript führt dies aus, wenn die erforderlichen Dienstprogramme verfügbar sind, tut dies jedoch nicht, wenn sie nicht verfügbar sind.) Wenn Sie rEFInd installiert haben, ist Schritt 1 möglicherweise bereits ausgeführt. Sie können dann den lokalen Schlüssel rEFInd verwenden, um Ihren Kernel zu signieren.
Es gibt auch eine Variante dieses Verfahrens. Mit den neuesten Versionen von Shim und MokManager können Sie den Hash einer Binärdatei registrieren, um ihn zu authentifizieren. Dies funktioniert auch bei nicht signierten Binärdateien. Daher können Sie den Hash Ihres Kernels registrieren, damit er booten kann. Das Problem dabei ist, dass Sie den Hash jedes nicht signierten Kernels registrieren müssen, den Sie starten möchten. Dies ist möglicherweise keine große Sache, wenn Sie nur einen Kernel haben und nicht vorhaben, ihn zu aktualisieren. Wenn Sie jedoch den Kernel alle paar Wochen aktualisieren, werden Sie für immer neue Hashes registrieren. Dies ist sowohl umständlich als auch mit zunehmendem NVRAM-Speicherplatz verbunden. Daher ist dieser Ansatz in einigen Fällen etwas einfacher, in anderen jedoch viel schlechter.