Home
» LINUX
»
Come risolvere un errore di avvio di una macchina virtuale VirtualBox su Linux
Come risolvere un errore di avvio di una macchina virtuale VirtualBox su Linux
Se una macchina virtuale VirtualBox non si avvia su Linux , leggi attentamente il messaggio di errore prima di reinstallare qualsiasi cosa. Una causa comune lato host è la vboxdrvmancanza del modulo del kernel necessario, il fatto che sia stato compilato per un kernel diverso o che sia stato bloccato da Secure Boot. Altri messaggi indicano un'impostazione della macchina virtuale, un'incompatibilità di versione o una funzionalità che richiede l'Extension Pack.
1. Registra l'errore e controlla le versioni dell'host
Annota il testo completo della finestra di dialogo e il codice di errore, quindi verifica quale versione di VirtualBox e quale kernel Linux sono in esecuzione:
VBoxManage --version
uname -r
Utilizza l'errore stesso per scegliere il controllo successivo. Se VirtualBox si apre ma una VM fallisce, concentrati sul registro e sulle impostazioni di quella VM. Se tutte le VM falliscono con un messaggio host-driver, inizia da vboxdrv.
Solo a titolo di esempio: utilizzare il codice di errore e i valori di versione visualizzati sul proprio sistema host Linux.
2. Verificare se il driver host di VirtualBox è caricato
Linux utilizza il vboxdrvmodulo del kernel host per eseguire le macchine virtuali. Verifica la presenza dei moduli di VirtualBox, quindi prova a caricare il driver principale:
lsmod | grep '^vbox'
sudo modprobe vboxdrv
Se modprobeviene restituito un errore, conservarne la formulazione esatta. Se l'operazione ha esito positivo, riprovare con la macchina virtuale. La guida all'installazione di Oracle per host Linux spiega che VirtualBox necessita di moduli del kernel host e di intestazioni del kernel appropriate.
Un'operazione riuscita modprobepotrebbe non restituire alcun testo; l'indizio importante è un messaggio di errore.
3. Ricompila il modulo per il kernel che hai avviato
Dopo un aggiornamento del kernel Linux, il modulo di VirtualBox potrebbe non essere ancora compatibile con il kernel attualmente in esecuzione. Verifica che siano disponibili i file di sviluppo per quel kernel specifico:
uname -r
ls -ld "/lib/modules/$(uname -r)/build"
Se il buildcollegamento è mancante, installa gli header del kernel o il pacchetto di sviluppo corrispondenti utilizzando il gestore di pacchetti della tua distribuzione. Su Ubuntu o Debian, quando VirtualBox proviene dal repository della distribuzione, una tipica procedura di ripristino è la seguente:
I nomi dei pacchetti differiscono su Fedora, Arch Linux, openSUSE e altri sistemi. Installa gli header per il kernel in esecuzione e il pacchetto host-module che corrisponde al modo in cui hai installato VirtualBox. Non mescolare il programma di installazione di Oracle con i pacchetti VirtualBox di una distribuzione; usa una fonte di pacchetti e le relative istruzioni di ricompilazione. L'indice dei pacchetti di Ubuntu mostra quali versioni attualmente forniscono virtualbox-dkms.
La versione del kernel e la relativa directory di compilazione devono corrispondere allo stesso kernel in esecuzione.Questo comando di pacchetto si applica alle installazioni di Ubuntu o Debian dai rispettivi repository; altrove, utilizza i nomi dei pacchetti della tua distribuzione.
4. Controlla Secure Boot se Linux rifiuta il modulo
Secure Boot può impedire il caricamento di un modulo del kernel di terze parti non firmato. Verifica il suo stato e cerca i relativi messaggi del kernel:
Se l'output indica che la chiave è stata rifiutata o che il modulo non è firmato, segui la procedura di firma dei moduli della tua distribuzione. Su Ubuntu, i moduli DKMS possono essere firmati con una chiave del proprietario della macchina (MOK); se l'installazione richiede di registrare una chiave, completa la schermata di registrazione al successivo riavvio. Canonical documenta la procedura di avvio protetto (Secure Boot) e la procedura MOK . Disabilitare l'avvio protetto non è la prima soluzione da provare.
Utilizza il log del kernel per distinguere un modulo rifiutato da un modulo mancante o da una compilazione fallita.
5. Controlla l'Extension Pack solo quando l'errore lo richiede
L'Extension Pack non è un requisito generale per avviare una normale macchina virtuale. Aggiunge funzionalità specifiche, tra cui il supporto per USB 2.0 e 3.0 e le funzionalità di visualizzazione remota. Se l'errore menziona un'estensione o una di queste funzionalità, controlla il pacchetto installato:
VBoxManage list extpacks
Se installato, il pacchetto deve corrispondere alla versione dell'host VirtualBox. Aggiorna o rimuovi un pacchetto obsoleto tramite la gestione delle estensioni di VirtualBox oppure scarica la versione corrispondente dalla pagina di download ufficiale di VirtualBox . Non installare un vecchio Extension Pack solo perché una macchina virtuale non si avvia.
Confronta la versione dell'Extension Pack con la versione host da VBoxManage --version.
6. Utilizzare il registro VM per gli errori che interessano una singola macchina
Quando si verifica un errore in una sola macchina virtuale, apri il file di log VBox.lognella Logscartella della macchina virtuale. Il percorso predefinito è , sebbene una macchina virtuale possa utilizzare una cartella diversa. Controlla le ultime righe intorno all'avvio non riuscito per individuare il primo errore irreversibile; il capitolo sulla risoluzione dei problemi~/VirtualBox VMs/VM-name/Logs di Oracle descrive il log e gli indizi diagnostici più comuni.
Gli estratti del log variano a seconda del tipo di errore; utilizzare il log effettivo della macchina virtuale che non si è avviata.
Se il messaggio indica che la virtualizzazione hardware non è disponibile, abilitare Intel VT-x o AMD-V (a volte etichettato come SVM) nel firmware dell'host. Se Linux è in esecuzione all'interno di un'altra macchina virtuale, l'hypervisor esterno deve esporre la virtualizzazione nidificata. Evitare di modificare impostazioni di macchine virtuali non correlate, a meno che l'errore non indichi proprio queste.
Le etichette e il layout del gestore variano a seconda della versione di VirtualBox; il messaggio di errore dovrebbe indicare quale impostazione controllare.
7. Evitare modifiche rischiose delle autorizzazioni
Non continuare chowna /usreseguire VirtualBox per risolvere il problema. La directory di sistema è normalmente di proprietà di root e la modifica generalizzata dei permessi può danneggiare i file gestiti dai pacchetti senza riparare il modulo del kernel. Dopo aver installato gli header corretti o ricompilato il driver, riavvia il sistema con il kernel desiderato e riprova la macchina virtuale.
Se il problema persiste, conserva il testo esatto della finestra di dialogo, la distribuzione Linux e la versione del kernel, la versione di VirtualBox, dkms statusl'output e la parte finale pertinente VBox.log. Questi dettagli permettono di identificare se il passaggio successivo riguarda il driver dell'host, Secure Boot, una configurazione della macchina virtuale o un'incompatibilità di versione.