Uaktualniam z Ubuntu 15.10 do 16.04 i od tego czasu VirtualBox 5.0.18 nie uruchamia już moich maszyn wirtualnych. Narzeka, że „vboxdrv” nie jest załadowany. Dlatego próbuję go załadować i wyświetlić następujący błąd:
$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available
Uważam, że jest to związane z bezpiecznym uruchomieniem, którego używam i którego chcę nadal używać. W rzeczywistości z Ubuntu 15.10 bezpieczny rozruch i VirtualBox działały dobrze.
Próbowałem również, $ sudo apt-get --reinstall install virtualbox-dkms
który z powodzeniem zbudował moduł jądra, ale nie rozwiązałem tego problemu.
Masz pomysł, jak załadować vboxdrv, zachowując bezpieczny rozruch?
Aktualizacja 2 : Próbowałem także wykonać sudo mokutil --disable-validation
. Podczas wykonywania tego polecenia podczas następnego rozruchu pojawia się monit o wyłączenie bezpiecznego rozruchu, dodanie klucza lub skrótu z dysku. Ponieważ nie chcę wyłączać bezpiecznego rozruchu, wydaje się, że to również nie rozwiązuje mojego problemu. Chcę również zachować UEFI aktywowany dla równoległej instalacji Windows.
Uwaga : jeśli nie masz nic przeciwko wyłączeniu bezpiecznego rozruchu, zobacz Dlaczego pojawia się komunikat „Wymagany klucz nie jest dostępny” podczas instalowania modułów jądra innych firm lub po aktualizacji jądra? zamiast.
aptitude install virtualbox virtualbox-dkms
będzie znak moduł i poprosi o podanie hasła jednorazowego (?). Uruchom ponownie, wprowadź konfigurację MOK i zarejestruj klucz przy użyciu tego hasła.Odpowiedzi:
Od wersji jądra 4.4.0-20 wymuszono, że niepodpisane moduły jądra nie będą mogły działać przy włączonym Bezpiecznym rozruchu. Ponieważ chcesz zachować bezpieczny rozruch, następnym logicznym krokiem jest podpisanie tych modułów.
Więc spróbujmy.
Utwórz klucze do podpisywania
Opcja : dla dodatkowego bezpieczeństwa pomiń przełącznik -nodes, który poprosi o hasło. Następnie przed przejściem do następnego kroku upewnij się, że
export KBUILD_SIGN_PIN='yourpassword'
Podpisz moduł (vboxdrv w tym przykładzie, ale powtórz dla innych modułów w
ls $(dirname $(modinfo -n vboxdrv))/vbox*.ko)
celu uzyskania pełnej funkcjonalności)Potwierdź, że moduł jest podpisany
Zarejestruj klucze do bezpiecznego rozruchu
który poprosi o podanie hasła do potwierdzenia importu w następnym kroku.
Uruchom ponownie i postępuj zgodnie z instrukcjami, aby zarejestrować MOK (klucz właściciela maszyny). Oto próbka ze zdjęciami. System uruchomi się ponownie.
Potwierdź, że klucz jest zarejestrowany
Jeśli VirtualBox nadal się nie ładuje, może to być spowodowane tym, że moduł nie załadował się (
sudo modprobe vboxdrv
naprawi to) lub że klucz nie jest podpisany. Po prostu powtórz ten krok i wszystko powinno działać dobrze.Zasoby: Szczegółowy artykuł na stronie internetowej dotyczący implementacji podpisywania modułów przez Fedorę i Ubuntu . @zwets dla dodatkowego bezpieczeństwa . @shasha_trn za wzmiankę o wszystkich modułach .
Dodatkowy zasób: Utworzyłem skrypt bash na własny użytek za każdym razem, gdy przeprowadzana jest
virtualbox-dkms
aktualizacja, i dlatego zastępuje podpisane moduły. Sprawdź mój vboxsign pierwotnie na GitHub .źródło
sudo apt install --reinstall virtualbox-dkms
zanim wykonam podane instrukcje.KBUILD_SIGN_PIN
zmienną środowiskową?export KBUILD_SIGN_PIN=password
aexport KBUILD_SIGN_PIN="password"
przed krokiem 2 oba zakończyły sięSSL error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read: pem_pkey.c:117
W moim systemie wykonałem następujące czynności, aby to działało:
Uruchom mokutil:
Następnie mokutil poprosił mnie o ustawienie hasła dla menedżera MOK. Po ponownym uruchomieniu komputera BIOS pokazał okno dialogowe do konfiguracji MOK Managera. Wyłączyłem SecureBoot w tym oknie dialogowym, poprosiłem o kilka znaków z hasła (tj. Wprowadź znak (5) itp.).
Po uruchomieniu poprawnie załadowane moduły vboxdrv.
Co ciekawe, mokutil nadal pokazuje, że SecureBoot jest włączony:
źródło
Możesz wyłączyć sprawdzanie poprawności przez
Następnie pakiety DKMS powinny zostać zainstalowane.
źródło
Po aktualizacji pojawił się błąd dotyczący vboxdrv. Ale wystąpił problem ze starą wersją (5.0.14) pakietu Oracle VM VirtualBox Extension Pack. Pobrałem i zainstalowałem nowszą wersję (5.0.18) tego pakietu i problem zniknął.
źródło
W porządku, więc po kilku testach jestem pewien, że jest to problem z bezpiecznym uruchomieniem.
Jak w przypadku, gdy jest włączony, jest to zgłaszane:
Jednak jeśli bezpieczny rozruch jest wyłączony, virtualbox ładuje się dobrze bez żadnych błędów.
Nadal mam ustawiony bios jako UEFI.
źródło
Miałem dzisiaj ten sam problem, miałem Windows 10 i Ubuntu 15.10 na podwójnym rozruchu z uefi włączonym na Bios (nie wyłączyłem go, aby móc uruchomić wstępnie zainstalowany system Windows).
Po aktualizacji do Ubuntu 16.04 VirtualBox przestał ładować moje maszyny wirtualne z tym samym komunikatem o błędzie:
Podejrzewałem problem z interfejsem UEFI, ponieważ podczas aktualizacji instalator zapytał mnie, czy chcę go wyłączyć, na co odpowiedziałem Nie (ponieważ Tak może sprawić, że mój system Windows będzie bezużyteczny).
To, co zrobiłem, to przejście do Bios i włączenie obsługi starszego rozruchu BIOS-u BEZ wyłączenia bezpiecznego rozruchu.
Virtualbox działa teraz dobrze.
Aktualizacja : Jak słusznie wskazano @zwets w komentarzu, włączenie starszych modułów powoduje wyłączenie bezpiecznego rozruchu.
źródło