Wer unter Fedora 25 VirtualBox nutzen will, hat mindestens zwei Möglichkeiten: 1. Secure Boot ausschalten, damit der Linux Kernel das unsignierte Modul für VirtualBox laden kann, oder 2. das Modul selber signieren, damit Secure Boot weiterhin funktioniert.
Hier der Weg, um die zweite Möglichkeit umzusetzen:
- Nach der Installation von VirtualBox mit „dnf install VirtualBox“ generieren wir als erstes unseren eigenen MOK im Verzeichnis „/PFAD_ZUM_MOK/“ mit:
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Custom MOK/"
- Dann die erzeugten Schlüssel für Secure Boot importieren. Als root ausführen:
mokutil --import MOK.der
Dabei muss ein Passwort gesetzt werden, dass einmalig zur Sicherheit beim Neustart abgefragt wird.
- Jetzt den Computer neu starten. Es erscheint ein blauer Screen, auf dem 1. eine Taste gedrückt, 2. „Enroll MOK“ ausgewählt, 3. „Continue“ ausgewählt, 4. „Yes“ ausgewählt, 5. das vergebene Passwort eingegeben und 6. „Ok“ ausgewählt werden muss (Hier der Prozess in Bildern).
- Jetzt geht es an das Signieren des VirtualBox Moduls. Dazu brauchen wir das Skript „sign-file“. Unter Fedora finden wir dieses im Verzeichnis „/usr/src/kernels/KERNEL_VERSION/scripts/“ (bitte die Versionsnummer KERNEL_VERSION entsprechend des eingesetzten Kernels anpassen, die sich mit dem Befehl „uname -r“ anzeigen lässt). Eventuell muss dafür zunächst noch ein Paket installiert werden:
dnf install kernel-devel-$(uname -r)
- Der gesamte Signierbefehl, auszuführen als root, lautet dann:
/usr/src/kernels/$(uname -r)/scripts/sign-file sha256 /PFAD_ZUM_MOK/MOK.priv /PFAD_ZUM_MOK/MOK.der $(modinfo -n vboxdrv)
- Sollte es beim Signierbefehlt zur Fehlermeldung „modinfo: ERROR: Module vboxdrv not found.“ auftreten, zunächst als root den Befehl „akmods;“ ausführen und dann den Signierbefehl wiederholen.
- Jetzt einfach VirtualBox beenden, neu starten und eventuell als root vboxdrv laden:
modprobe vboxdrv
Quellen:
- AskUbuntu: How to sign kernel modules with sign-file?
- SourceWare: Systemtap UEFI Secure Boot Support