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.

Update 2015
Este bug ya ha sido solucionado a partir de Ubuntu 15.10

Update 2020-2022
El script de instalación de VirtualBox ha cambiado a partir de la versión 6x. Dele permisos y ejecútelo con privilegios (probado en ubuntu 20.04 y 22.04):
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
vboxversion=$(dpkg -l | grep -P 'virtualbox-\d+\.\d+' | awk '{print $2}')

function vboxinstall(){
 echo "Vbox not detected. Installing..."
 # Oracle Repository
 # Download and install .asc
 wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | gpg --dearmor | tee /usr/share/keyrings/virtualbox.gpg &> /dev/null
 # add repo
 echo deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox.gpg] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib | tee /etc/apt/sources.list.d/virtualbox.list/virtualbox.list
 apt-get update
 # dependencies
 apt-get -y install linux-headers-$(uname -r) build-essential gcc make perl dkms bridge-utils
 # vbox install
 apt-get -y install virtualbox-6.1
 dpkg --configure -a
 apt-get -f -y install
 # Extension_Pack 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
 VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack
 # configure
 usermod -a -G vboxusers $USER
 #adduser $USER vboxsf # for host
 update-grub
 /sbin/vboxconfig
 systemctl status vboxdrv
 echo "Done. Reboot"
}

function vboxpurge(){
 echo "Vbox has been detected. Removing..."
 vboxmanage list runningvms | sed -r 's/.*\{(.*)\}/\1/' | xargs -L1 -I {} VBoxManage controlvm {} savestate
 ps ax | grep -P 'vboxwebbsrv|VirtualBox|Vbox' | awk '{print $1}' | xargs kill -9 &> /dev/null
 systemctl stop vboxweb-service.service &> /dev/null
 service vboxdrv stop &> /dev/null
 VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
 apt-get -y autoremove --purge $(echo $vboxversion)
 /opt/VirtualBox/uninstall.sh &> /dev/null
 apt-get remove --purge virtualbox-guest-utils virtualbox-dkms virtualbox-guest-x11 virtualbox virtualbox-guest-additions-iso virtualbox-ext-pack virtualbox-source
 rm -rf /etc/vbox /opt/VirtualBox /usr/lib/virtualbox /etc/default/virtualbox /etc/init.d/virtualbox ~/.config/VirtualBox /etc/apt/sources.list.d/virtualbox* &> /dev/null
 echo "Done" 
}

if [ "$vboxversion" ]; then
  vboxpurge
  sleep 5
  vboxinstall
 else
  vboxinstall
fi
Con la tecnología de Blogger.