Lo scenario è il seguente: fino a ieri, VirtualBox ha sempre funzionato correttamente sul tuo PC. Oggi, invece, non riesci più ad avviare nessuna macchina virtuale poiché il programma ti mostra il messaggio Apertura di una sessione per la macchina virtuale non riuscita
. Esaminando i dettagli, hai però scoperto che il codice d'errore è VT-x is not available (VERR_VMX_NO_VMX)
. A cosa è dovuto? Come risolvere?
Trattazione aggiornata nel 2022 per tenere conto delle ultime evoluzioni
» Leggi anche: La virtualizzazione dei sistemi operativi non sarà più un problema: guida a VirtualBox
Il significato dell'errore VirtualBox VT-x is not available (VERR_VMX_NO_VMX)
L'errore VT-x is not available (VERR_VMX_NO_VMX)
significa che VirtualBox non rileva il supporto hardware alla virtualizzazione, che deve essere offerto dalla CPU affinché il programma possa funzionare correttamente. Per quanto improbabile possa essere, la prima verifica da svolgere è che le funzionalità di supporto alla virtualizzazione della CPU siano ancora attive nel BIOS/UEFI:
Ma... se fino a ieri VirtualBox funzionava correttamente, non hai sostituito la CPU e il supporto hardware alla virtualizzazione è attivo nel BIOS/UEFI, non può trattarsi di una mancanza del processore!
Errore VirtualBox VT-x is not available (VERR_VMX_NO_VMX): La causa
Se all'improvviso le macchine virtuali di VirtualBox non si aprono più e viene visualizzato questo errore, ci sono ottime possibilità che sia colpa di Hyper-V. Come abbiamo visto nella guida dedicata, Hyper-V è un hypervisor di tipo 1 che, installandosi "sotto" il sistema operativo, risulta più efficiente, ma invasivo, rispetto agli hypervisor di tipo 2 come VirtualBox
Nello specifico: Hyper-V "nasconde" la disponibilità del supporto hardware alla virtualizzazione agli altri hypervisor installati sul sistema operativo "reale": ecco dunque che VirtualBox non riesce ad identificare la presenza delle istruzioni Intel VT-x o AMD-V, e quindi si interrompe generando l'errore VT-x is not available (VERR_VMX_NO_VMX)
.
È bene precisare che potresti non aver installato Hyper-V manualmente, ma come dipendenza per altri programmi. Docker, ad esempio, richiede Hyper-V e lo abilita semi-automaticamente durante il setup. L'emulatore per Android di Visual Studio fa la stessa cosa, ed è ampiamente probabile che molti tool per programmatori e sistemisti abbiano un comportamento analogo.
Errore VirtualBox VT-x is not available (VERR_VMX_NO_VMX), Soluzione 1: Aggiornare VirtualBox
La prima soluzione è anche la più semplice: devi aggiornare VirtualBox. Le versioni moderne di VirtualBox offrono infatti una funzionalità che consente alle macchine virtuali VirtualBox di funzionare anche su un PC sul quale sia installato Hyper-V.
Puoi scaricare l'ultima versione di VirtualBox da qui. Per aggiornare la versione attualmente installata è sufficiente scaricare il nuovo installer e poi premere ripetutamente Avanti
, senza bisogno di disinstallare preventivamente la versione installata. Tutte le macchine virtuali e le impostazioni vengono conservate.
Dopo aver aggiornato, puoi riprovare ad avviare la tua macchina virtuale. L'attivazione della funzione di compatibilità è segnalata dall'icona di una tartaruga verde. Passandovi sopra con il cursore del mouse, vengono visualizzate ulteriori informazioni
Questa soluzione è semplice e posso confermare che funziona correttamente, ma ha una grossa limitazione: la velocità delle macchine virtuali precipita, e non c'è bisogno di benchmark per accorgersene. Basta infatti interagire con il sistema operativo o i programmi virtualizzati per rendersi conto di quanto lenta sia divenuta l'apertura e l'esecuzione.
Errore VirtualBox VT-x is not available (VERR_VMX_NO_VMX), Soluzione 2: Riavviare in "modalità VirtualBox" oppure "modalità Hyper-V"
Una buona soluzione alternativa a questo problema è l'utilizzo di due file che consentano di riavviare il PC in una sorta di "modalità VirtualBox" (nella quale Hyper-V è disabilitato) oppure "modalità Hyper-V". In questo modo, dovrai solamente lanciare l'uno o l'altro file a seconda che tu voglia utilizzare VirtualBox oppure Hyper-V.
Puoi scaricare il pacchetto da qui:
» Download: Attiva-disattiva Hyper-V
All'interno dello zip troverai due file
Hyper-V OFF (autoreboot).bat
: disattiva Hyper-V, consentendo a VirtualBox di funzionareHyper-V ON (autoreboot).bat
: attiva Hyper-V
Da notare che entrambi i file riavviano immediatamente il PC. È dunque importante aver salvato il proprio lavoro prima di cliccarli.
Questa è la soluzione che utilizzo io stesso sul mio PC. Funziona perfettamente, e permette di utilizzare entrambi i programmi senza che si generino problemi. Utilizzando Hyper-V OFF (autoreboot).bat
, posso confermare che VirtualBox funziona perfettamente, senza alcun rallentamento. L'evidente seccatura è data dalla necessità di dover riavviare il computer per utilizzare l'uno o l'altro programma.
Errore VirtualBox VT-x is not available (VERR_VMX_NO_VMX), Soluzione 3: scegliere quale virtualizzatore usare al boot
Un'altra soluzione, derivata dalla precedente, ci permette di mostrare un piccolo menu di scelta all'avvio del PC, che consente di scegliere se attivare o meno Hyper-V.
Per prima cosa, devi disattivare "Avvio rapido" come mostrato qui:
» Leggi: Guida Windows 10: come disattivare Avvio rapido (Fast startup / Fast boot)
Fatto ciò, apri un prompt dei comandi amministrativo, quindi impartisci quanto segue:
bcdedit /copy {current} /d "No Hyper-V"
Detto comando ci restituisce una sequenza di caratteri (GUID) fra graffe: copia-incollala all'interno di questo modello (mantenendo le parentesi graffe):
bcdedit /set {incolla-qui-il-tuo-guid} hypervisorlaunchtype off
Ora impartisci il comando ottenuto
Ora: ad ogni boot del PC ti troverai davanti a due scelte:
Windows 11
oppureWindows 10
: avvia regolarmente il sistema operativo. Hyper-V è funzionanteNo Hyper-V
: Hyper-V viene disabilitato, mentre VirtualBox può operare correttamente
In caso, successivamente, si volesse eliminare la nuova voce e tornare alla situazione precedente è sufficiente copia-incollare lo stesso "guid" ottenuto in precedenza all'interno di questo modello (mantenendo le parentesi graffe):
bcdedit /delete {incolla-qui-il-tuo-guid}
In caso detto guid fosse stato smarrito, possiamo recuperarlo impartendo semplicemente bcdedit
. Attenzione, però: il comando restituirà molteplici guid: è importante assicurarsi di scegliere proprio quello relativo alla voce No Hyper-V
che abbiamo creato un attimo fa.
Errore VirtualBox VT-x is not available (VERR_VMX_NO_VMX), Soluzione 3: Disinstallare Hyper-V
Un'altra idea per risolvere il problema è di disinstallare completamente Hyper-V. Può sembrare un po' "estremo", ma se non lo utilizzi è sicuramente una buona idea per semplificare al massimo le cose e rendere nuovamente operativo VirtualBox
Allo scopo, ti basta disattivare l'omonima funzionalità dal vecchio Pannello di controllo seguendo la procedura indicata nell'articolo dedicato
Altre idee...?
Se hai altre idee o soluzioni che consentano di utilizzare Hyper-V e VirtualBox contemporaneamente puoi segnalarcele nei commenti qui sotto. Grazie!