Strona główna
» LINUX
»
Jak naprawić błąd uruchamiania maszyny wirtualnej VirtualBox w systemie Linux
Jak naprawić błąd uruchamiania maszyny wirtualnej VirtualBox w systemie Linux
Jeśli maszyna wirtualna VirtualBox nie uruchamia się w systemie Linux , przed ponowną instalacją zapoznaj się z treścią błędu. Częstą przyczyną po stronie hosta jest vboxdrvbrak wymaganego modułu jądra, jego kompilacja dla innego jądra lub zablokowanie przez Secure Boot. Inne komunikaty wskazują na ustawienia maszyny wirtualnej, niezgodność wersji lub funkcję wymagającą pakietu rozszerzeń.
1. Zarejestruj błąd i sprawdź wersje hosta
Zapisz cały tekst okna dialogowego i kod błędu, a następnie sprawdź, która kompilacja VirtualBox i jądro Linux są uruchomione:
VBoxManage --version
uname -r
Użyj samego błędu, aby wybrać kolejne sprawdzenie. Jeśli VirtualBox się uruchomi, ale jedna maszyna wirtualna ulegnie awarii, skup się na jej logu i ustawieniach. Jeśli każda maszyna wirtualna ulegnie awarii z komunikatem o błędzie hosta, zacznij od vboxdrv.
Tylko przykład: użyj kodu błędu i wartości wersji wyświetlanych na Twoim własnym hoście Linux.
2. Sprawdź, czy sterownik hosta VirtualBox jest załadowany
Linux używa vboxdrvmodułu jądra hosta do uruchamiania maszyn wirtualnych. Sprawdź moduły VirtualBox, a następnie spróbuj załadować główny sterownik:
lsmod | grep '^vbox'
sudo modprobe vboxdrv
Jeśli modprobezwróci błąd, zachowaj jego dokładną treść. Jeśli błąd się powiedzie, spróbuj ponownie uruchomić maszynę wirtualną. Przewodnik Oracle po instalacji hosta Linux wyjaśnia, że VirtualBox potrzebuje modułów jądra hosta i odpowiednich nagłówków jądra.
Pomyślne zapytanie modprobemoże nie zwrócić żadnego tekstu. Ważne wskazanie to komunikat o błędzie.
3. Odbuduj moduł dla uruchomionego jądra
Po aktualizacji jądra Linuxa moduł VirtualBox może nie być zgodny z aktualnie działającym jądrem. Sprawdź, czy pliki programistyczne dla tego konkretnego jądra są dostępne:
uname -r
ls -ld "/lib/modules/$(uname -r)/build"
Jeśli buildlinku brakuje, zainstaluj odpowiednie nagłówki jądra lub pakiet deweloperski za pomocą menedżera pakietów swojej dystrybucji. W Ubuntu lub Debianie, gdy VirtualBox pochodzi z repozytorium dystrybucji, typowa naprawa wygląda następująco:
Nazwy pakietów różnią się w systemach Fedora, Arch Linux, openSUSE i innych. Zainstaluj nagłówki dla uruchomionego jądra i pakiet host-module, który odpowiada sposobowi instalacji VirtualBox. Nie mieszaj instalatora Oracle z pakietami VirtualBox danej dystrybucji; używaj jednego źródła pakietów i jego instrukcji przebudowy. Indeks pakietów Ubuntu pokazuje, które wersje aktualnie oferują virtualbox-dkms.
Wersja jądra i jej katalog kompilacji muszą odpowiadać temu samemu działającemu jądru.To polecenie package dotyczy instalacji Ubuntu lub Debian z ich repozytoriów; nazw pakietów swojej dystrybucji używaj gdzie indziej.
4. Sprawdź Bezpieczny rozruch, jeśli Linux odrzuca moduł
Bezpieczny rozruch może uniemożliwić załadowanie niepodpisanego modułu jądra innej firmy. Sprawdź jego stan i poszukaj powiązanych komunikatów jądra:
Jeśli w wyniku pojawi się informacja, że klucz został odrzucony lub moduł jest niepodpisany, należy postępować zgodnie z procedurą podpisywania modułów w dystrybucji. W systemie Ubuntu moduły DKMS można podpisywać kluczem właściciela maszyny (MOK). Jeśli instalacja poprosi o zarejestrowanie klucza, należy wypełnić ekran rejestracji przy następnym uruchomieniu. Canonical dokumentuje proces bezpiecznego rozruchu i MOK . Wyłączenie bezpiecznego rozruchu nie jest pierwszą czynnością, którą należy wykonać.
Użyj dziennika jądra, aby odróżnić odrzucony moduł od brakującego lub nieudanego skompilowania.
5. Sprawdź pakiet rozszerzeń tylko wtedy, gdy wymaga tego błąd
Pakiet rozszerzeń nie jest wymagany do uruchomienia zwykłej maszyny wirtualnej. Dodaje on określone funkcje, w tym obsługę USB 2.0 i 3.0 oraz możliwości zdalnego wyświetlania. Jeśli błąd dotyczy rozszerzenia lub jednej z tych funkcji, sprawdź zainstalowany pakiet:
VBoxManage list extpacks
Jeśli jest zainstalowany, jego wersja musi być zgodna z wersją hosta VirtualBox. Zaktualizuj lub usuń przestarzały pakiet za pomocą zarządzania rozszerzeniami VirtualBox lub pobierz pasującą wersję z oficjalnej strony pobierania VirtualBox . Nie instaluj starego pakietu rozszerzeń tylko dlatego, że maszyna wirtualna nie chce się uruchomić.
Porównaj wersję pakietu rozszerzeń z wersją hosta z VBoxManage --version.
6. Użyj dziennika maszyny wirtualnej w przypadku błędów, które dotyczą jednej maszyny
W przypadku awarii tylko jednej maszyny wirtualnej otwórz ją VBox.logw folderze tej maszyny Logs. Domyślna lokalizacja to [ brakuje nazwy pliku], choć maszyna wirtualna może korzystać z innego folderu. Sprawdź ostatnie wiersze wokół nieudanego uruchomienia, aby znaleźć pierwszy błąd krytyczny; rozdział~/VirtualBox VMs/VM-name/Logs Oracle poświęcony rozwiązywaniu problemów opisuje dziennik i typowe wskazówki diagnostyczne.
Fragmenty dziennika różnią się w zależności od błędu; użyj rzeczywistego dziennika z maszyny wirtualnej, która się nie uruchomiła.
Jeśli komunikat informuje, że wirtualizacja sprzętowa jest niedostępna, włącz technologię Intel VT-x lub AMD-V (czasami oznaczaną jako SVM) w oprogramowaniu sprzętowym hosta. Jeśli sam Linux działa na innej maszynie wirtualnej, zewnętrzny hiperwizor musi udostępnić zagnieżdżoną wirtualizację. Unikaj zmiany ustawień maszyny wirtualnej niezwiązanej z tym procesem, chyba że błąd na nie wskazuje.
Etykiety i układ menedżera różnią się w zależności od wersji VirtualBox. Komunikat o błędzie powinien wskazać, które ustawienie należy sprawdzić.
7. Unikaj ryzykownych zmian uprawnień
Nie uruchamiaj chownVirtualBoxa /usrw celu naprawy. Katalog systemowy jest zazwyczaj własnością użytkownika root, a zmiana właściciela może uszkodzić pliki zarządzane przez pakiety bez naprawy modułu jądra. Po zainstalowaniu prawidłowych nagłówków lub przebudowaniu sterownika, uruchom ponownie komputer z odpowiednim jądrem i spróbuj ponownie uruchomić maszynę wirtualną.
Jeśli problem nadal występuje, zachowaj dokładny tekst okna dialogowego, dystrybucję i wersję jądra Linuksa, wersję VirtualBox, dkms statusdane wyjściowe i odpowiedni koniec pliku VBox.log. Te dane określają, czy kolejny krok dotyczy sterownika hosta, bezpiecznego rozruchu, konfiguracji maszyny wirtualnej, czy niezgodności wersji.