Datos personales

miércoles, 5 de septiembre de 2018

VirtualBox. Error en las cabeceras del kernel

En ocasiones, al iniciar el servicio VirtualBox cuando se arranca el sistema o cuando iniciamos máquinas virtuales, se produce un error en el módulo del kernel. El error que genera cuando se arranca el equipo se muestra en las siguientes líneas:

systemd[1]: Starting VirtualBox Linux kernel module...
vboxdrv.sh[525]: vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh[525]: vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: Building VirtualBox kernel modules.
systemd[1]: Failed to start VirtualBox Linux kernel module.

Si ejecutamos la orden vboxconfig se genera otro error, pero el problema es el mismo.
 
El sistema operativo de mi equipo es Debian 9.

Este error se produce porque las cabeceras instaladas no son las mismas que el kernel instalado. En mi caso, tengo instalado el kernel linux-image-4.9.0-6-amd64, pero las cabeceras que se han instalado son linux-headers-4.9.0-13-amd64. Esto se puede ver claramente desde Synaptic.
 
Primeramente, es necesario instalar el paquete build-essential, porque tenemos que compilar e instalar un nuevo kernel para solucionar nuestro error. Para ello, hay que ejecutar la orden apt-get install build-essential.

La solución del error consiste en instalar el kernel que se corresponde con las cabeceras instaladas. Siguiendo el ejemplo anterior, la orden que tenemos que ejecutar es apt-get install linux-image-4.9.0-13-amd64. También lo podemos instalar desde Synaptic.

Para finalizar, reiniciamos el equipo y volvemos a ejecutar la orden vboxconfig. Al ejecutar esta orden se puede generar un error - no fatal - porque no encuentra un directorio que tiene que renombrar, pero lo renombra y el proceso funciona. Si ejecutamos nuevamente la orden vboxconfig ya no se producirá este error  porque la carpeta a renombrar ya está creada.

Si el problema persiste (algo poco probable), podría ser porque hemos instalado el paquete virtualbox-dkms. En este caso, será necesario eliminar y volver a instalar este paquete:

apt-get remove --purge virtualbox-dkms

apt-get install virtualbox-dkms

No hay comentarios: