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?
upgrade
kernel
virtualbox
matpen
źródło
źródło
shift
podczas 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.Esc
klucz.shift
dział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ą”.Odpowiedzi:
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:
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)
Ponownie zainstaluj je
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.
I mamy obsługę retpoliny w najnowszym module
źródło
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/vboxconfig
rozwią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
źródło
gcc 5.4.1
, a nawet próbowałemgcc 7.2.0
.gcc 5.4.0
16.04Miał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.)
źródło