No se pudo cargar 'vboxdrv' después de actualizar a Ubuntu 16.04 (y quiero mantener el arranque seguro)

102

Actualizo desde Ubuntu 15.10 a 16.04 y desde entonces VirtualBox 5.0.18 ya no está iniciando mis máquinas virtuales. Se queja de que 'vboxdrv' no está cargado. Así que intento cargarlo y obtener el siguiente error:

$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available

Creo que está relacionado con el inicio seguro que utilizo y que deseo seguir usando. En realidad, con el arranque seguro Ubuntu 15.10 y VirtualBox funcionaban muy bien.

También probé $ sudo apt-get --reinstall install virtualbox-dkms que construyó el módulo kernel con éxito pero no resolvió este problema.

¿Alguna idea sobre cómo cargar vboxdrv mientras se mantiene habilitado el inicio seguro?

Actualización 2 : También intenté ejecutar sudo mokutil --disable-validation . Al ejecutar este comando, durante el próximo inicio me piden que desactive el inicio seguro, agregue una clave o un hash del disco. Como no quiero deshabilitar el inicio seguro, parece que esto tampoco soluciona mi problema. También quiero mantener UEFI activado para una instalación paralela de Windows.

Nota : si no le molesta desactivar el inicio seguro, consulte ¿Por qué obtengo la" clave obligatoria no disponible "cuando instalo módulos de kernel de terceros o luego de una actualización del kernel? .

    
pregunta jans 22.04.2016 - 18:10

6 respuestas

141

Desde la versión 4.4.0-20 del kernel, se impuso que los módulos del kernel unsigned no podrán ejecutarse con Secure Boot habilitado. Como desea mantener el inicio seguro, el siguiente paso lógico es firmar esos módulos.

Probémoslo.

  1. Crear claves de firma

    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive common name/"
    

    Opción : para mayor seguridad, omita el modificador -nodes, que le pedirá una contraseña. Luego, antes de pasar al siguiente paso, asegúrese de export KBUILD_SIGN_PIN='yourpassword'

  2. Firme el módulo (vboxdrv para este ejemplo, pero repita para otros módulos en ls $(dirname $(modinfo -n vboxdrv))/vbox*.ko) para la funcionalidad completa)

    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
    
  3. Confirma que el módulo está firmado

    tail $(modinfo -n vboxdrv) | grep "Module signature appended"
    
  4. Registre las claves para el arranque seguro

    sudo mokutil --import MOK.der
    

    que pedirá una contraseña para usar para confirmar la importación en el siguiente paso.

  5. Reinicia y sigue las instrucciones para inscribir MOK (Clave de propietario de la máquina). Aquí hay una muestra con imágenes. El sistema se reiniciará una vez más.

  6. Confirma que la clave está registrada

    mokutil --test-key MOK.der
    

Si VirtualBox aún no se carga, puede deberse a que el módulo no se cargó ( sudo modprobe vboxdrv lo arreglará) o que la clave no está firmada. Simplemente repita ese paso y todo debería funcionar bien.

Recursos: Sitio web detallado artículo para Fedora y < a href="https://github.com/Canonical-kernel/Ubuntu-kernel/blob/master/Documentation/module-signing.txt"> Implementación de Ubuntu de la firma del módulo. @zwets para seguridad adicional . @shasha_trn para mencionando todos los módulos .

Recurso adicional: creé un script bash para mi propio uso cada vez que virtualbox-dkms actualiza y así sobrescribe los módulos firmados. Mira mi vboxsign en GitHub .

    
respondido por el Majal 06.05.2016 - 07:57
13

En mi sistema, hice lo siguiente para que funcione:

Ejecutar mokutil:

sudo mokutil --disable-validation

Luego, Mokutil me pidió que establezca una contraseña para MOK Manager. Después de reiniciar la PC, el BIOS mostró un cuadro de diálogo para configurar el Administrador de MOK. Inhabilité SecureBoot desde este diálogo, pidió varios caracteres de la contraseña (es decir, ingrese el carácter (5), etc.).

Después de arrancar los módulos vboxdrv cargados correctamente.

lsmod | grep vboxdrv
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci

Curiosamente, mokutil aún muestra que SecureBoot está habilitado:

sudo mokutil --sb-state
SecureBoot enabled
    
respondido por el Pocho 26.04.2016 - 18:16
4

Puede desactivar la verificación de validación por

sudo apt install mokutil
sudo mokutil --disable-validation

Después de que los paquetes DKMS deberían instalarse.

    
respondido por el Pilot6 25.04.2016 - 09:39
0

Recibí el error sobre vboxdrv después de la actualización también. Pero había un problema con la versión anterior (5.0.14) de Oracle VM VirtualBox Extension Pack. Descargué e instalé la versión más nueva (5.0.18) de este paquete y el problema desapareció.

    
respondido por el Reling 23.04.2016 - 00:41
0

De acuerdo, entonces, después de algunas pruebas, estoy bastante seguro de que este es un problema de inicio seguro.

Al igual que si está habilitado, se lanza esto:

  

ADVERTENCIA: El módulo del kernel vboxdrv no está cargado. O no hay módulo            disponible para el kernel actual (4.4.0-21-generic) o no pudo            carga. Por favor recompile el módulo kernel e instálelo mediante sudo / sbin / rcvboxdrv setup

Sin embargo, si el inicio seguro está deshabilitado, entonces virtualbox se carga perfectamente sin errores.

Todavía tengo mi BIOS configurado como UEFI.

    
respondido por el David Haynes 23.04.2016 - 18:22
0

Tuve el mismo problema hoy, tenía Windows 10 y Ubuntu 15.10 en un arranque dual con uefi habilitado en Bios (no lo deshabilité para poder ejecutar el Windows preinstalado).

Después de actualizar a Ubuntu 16.04, VirtualBox dejó de cargar mis máquinas virtuales con el mismo mensaje de error:

modprobe: ERROR: could not insert 'vboxdrv': Required key not available

Sospechaba un problema de UEFI porque al actualizar el instalador, me preguntó si quería deshabilitarlo, a lo que respondí No (porque sí puede hacer que mi Windows no se pueda usar).

Lo que hice fue ir a Bios y habilitar el soporte para el arranque del BIOS heredado SIN deshabilitar el arranque seguro.

Virtualbox funciona bien ahora.

Actualización : como @zwets señaló correctamente el comentario, la habilitación de módulos heredados hace que se desactive el inicio seguro.

    
respondido por el Zeine77 23.04.2016 - 01:23

Lea otras preguntas en las etiquetas