VirtualBox no se inicia después de la actualización del kernel

15

Ayer recibí una actualización del kernel y después de reiniciar, VirtualBox dejó de funcionar.

Aquí está la información de mi sistema (después de la actualización del kernel):

matteo@workstation:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
matteo@workstation:~$ uname -a
Linux workstation 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Instalé VirtualBox hace mucho tiempo con

sudo apt install linux-headers-$(uname -r)
sudo apt install virtualbox-dkms virtualbox virtualbox-qt

se usa a diario y nunca tuvo problemas con las actualizaciones del kernel. El error que recibo ahora es

matteo@workstation:~$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Exec format error
matteo@workstation:~$ dmesg | tail -n 1
[ 1413.167311] vboxdrv: version magic '4.4.0-116-generic SMP mod_unload modversions ' should be '4.4.0-116-generic SMP mod_unload modversions retpoline '

Encontré una publicación en el foro con este mensaje de error aquí desde hace tres días, desafortunadamente sin resolución. Por lo tanto, intenté eliminar los paquetes de VirtualBox del repositorio de Ubuntu e instalar el último 5.2 utilizando este procedimiento . Sin embargo, incluso después de reiniciar la máquina, el error permanece.

¿Qué puedo hacer en este caso?

madurar
fuente
Esto también está sucediendo con otros módulos (por ejemplo, bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937 y answers.launchpad.net/ubuntu/+question/664826 )
ricab
2
Una solución alternativa por el momento es cargar el núcleo anterior (4.4.0-112) en grub.
ricab
Para aquellos que se preguntan cómo realizar la sugerencia de @ricab: simplemente manténgala presionada shiftmientras arranca, seleccione "Opciones avanzadas para Ubuntu" y seleccione una versión anterior del núcleo del menú, como se explica aquí . Puedo confirmar que mi versión anterior del kernel (4.4.0-112) no tiene el problema descrito en la pregunta, por lo que es una solución viable hasta que se lance una solución.
maduran
En 16.04 es la Escclave.
D.Bugger
@ D.Bugger en mi 16.04 shiftfunciona. No es mi caso, pero he leído que algunas personas lo hacen funcionar solo con "desplazamiento a la derecha" o "desplazamiento a la izquierda".
maduran

Respuestas:

9

Estaba enfrentando el mismo problema. Después de la actualización del kernel, mi versión de gcc se mostraba como 5.4.1. La degradación de esta versión a 5.4.0 me ayudó a tener retpoline para el módulo del núcleo vboxdrv.

Los siguientes pasos desde este enlace me ayudaron a resolver mi problema:

sudo apt-get install ppa-purge
sudo ppa-purge ppa:ubuntu-toolchain-r/test
#Select gcc version 5 using update-alternatives manually
sudo update-alternatives --config gcc

Después de estos pasos, gcc --version debería ser (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609

Luego purgue todos los nuevos encabezados de Linux (4.4.0-116)

sudo apt-get purge linux-headers-4.4.0-116 linux-headers-4.4.0-116-generic linux-image-4.4.0-116-generic linux-image-extra-4.4.0-116-generic linux-signed-image-4.4.0-116-generic

De nuevo instalarlos

sudo apt-get install linux-generic linux-signed-generic

Luego reinstale virtualbox, esta vez instalé la última versión de virtualbox-5.2, pero la versión 5.0 predeterminada de virtualbox también debería funcionar bien.

sudo apt-get purge virtualbox-dkms virtualbox virtualbox-qt
sudo apt-get install virtualbox-5.2

Y, tenemos soporte retpoline en el último módulo

anirudh@AHDRMD34579:~$ modinfo vboxdrv 
filename:       /lib/modules/4.4.0-116-generic/misc/vboxdrv.ko
version:        5.2.6 r120293 (0x00290000)
license:        GPL
description:    Oracle VM VirtualBox Support Driver
author:         Oracle Corporation
srcversion:     4880B21EFF1B605D6402982
depends:        
vermagic:       4.4.0-116-generic SMP mod_unload modversions retpoline 
parm:           force_async_tsc:force the asynchronous TSC mode (int)
Anirudh Gupta
fuente
Un excelente trabajo me ayudó después de 6 meses sin acceso a mis máquinas
George Udosen
¡QUIERO DARTE TODOS LOS PUNTOS DEL MUNDO! :-) Pero desafortunadamente solo puedo votarte una vez.
shawty
4

El problema relacionado enumerado en el comentario de @ricab se ha rastreado hasta un problema con el nuevo núcleo que requiere un cierto nivel de versión de gcc para compilar con éxito los módulos del núcleo.

En mi sistema, la actualización de gcc se eliminó DESPUÉS de la actualización del kernel, lo que provocó un error en las recompilaciones.

Una vez que se descubrió la causa raíz, pude arreglar el sistema al desinstalar y reinstalar el nuevo núcleo. Eso solucionó mis controladores de gráficos, pero tuve sudo /sbin/vboxconfigque solucionar el problema de reparar virtualbox después de iniciar en el nuevo kernel.

Mi sistema es 14.04, así que no puedo aconsejarle sobre la versión adecuada de gcc para su sistema 16.04, pero esto se trata en https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937

Mármol orgánico
fuente
Gracias por el enlace. Desafortunadamente, no parece funcionar en mi caso para Xenail (y no estoy solo ). No recibí ninguna actualización de gcc recientemente, pero ya estoy encendido gcc 5.4.1e incluso probé gcc 7.2.0.
maduran
@jfs bien, sin embargo, necesito el ppa gcc, así que no puedo probarlo en este momento.
madura
-1

También tuve este problema recientemente y publiqué una pregunta aquí al respecto. Investigué un poco y este es un problema conocido.

El informe de error está en mi enlace.

Virtualbox de repente dejó de funcionar

Creo que el consenso general es arrancar en el kernel 4.4 hasta que se solucione el problema. (Sin duda, es la solución más fácil para mí).

sombrerero
fuente
1
Si su respuesta es esencialmente una referencia a otra pregunta, sería mejor marcar esta pregunta como un duplicado de la otra una vez que haya ganado 15 reputación . Si tienes reputación, ¡no olvides votar por las respuestas que te resultaron útiles!
David Foerster
Entendido. Lo haré
hatterman