it-swarm.com.de

Vboxdrv konnte nach dem Upgrade auf Ubuntu 16.04 nicht geladen werden (und ich möchte sicher booten)

Ich aktualisiere von Ubuntu 15.10 auf 16.04 und seitdem startet VirtualBox 5.0.18 meine VMs nicht mehr. Es beschwert sich, dass 'vboxdrv' nicht geladen ist. Also versuche ich es zu laden und erhalte folgende Fehlermeldung:

$ Sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available

Ich glaube, dass es sich um einen sicheren Start handelt, den ich verwende und den ich weiterhin verwenden möchte. Eigentlich funktionierten mit Ubuntu 15.10 Secure Boot und VirtualBox einwandfrei.

Außerdem habe ich $ Sudo apt-get --reinstall install virtualbox-dkms ausprobiert, wodurch das Kernelmodul erfolgreich erstellt wurde, dieses Problem jedoch nicht gelöst wurde.

Haben Sie eine Idee, wie Sie vboxdrv laden können, während der sichere Start aktiviert bleibt?

Update 2 : Auch ich habe versucht, Sudo mokutil --disable-validation auszuführen. Wenn ich diesen Befehl ausführe, werde ich beim nächsten Start aufgefordert, den sicheren Start zu deaktivieren, einen Schlüssel oder einen Hash von der Festplatte hinzuzufügen. Da ich den sicheren Start nicht deaktivieren möchte, scheint dies auch mein Problem nicht zu lösen. Außerdem möchte ich UEFI für eine parallele Windows-Installation aktiviert lassen.

Hinweis : Wenn es Ihnen nichts ausmacht, den sicheren Start zu deaktivieren, lesen Sie Warum wird bei der Installation des Kernels eines Drittanbieters die Meldung "Erforderlicher Schlüssel nicht verfügbar" angezeigt?) Module oder nach einem Kernel-Upgrade? statt.

130
jans

Seit der Kernel-Version 4.4.0-20 wurde durchgesetzt, dass nicht signierte Kernel-Module mit aktiviertem Secure Boot nicht ausgeführt werden dürfen. Da Sie Secure Boot beibehalten möchten, ist der nächste logische Schritt, diese Module zu signieren .

Also lass es uns versuchen.

  1. Erstellen Sie Signaturschlüssel

    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive common name/"
    

    Option : Überspringen Sie für zusätzliche Sicherheit den Schalter -nodes, der Sie nach einem Kennwort fragt. Bevor Sie mit dem nächsten Schritt fortfahren, stellen Sie sicher, dass export KBUILD_SIGN_PIN='yourpassword'

  2. Signieren Sie das Modul (vboxdrv für dieses Beispiel, aber wiederholen Sie dies für andere Module in ls $(dirname $(modinfo -n vboxdrv))/vbox*.ko) für die volle Funktionalität)

    Sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
    
  3. Bestätigen Sie, dass das Modul signiert ist

    tail $(modinfo -n vboxdrv) | grep "Module signature appended"
    
  4. Registrieren Sie die Schlüssel für Secure Boot

    Sudo mokutil --import MOK.der
    

    sie werden aufgefordert, ein Kennwort einzugeben, um den Import im nächsten Schritt zu bestätigen.

  5. Starten Sie den Computer neu und befolgen Sie die Anweisungen zum Registrieren von MOK (Machine Owner Key). Hier ist ein Beispiel mit Bildern. Das System wird noch einmal neu gestartet.

  6. Bestätigen Sie, dass der Schlüssel registriert ist

    mokutil --test-key MOK.der
    

Wenn VirtualBox immer noch nicht geladen wird, kann dies daran liegen, dass das Modul nicht geladen wurde (dies wird durch Sudo modprobe vboxdrv behoben) oder dass der Schlüssel nicht signiert ist. Wiederholen Sie einfach diesen Schritt und alles sollte gut funktionieren.

Ressourcen: Detaillierte Website Artikel für Fedora und buntu-Implementierung der Modulsignatur. @zwets für zusätzliche Sicherheit . @shasha_trn für nter Erwähnung aller Module .

Zusätzliche Ressource: Ich habe jedes Mal, wenn virtualbox-dkms aktualisiert wird, ein Bash-Skript für meinen eigenen Gebrauch erstellt und überschreibe damit die signierten Module. Check out my vboxsign ursprünglich auf GitHub .

174
Majal

Auf meinem System habe ich Folgendes getan, damit es funktioniert:

Führen Sie mokutil aus:

Sudo mokutil --disable-validation

Dann bat mich mokutil, ein Passwort für den MOK Manager festzulegen. Nach dem Neustart des PCs zeigte das BIOS einen Dialog zur Konfiguration des MOK-Managers. Ich habe SecureBoot in diesem Dialogfeld deaktiviert. Es wurden mehrere Zeichen aus dem Kennwort abgefragt (z. B. Zeichen (5) eingeben usw.).

Nach dem Booten sind die vboxdrv Module korrekt geladen.

lsmod | grep vboxdrv
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci

Interessanterweise zeigt mokutil immer noch, dass SecureBoot aktiviert ist:

Sudo mokutil --sb-state
SecureBoot enabled
14
Pocho

Sie können die Validierungsprüfung deaktivieren, indem Sie

Sudo apt install mokutil
Sudo mokutil --disable-validation

Danach sollten DKMS-Pakete installiert werden.

4
Pilot6

Ich habe auch nach dem Upgrade eine Fehlermeldung über vboxdrv erhalten. Es gab jedoch ein Problem mit der alten Version (5.0.14) von Oracle VM VirtualBox Extension Pack. Ich habe eine neuere Version (5.0.18) dieses Pakets heruntergeladen und installiert und das Problem ist verschwunden.

0
Reling

Ich hatte heute das gleiche Problem, ich hatte Windows 10 und Ubuntu 15.10 in einem Dual-Boot mit uefi auf Bios aktiviert (ich habe es nicht deaktiviert, damit ich das vorinstallierte Windows ausführen kann).

Nach dem Upgrade auf Ubuntu 16.04 hat VirtualBox das Laden meiner VMs mit der gleichen Fehlermeldung abgebrochen:

modprobe: ERROR: could not insert 'vboxdrv': Required key not available

Ich habe ein UEFI-Problem vermutet, weil ich beim Aktualisieren des Installationsprogramms gefragt wurde, ob ich es deaktivieren möchte, worauf ich mit Nein geantwortet habe (weil Ja mein Windows möglicherweise unbrauchbar macht).

Ich ging zu Bios und aktivierte die Unterstützung für den Legacy-BIOS-Start, OHNE den sicheren Start zu deaktivieren.

Virtualbox funktioniert jetzt einwandfrei.

pdate: Wie @zwets im Kommentar richtig angegeben hat, wird beim Aktivieren von Legacy-Modulen der sichere Start deaktiviert.

0
Zeine77

Okay, nach ein paar Tests bin ich mir ziemlich sicher, dass dies ein sicheres Boot-Problem ist.

Als ob es aktiviert ist, wird dies geworfen:

WARNUNG: Das vboxdrv-Kernelmodul ist nicht geladen. Entweder ist kein Modul für den aktuellen Kernel verfügbar (4.4.0-21-generic) oder es konnte nicht geladen werden. Bitte kompilieren Sie das Kernelmodul neu und installieren Sie es mit dem Sudo/sbin/rcvboxdrv-Setup

Wenn jedoch der sichere Start deaktiviert ist, wird die VirtualBox einwandfrei und ohne Fehler geladen.

Ich habe immer noch mein BIOS als UEFI eingestellt.

0
David Haynes