Cómo solucionar el error “Controlador del kernel de VirtualBox no instalado (rc=-1908)”
Las funciones de seguridad como el Arranque Seguro existen por una razón, pero a veces causan verdaderos problemas con módulos de kernel de terceros, como vboxdrv de VirtualBox. Básicamente, si el Arranque Seguro bloquea la carga de extensiones de kernel sin firmar o incompatibles, VirtualBox simplemente no iniciará las máquinas virtuales correctamente. Este es un problema común en Mac y algunas distribuciones de Linux, especialmente después de grandes actualizaciones del sistema operativo o si se trabaja con kernels personalizados. Saber cómo gestionarlo puede ahorrar mucho tiempo y frustración.
Cómo solucionar este error en macOS y Linux
Permitir el módulo del kernel en macOS
Si ejecutas VirtualBox en un Mac con macOS más reciente (por ejemplo, 10.13 o posterior), probablemente verás un mensaje o tendrás que habilitar la extensión manualmente. Linux tiene sus propias peculiaridades, pero la configuración de seguridad de macOS es bastante sencilla de modificar. Esto es útil porque macOS bloquea la carga de módulos nuevos o sin firmar, lo que provoca errores en el controlador del kernel de la máquina virtual.
- Abra Preferencias del Sistema, luego vaya a Seguridad y Privacidad.
- En la pestaña General, si ve un mensaje sobre software bloqueado, haga clic en Permitir junto a él.
Reiniciar el servicio del kernel de VirtualBox
A veces, reiniciar el script de inicio de VirtualBox puede ayudar a obtener correctamente la extensión del kernel firmada. Abre la terminal y ejecuta:
sudo /Library/Application\ Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh restart
Este comando detiene y reinicia el proceso de carga de la extensión del kernel de VirtualBox. En mi Mac, he visto que este método, junto con el mensaje de seguridad, permite que VirtualBox reconozca el controlador correctamente tras reiniciar.
Registrar la extensión del kernel vboxdrv
Otro truco es registrar manualmente el controlador de VirtualBox con
sudo kmutil load -p '/Library/Application Support/VirtualBox/VBoxDrv.kext'
Esto obliga al sistema operativo a cargar la extensión, algo así como “obligarlo a prestar atención”.Después de ejecutar esto, reinicie y compruebe si VirtualBox puede ejecutar la máquina virtual. A veces, el sistema no carga el controlador por defecto debido a SIP (Protección de Integridad del Sistema).
Aprobar el ID de desarrollador de Oracle
Si lo anterior sigue sin funcionar, macOS podría estar bloqueando el controlador porque no confía en el desarrollador. Tendrá que agregar manualmente el ID de desarrollador de Oracle a la lista de evaluación de seguridad del sistema. De esta forma, es como decirle a macOS: “Sí, confío en él”.
Abra su terminal y ejecute:
spctl kext-consent add VB5E2TV963
Esto añade a Oracle a la lista de confianza. Para ser exhaustivos, conviene repetir este paso desde el modo de recuperación, por si acaso SIP impide los cambios:
- Reinicie su Mac y mantenga presionada la tecla Comando + R para ingresar al modo de recuperación.
- Abra Utilidades > Terminal.
- Escriba el mismo comando:
- Reinicie normalmente y verifique si VirtualBox ahora puede cargar su controlador sin problemas.
spctl kext-consent add VB5E2TV963
Instalar el paquete de extensión de VirtualBox
Si el controlador sigue sin cargarse, instalar la versión más reciente del paquete de extensiones de VirtualBox podría ser útil, especialmente porque algunas funciones requieren módulos de kernel adicionales. Consígalo en la página de descargas de VirtualBox. Después de instalar VirtualBox, vaya a Herramientas > Extensiones e instale el paquete de extensiones. A veces, este incluye los controladores firmados necesarios para que su sistema operativo acepte los módulos de kernel.
Borrar la caché de la extensión del kernel
macOS almacena en caché las extensiones del kernel y, a veces, se bloquea. Ejecutar en la terminal:
sudo kextcache --clear-staging
Esto borra la caché. Reinicie y compruebe si hay alguna diferencia. Si no, vuelva a intentar el comando después de reiniciar.
Pruebe una versión diferente de VirtualBox
A veces, las versiones más recientes interrumpen la compatibilidad con la configuración actual del sistema operativo o la configuración de seguridad. Desinstale VirtualBox por completo:
- Ejecute el script de desinstalación, normalmente
/Library/Application Support/VirtualBox/Uninstall.toolo similar. - Reinicia y descarga una versión anterior o la más reciente del sitio. A veces, una versión diferente funciona mejor con tu sistema.
Corregir los indicadores de extensión del kernel para SIP
Las funciones shader como SIP pueden bloquear la carga de ciertos controladores si una opción no está configurada correctamente. Arranque en modo de recuperación ( Comando + R durante el inicio) y, en la Terminal, ejecute:
chflags restricted /Volumes/Macintosh\ HD/private/var/db/KernelExtensionManagement
Reemplace Macintosh\ HDcon el nombre real del disco si es diferente. Reinicie, reinstale VirtualBox y pruebe.
Deshabilitar el arranque seguro como último recurso
Si estás desesperado, desactivar el Arranque Seguro es una opción, pero recuerda que debilita la seguridad del sistema. Para hacerlo:
- Reinicie en modo de recuperación ( Comando + R ), luego vaya a Utilidades > Utilidad de seguridad de inicio.
- Establezca Arranque seguro en Sin seguridad.
- Reinicie y esto debería permitir que las extensiones de kernel no firmadas o no confiables se carguen normalmente.
Después de este cambio, tendrás que volver a activar el Arranque seguro manualmente si es necesario, pero para la depuración, es una solución rápida.
Cómo solucionar este error en Linux
Linux puede ser un problema porque los módulos del kernel dependen en gran medida de la versión, los encabezados y el proceso de firma. Cuando VirtualBox muestra errores sobre la imposibilidad de cargar vboxdrv, esto es lo que probablemente esté fallando.
Reiniciar primero
Las actualizaciones del kernel de Linux suelen requerir un reinicio para que el módulo vboxdrv vuelva a funcionar correctamente. Es un comienzo sencillo; a veces, eso es todo, ya que las actualizaciones del kernel no siempre se reflejan de inmediato.
Coincidir con el kernel y los encabezados
Si su kernel se acaba de actualizar, el módulo vboxdrv podría ser incompatible. Para solucionarlo, reinstale las mismas cabeceras del kernel que su kernel actual. En Debian/Ubuntu:
sudo apt purge virtualbox dkms linux-headers-$(uname -r) sudo apt install linux-headers-$(uname -r) sudo apt install virtualbox
En otras distribuciones, cambia apta tu gestor de paquetes, como dnfo yum. Luego, vuelve a aplicar el módulo del kernel:
sudo /etc/init.d/vboxdrv setup
o, para sistemas con DKMS:
sudo dkms autoinstall
Revertir a un kernel más antiguo
Si tu kernel actual no es compatible o no funciona, podrías considerar volver a una versión que sepas que funciona bien. Descarga kernels antiguos del archivo principal de tu distribución, instálalos y reinicia con ese kernel. Con la versión correcta, el error suele desaparecer.
Ajustar la versión de GCC
A veces, el módulo se creó con una versión específica del compilador. Si su GCC es diferente, puede causar problemas. Para solucionarlo:
- Purgar VirtualBox:
sudo apt purge virtualbox - Instalar GCC 8 (o su versión de destino):
sudo apt install gcc-8 g++-8 - Establecerlo como predeterminado:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
Luego reinstale VirtualBox y lo más probable es que el módulo se cargue bien.
Firmar los módulos para un arranque seguro
Si usas Arranque Seguro y tienes errores de firma, podría ser necesario firmar los módulos del kernel tú mismo. Herramientas como la firma de scripts en GitHub pueden ayudarte con este proceso. Pero, sinceramente, desactivar el Arranque Seguro suele ser más rápido para las pruebas.
Deshabilitar el arranque seguro (para Linux)
Como última medida, desactive el Arranque Seguro accediendo a la configuración del firmware de su sistema (generalmente a través del menú de arranque durante el inicio), luego busque “Arranque Seguro” y desactívelo. Recuerde que esto reduce la seguridad, pero puede ser la diferencia entre que su máquina virtual funcione o no.
Espero que esta guía ayude a evitar que alguien se dé un golpe en la cabeza. Porque, claro, el Arranque Seguro es un paso extra que complica las cosas más de lo necesario.
Resumen
- Permitir extensiones del kernel en la configuración de seguridad y privacidad de macOS
- Restablecer o registrar manualmente los módulos del kernel de VirtualBox
- Agregar el ID de desarrollador de Oracle a la política del sistema
- Instalar o actualizar el paquete de extensión de VirtualBox
- Borrar la caché de extensiones del kernel
- Reinstalar diferentes versiones de VirtualBox
- Deshabilitar el arranque seguro si todo lo demás falla
- En Linux, haga coincidir los encabezados del kernel, considere la reversión del kernel o cambie las versiones de GCC
- Deshabilitar el Arranque seguro suele ser la solución más sencilla; solo recuerde volver a habilitarlo más tarde si es necesario.
Resumen
Sinceramente, lidiar con el Arranque Seguro y los controladores de máquinas virtuales es un poco engorroso, pero se trata principalmente de que tu sistema confíe en el software. Una vez que te familiarizas con la activación de los módulos o desactivas el Arranque Seguro temporalmente, todo suele ir más fluido. Recuerda que cada configuración es ligeramente diferente, así que podría ser necesario probar y probar. Con suerte, esto le ahorrará algunas horas a alguien.