Capita spesso di trovarsi su versioni LTS di un sistema operativo linux – diciamo Ubuntu – ed avere a disposizione solo un vecchio Virtualbox sui repository (ppa) del medesimo sistema operativo.
Capita altrettanto spesso, per la fretta, di rimuovere il Vbox di sistema e di tentare di installare quello ufficiale proveniente dai server Oracle.
In questo caso, il più comune, all’avvio di una macchina virtuale creata con la vecchia versione, si riceve il classico errore RTR3InitEx failed with rc=-1912 (rc=-1912).
La procedura che segue si riferisce ad Ubuntu e sicuramente anche a KDE Neon Plasma.
Come disinstallare Virtualbox (OSE)
Innanzitutto, da terminale eseguire il canonico:
sudo apt autoremove --purge virtualbox*
poi verificare che non siano rimaste tracce:
dpkg -l virtualbox* | grep ^i
Come installare l’ultima versione dai server Oracle (PUEL)
Scaricare l’ultima versione disponibile nel momento in cui scrivo. Nel momento in cui scrivo parliamo di VBox 5.2.12 e KDE Neon Plasma 5.13.0 (che si basa sulla 16.04 LTS di Ubuntu).
Seguendo le indicazioni riportate qui, scaricare dal sito di Oracle il software principale, la iso delle Guest Additions e l’Extension Pack.
Da terminale eseguire:
sudo apt update
sudo apt upgrade
Per procedere consiglio l’uso di Gdebi, in grado di risolvere problemi di dipendenze e simili. Se non esiste sulla macchina, procedere con
sudo apt install gdebi
Tenendo sempre come esempio – dato che è l’ultima disponibile nel momento in cui scrivo – la 5.2.12 di Vbox e file collegati, scaricare i sopracitati files con (naturalmente sostituire tutti i nomi dei file con i nomi della loro ultima versione disponibile):
- Vbox:
wget https://download.virtualbox.org/virtualbox/5.2.12/virtualbox-5.2_5.2.12-122591~Ubuntu~xenial_amd64.deb
- Extension Pack:
wget https://download.virtualbox.org/virtualbox/5.2.12/Oracle_VM_VirtualBox_Extension_Pack-5.2.12.vbox-extpack
- Guest Additions:
wget https://download.virtualbox.org/virtualbox/5.2.12/VBoxGuestAdditions_5.2.12.iso
Portarsi poi nella directory in cui sono stati scaricati ed eseguire (di nuovo, sostituire tutti i nomi dei file con i nomi della versione scaricata):
sudo gdebi virtualbox-5.2_5.2.12-122591~Ubuntu~xenial_amd64.deb
Poi installare/aggiornare l’Extension Pack
sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-5.2.12-122591.vbox-extpack
L’Extension Pack è responsabile del supporto a USB 2.0, USB 3.0, RDP, disk encryption, boot NVMe e PXE per Intel.
A questo punto rimane da installare la iso delle Guest Additions:
sudo mkdir /media/iso
sudo mount VBoxGuestAdditions_5.2.12.iso /media/iso
cd /media/iso
sudo ./VBoxLinuxAdditions.run
Come risolvere l’errore RTR3InitEx
Sicuramente, tentando di avviare una VM creata dalla OSE di Vbox con la nuova PUEL installata, si riceverà il fatidico errore RTR3InitEx. Ovvero:
RTR3InitEx failed with rc=-1912 (rc=-1912)
The VirtualBox kernel modules do not match this version of VirtualBox. The installation of VirtualBox was apparently not successful. Executing
‘/sbin/vboxconfig’
may correct this. Make sure that you do not mix the OSE version and the PUEL version of VirtualBox.
where: supR3HardenedMainInitRuntime what: 4 VERR_VM_DRIVER_VERSION_MISMATCH (-1912) – The installed support driver doesn’t match the version of the user.
dpkg -l virtualbox* | grep ^i
probabilmente non troverà niente. Il 99% delle volte virtualbox-dkms è dimenticato per strada ed è proprio questi la causa dell’errore RTR3InitEx.
Controllare quindi con: dpkg -l | grep virtualbox-dkms
Per rimuovere definitivamente il vecchio dkms ed installare il nuovo, eseguire:
sudo apt purge virtualbox-dkms && sudo apt install dkms
Non rimane che ricostruire i moduli kernel di Vbox: sudo /sbin/vboxconfig
.
Considerazioni finali
Questa procedura permette di slegarsi dalla distribuzione in uso e di passare all’ultima rilasciata da Oracle, con tutti i vantaggi che ne conseguono in sicurezza ed ottimizzazione.
Segui @andymnc (Andrea Manconi) su Twitter per essere sempre aggiornato su guide ed articoli.