VirtualBox nie uruchamia się po aktualizacji jądra

15

Wczoraj otrzymałem aktualizację jądra i po ponownym uruchomieniu VirtualBox przestał działać.

Oto informacje o moim systemie (po aktualizacji jądra):

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

Zainstalowałem VirtualBox dawno temu

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

używany codziennie i nigdy nie miał problemów z aktualizacjami jądra. Występuje teraz błąd

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 '

Znalazłem tutaj post na forum z tym komunikatem o błędzie sprzed trzech dni, niestety bez rozwiązania. Dlatego próbowałem usunąć pakiety VirtualBox z repozytorium Ubuntu i zainstalować najnowszą wersję 5.2, stosując tę procedurę . Jednak nawet po ponownym uruchomieniu komputera błąd pozostaje.

Co mogę zrobić w tym przypadku?

matpen
źródło
2
Rozwiązaniem na razie jest załadowanie poprzedniego jądra (4.4.0-112) do grub.
ricab
Dla tych, którzy zastanawiają się, jak wykonać sugestię @ricab: po prostu przytrzymaj shiftpodczas uruchamiania, wybierz „Zaawansowane opcje dla Ubuntu” i wybierz starszą wersję jądra z menu, jak wyjaśniono tutaj . Mogę potwierdzić, że moja poprzednia wersja jądra (4.4.0-112) nie ma problemu opisanego w pytaniu, więc jest to realne obejście do czasu wydania rozwiązania.
matpen
W 16.04 jest to Escklucz.
D.Bugger
@ D. Bug na moim 16.04 shiftdziała. To nie jest mój przypadek, ale czytałem, że niektórzy ludzie zmuszają go do pracy tylko z „prawą zmianą” lub „lewą zmianą”.
matpen

Odpowiedzi:

9

Miałem ten sam problem. Po aktualizacji jądra moja wersja gcc pokazywała się jako 5.4.1. Obniżenie tej wersji do wersji 5.4.0 pomogło mi mieć retpolinę dla modułu jądra vboxdrv.

Wykonanie tego linku pomogło mi rozwiązać problem:

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

Po tych krokach gcc --version powinien być (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609

Następnie wyczyść wszystkie nowe nagłówki linuxa (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

Ponownie zainstaluj je

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

Następnie ponownie zainstaluj virtualbox, tym razem zainstalowałem najnowszą wersję virtualbox-5.2, ale domyślna wersja virtualbox 5.0 powinna również działać poprawnie.

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

I mamy obsługę retpoliny w najnowszym module

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
źródło
Doskonała praca pomogła mi po 6
miesiącach
CHCĘ PODAĆ CI WSZYSTKIE PUNKTY NA ŚWIECIE !!!!! :-) Ale niestety mogę cię głosować tylko raz.
shawty
4

Powiązany problem wymieniony w komentarzu @ricab został przypisany do problemu z nowym jądrem wymagającym określonego poziomu wersji gcc do pomyślnej kompilacji modułów jądra.

W moim systemie aktualizacja gcc została wyparta PO aktualizacji jądra, co spowodowało niepowodzenie ponownej kompilacji.

Po wykryciu głównej przyczyny udało mi się naprawić system, odinstalowując i ponownie instalując nowe jądro. To naprawiło moje sterowniki graficzne, ale musiałem sudo /sbin/vboxconfigrozwiązać problem, aby naprawić virtualbox po uruchomieniu w nowym jądrze.

Mój system to 14.04, więc nie mogę doradzić właściwej wersji gcc dla twojego systemu 16.04, ale jest to omówione na https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937

Marmur Organiczny
źródło
Dziękuję za link. Niestety w moim przypadku Xenail nie działa (i nie jestem sam ). Ostatnio nie otrzymałem aktualizacji gcc, ale jestem już włączony gcc 5.4.1, a nawet próbowałem gcc 7.2.0.
matpen
@ jfs racja, jednak potrzebuję ppa gcc, więc nie mogę teraz przetestować.
matpen
-1

Miałem też ostatnio ten problem i opublikowałem tutaj pytanie na jego temat. Robiłem kopanie i to jest rzeczywiście znany problem.

Raport o błędzie znajduje się w moim linku.

Virtualbox nagle przestał działać

Myślę, że ogólna koncentracja polega na uruchomieniu jądra 4.4, dopóki problem nie zostanie rozwiązany. (To z pewnością najłatwiejsze rozwiązanie dla mnie.)

hatterman
źródło
1
Jeśli twoja odpowiedź jest zasadniczo skierowaniem do innego pytania, lepiej byłoby oflagować to pytanie jako duplikat drugiego, gdy zdobędziesz 15 punktów reputacji . Jeśli masz reputację, nie zapomnij głosować na odpowiedzi, które uważasz za przydatne!
David Foerster,
Zrozumiany. Zrobię
hatterman