Header Ads

Virtualbox kernel service is not running

En las versiones de Ubuntu 14.04, viene apareciendo un error algo extraño y molesto en los equipos que tienen Virtualbox.
Vboxclient: the virtualbox kernel service is not running
Da igual si es un usuario de Windows o Linux (aún no lo hemos podido confirmar para Mac OSx), o si tu equipo es un host con VMs o un cliente virtualizado.
Y si bien la molesta ventana desaparece a los pocos segundos, no deja de preocupar a aquellos paranoicos que quieren que todo les funcione a la perfección. Y no es para menos. VirtualBox se ralentiza al iniciar, las VMs sufren la misma consecuencia, y las comunicaciones por NAT y Bridge no funcionan como deberían.
Este asunto, que fue elevado a bug, aparentemente lo arreglaron recientemente (para la versión 15.04). ¿Y si es así, los usuarios de la 14.04 LTS que se jodan?... Bueno, para todo hay solución.
Instalación
Es sano instalar correctamente VirtualBox, para que este simple error no se convierta en "otra cosa peor". Hemos resumido la instalación a un simple script en bash, que facilita el trabajo sucio y de paso soluciona el problema de Vboxclient:
El script desinstala cualquier versión anterior que exista de ubuntu (sin eliminar las VMs), luego mete los repositorios de Virtualbox (es más cómodo instalar desde los repositorios que estar a cada rato descargando manualmente las actualizaciones). Y por último agrega al crontab el arranque de vboxdrv (que es el causante de este problema), para que se inicie con nuestra máquina. 
#!/bin/bash
# Agregando repositorios de Vbox
echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | tee /etc/apt/sources.list.d/virtualbox.list
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0x54422A4B98AB5139
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 54422A4B98AB5139
gpg --export --armor 54422A4B98AB5139 | apt-key add -
# Apagando las VMs -en el caso de que exista alguna-
vboxmanage list runningvms | sed -r 's/.*\{(.*)\}/\1/' | xargs -L1 -I {} VBoxManage controlvm {} savestate >/dev/null 2>&1
# Desinstalando versiones anteriores de Vbox
apt-get -y --force-yes autoremove --purge virtualbox* >/dev/null 2>&1
rm -rf /etc/vbox >/dev/null 2>&1
# Instalando Virtualbox 5x
apt-get update && apt-get -y --force-yes -f install virtualbox-5.0 && sleep 2 && dpkg --configure -a && apt-get -f install
# Desinstalando versiones anteriores de Ext Pack y descargando e instalando la nueva 5x
export VBOX_VER=`VBoxManage --version|awk -Fr '{print $1}'`
VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
wget http://download.virtualbox.org/virtualbox/$VBOX_VER/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack
# Iniciando vboxdrv y agregando el arranque permanente al crontab
/etc/init.d/vboxdrv start
crontab -l | { cat; echo "@reboot /etc/init.d/vboxdrv start"; } | crontab -
Guarde el script con extensión .sh (ej: vboxinstall.sh). Dele permisos (chmod +x vboxinstall.sh) y ejecútelo con privilegios (./vboxinstall.sh)
Puede verificar si los "VirtualBox kernel modules" (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) estan "loaded" con /etc/init.d/vboxdrv status y supervisar el log /var/log/vbox-install.log
Nota: Aunque no es estrictamente necesario, en dependencia de la versión de Vbox y de Ubuntu, es posible que necesite (o no) ejecutar:
dpkg-reconfigure virtualbox-dkms
# o
apt-get install --reinstall virtualbox-dkms
Finalmente recomendamos la lectura del post "Aplicaciones no responden o inician cuando VirtualBox esta creando un disco, o cuando existen altas cargas de escritura a disco / System unresponsive under heavy disk I/O using VirtualBox or other software", para tunear mejor nuestro sistema y no verse a gatas, cuando Vbox esté creando un disco.

Actualización 2015
Este bug ya ha sido solucionado a partir de Ubuntu 15.10

Actualización 2020 (probado en Ubuntu 18.04 / 20.04)
El script de instalación de VirtualBox ha cambiado a partir de la versión 6x. Dele permisos y ejecútelo con privilegios:
chmod +x Vboxinstall.sh && ./Vboxinstall.sh
Nota: Si tiene una versión anterior (de los repositorios de Oracle o Ubuntu), elimínela antes de ejecutar el script. Haga copia de seguridad de máquinas virtuales y configuración antes de ejecutarlo. Use con precaución el siguiente script:
#!/bin/bash
function vboxinstall(){
 echo "Vbox not detected. Installing..."
 # Oracle Repository
 echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
 sudo su -c 'wget -q -O- https://www.virtualbox.org/download/oracle_vbox.asc | sudo apt-key add -'
 sudo su -c 'wget -q -O- http://download.virtualbox.org/virtualbox/debian/oracle_vbox_2016.asc | apt-key add -'
 sudo apt-get update
 sudo apt-get -y install linux-headers-$(uname -r) build-essential gcc make perl dkms bridge-utils
 sudo apt-get -y install virtualbox-6.1
 sudo dpkg --configure -a && sudo apt-get -f -y install
 export VBOX_VER=`VBoxManage --version | awk -Fr '{print $1}'`
 wget -c http://download.virtualbox.org/virtualbox/$VBOX_VER/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack
 sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack
 sudo usermod -a -G vboxusers $USER
 sudo update-grub
 sudo /sbin/vboxconfig
 echo Done
}

function vboxpurge(){
 echo "Vbox has been detected. Removing..."
 sudo vboxmanage list runningvms | sed -r 's/.*\{(.*)\}/\1/' | sudo xargs -L1 -I {} VBoxManage controlvm {} savestate
 sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
 sudo killall vboxwebsrv &> /dev/null
 sudo pkill virtualbox &> /dev/null
 sudo pkill vbox &> /dev/null
 sudo systemctl stop vboxweb-service.service &> /dev/null
 sudo apt-get -y autoremove --purge virtualbox*
 sudo rm -rf /etc/vbox /opt/VirtualBox /usr/lib/virtualbox ~/.config/VirtualBox /etc/apt/sources.list.d/virtualbox.list &> /dev/null
 echo Done 
 vboxinstall
}

if echo $(VBoxManage --version | awk -Fr '{print $1}'); then
  vboxpurge
 else
  vboxinstall
fi
Con la tecnología de Blogger.