Acasă
» LINUX
»
Cum să remediați o eroare de lansare a mașinii virtuale VirtualBox pe Linux
Cum să remediați o eroare de lansare a mașinii virtuale VirtualBox pe Linux
Dacă o mașină virtuală VirtualBox nu pornește pe Linux , citiți eroarea exactă înainte de a reinstala orice. O cauză frecventă de pe partea gazdei este vboxdrvlipsa modulului kernel necesar, faptul că a fost construit pentru un kernel diferit sau a fost blocat de Secure Boot. Alte mesaje indică o setare a mașinii virtuale, o nepotrivire de versiune sau o caracteristică care necesită Extension Pack.
1. Înregistrați eroarea și verificați versiunile gazdei
Notează textul complet al dialogului și codul de eroare, apoi verifică ce versiune VirtualBox și kernel Linux rulează:
VBoxManage --version
uname -r
Folosește eroarea în sine pentru a alege următoarea verificare. Dacă VirtualBox se deschide, dar o mașină virtuală eșuează, concentrează-te pe jurnalul și setările acelei mașini virtuale. Dacă fiecare mașină virtuală eșuează și afișează un mesaj de driver gazdă, începe cu vboxdrv.
Doar exemplu: utilizați codul de eroare și valorile versiunii afișate pe propria gazdă Linux.
2. Verificați dacă driverul gazdă VirtualBox este încărcat
Linux folosește vboxdrvmodulul kernel gazdă pentru a rula mașini virtuale. Verificați modulele VirtualBox, apoi încercați să încărcați driverul principal:
lsmod | grep '^vbox'
sudo modprobe vboxdrv
Dacă modprobereturnează o eroare, păstrează textul exact. Dacă reușește, încearcă din nou mașina virtuală. Ghidul de instalare a gazdei Linux de la Oracle explică faptul că VirtualBox are nevoie de module de kernel gazdă și antete de kernel corespunzătoare.
O operațiune reușită modprobepoate să nu returneze text; indiciul important este un mesaj de eroare.
3. Reconstruiți modulul pentru kernelul pe care l-ați pornit
După o actualizare a kernelului Linux, este posibil ca modulul VirtualBox să nu se potrivească încă cu kernelul care rulează în prezent. Confirmați că fișierele de dezvoltare pentru acel kernel sunt disponibile:
uname -r
ls -ld "/lib/modules/$(uname -r)/build"
Dacă buildlinkul lipsește, instalați antetele kernel sau pachetul de dezvoltare corespunzător folosind managerul de pachete al distribuției dvs. Pe Ubuntu sau Debian, când VirtualBox provine din depozitul de distribuție, o reparare tipică este:
Numele pachetelor diferă pe Fedora, Arch Linux, openSUSE și alte sisteme. Instalați anteturile pentru kernelul care rulează și pachetul host-module care corespunde modului în care ați instalat VirtualBox. Nu amestecați programul de instalare Oracle cu pachetele VirtualBox ale unei distribuții; utilizați o sursă de pachet și instrucțiunile sale de reconstrucție. Indexul de pachete Ubuntu arată ce versiuni oferă în prezent virtualbox-dkms.
Versiunea kernelului și directorul său de compilare trebuie să corespundă aceluiași kernel care rulează.Această comandă package se aplică instalărilor Ubuntu sau Debian din repozitoriile lor; folosiți numele pachetelor distribuției dvs. în altă parte.
4. Verificați Secure Boot dacă Linux respinge modulul
Boot-ul securizat poate împiedica încărcarea unui modul de kernel terț nesemnat. Verificați starea acestuia și căutați mesajele kernel aferente:
Dacă rezultatul indică faptul că cheia a fost respinsă sau că modulul nu este semnat, urmați procesul de semnare a modulelor al distribuției dvs. Pe Ubuntu, modulele DKMS pot fi semnate cu o cheie de proprietar a mașinii (MOK); dacă instalarea vă solicită să înregistrați o cheie, completați ecranul de înscriere la următoarea repornire. Canonical documentează procesul de bootare securizată și MOK . Dezactivarea bootării secure nu este prima reparație de încercat.
Folosește jurnalul kernelului pentru a distinge un modul respins de o compilare lipsă sau eșuată.
5. Verificați pachetul de extensie numai atunci când eroarea o necesită
Pachetul de extensii nu este o cerință generală pentru pornirea unei mașini virtuale obișnuite. Acesta adaugă funcții specifice, inclusiv suport USB 2.0 și 3.0 și capacități de afișare la distanță. Dacă eroarea denumește o extensie sau una dintre aceste funcții, inspectați pachetul instalat:
VBoxManage list extpacks
Dacă este instalat, versiunea sa trebuie să corespundă cu versiunea gazdă VirtualBox. Actualizați sau eliminați un pachet învechit prin intermediul gestionării extensiilor VirtualBox sau descărcați versiunea corespunzătoare de pe pagina oficială de descărcări VirtualBox . Nu instalați un pachet de extensii vechi doar pentru că o mașină virtuală nu pornește.
Comparați versiunea Extension Pack cu versiunea gazdă din VBoxManage --version.
6. Folosește jurnalul mașinii virtuale pentru erorile care afectează o singură mașină
Când o singură mașină virtuală eșuează, deschideți-o VBox.logîn folderul mașinii virtuale Logs. Locația implicită este ~/VirtualBox VMs/VM-name/Logs, deși o mașină virtuală poate utiliza un folder diferit. Verificați ultimele linii din jurul pornirii eșuate pentru prima eroare fatală; capitolul de depanare Oracle descrie jurnalul și indiciile de diagnosticare comune.
Extrasele din jurnal variază în funcție de eroare; utilizați jurnalul real de la mașina virtuală care nu a pornit.
Dacă mesajul spune că virtualizarea hardware nu este disponibilă, activați Intel VT-x sau AMD-V (uneori denumit SVM) în firmware-ul gazdei. Dacă Linux în sine rulează în interiorul unei alte mașini virtuale, hipervizorul extern trebuie să expună virtualizarea imbricată. Evitați modificarea setărilor mașinii virtuale care nu au legătură cu acestea, cu excepția cazului în care eroarea indică spre acestea.
Etichetele și aspectul managerului variază în funcție de versiunea VirtualBox; mesajul de eroare ar trebui să vă ghideze asupra setărilor de inspectat.
7. Evitați modificările riscante ale permisiunilor
Nu rulați chownpentru /usra repara VirtualBox. Directorul de sistem este în mod normal deținut de root, iar schimbarea proprietății în general poate deteriora fișierele gestionate de pachete fără a repara modulul kernel. După instalarea antetelor corecte sau reconstruirea driverului, reporniți în kernelul dorit și încercați din nou mașina virtuală.
Dacă eșuează în continuare, păstrați textul exact al dialogului, distribuția Linux și versiunea kernelului, versiunea VirtualBox, dkms statusieșirea și sfârșitul relevant al fișierului VBox.log. Aceste detalii identifică dacă următorul pas aparține driverului gazdă, bootării securizate, unei configurații a mașinii virtuale sau unei nepotriviri de versiune.