VirtualBox не запускается после обновления ядра

15

Вчера получил обновление ядра и после перезагрузки перестал работать VirtualBox.

Вот моя системная информация (после обновления ядра):

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

Я установил VirtualBox давно с

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

используется ежедневно и никогда не было проблем с обновлениями ядра. Я получаю ошибку сейчас

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 '

Я нашел сообщение на форуме с этим сообщением об ошибке здесь три дня назад, к сожалению, без разрешения. Поэтому я попытался удалить пакеты VirtualBox из репозитория Ubuntu и установить последнюю версию 5.2, используя эту процедуру . Однако даже после перезагрузки машины ошибка остается.

Что я могу сделать в этом случае?

matpen
источник
Это происходит и с другими модулями (например, bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937 и answers.launchpad.net/ubuntu/+question/664826 )
ricab,
2
Обходной путь на данный момент - загрузить предыдущее ядро ​​(4.4.0-112) в grub.
Рикаб
Для тех, кто интересуется, как выполнить предложение @ricab: просто удерживайте shiftво время загрузки, выберите «Дополнительные параметры для Ubuntu» и выберите более старую версию ядра из меню, как описано здесь . Я могу подтвердить, что в моей предыдущей версии ядра (4.4.0-112) не было проблемы, описанной в вопросе, поэтому это жизнеспособный обходной путь до выпуска решения.
созревать
В 16.04 это Escключ.
Д.Баггер
@ D.Bugger на моем 16.04 shiftработает. Это не мой случай, но я читал о некоторых людях, заставляющих его работать только с «правым сдвигом» или «левым сдвигом».
созревать

Ответы:

9

Я столкнулся с той же проблемой. После обновления ядра моя версия gcc показалась как 5.4.1. Понижение этой версии до 5.4.0 помогло мне получить retpoline для модуля ядра vboxdrv.

Следующие шаги по этой ссылке помогли мне решить мою проблему:

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

После этих шагов gcc --version должен быть (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609

Затем удалите все новые заголовки 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

Снова установите их

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

Затем переустановите virtualbox, на этот раз я установил последний virtualbox-5.2, но версия Virtualbox по умолчанию 5.0 также должна работать нормально.

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

И у нас есть поддержка retpoline в последнем модуле

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)
Анирудх Гупта
источник
Отличная работа помогла мне после 6 месяцев без доступа к моим машинам
Джордж Удосен
Я хочу дать вам все точки в мире !!!!! :-) Но, к сожалению, я могу сказать вам только один раз.
Shawty
4

Связанная проблема, перечисленная в комментарии @ricab, была связана с проблемой с новым ядром, требующим определенного уровня версии gcc для успешной компиляции модулей ядра.

В моей системе обновление gcc было выдвинуто ПОСЛЕ обновления ядра, что привело к сбою перекомпиляции.

Как только была обнаружена основная причина, я смог исправить систему, удалив и переустановив новое ядро. Это исправило мои графические драйверы, но мне пришлось sudo /sbin/vboxconfigстолкнуться с проблемой исправления virtualbox после загрузки нового ядра.

Моя система 14.04, поэтому я не могу посоветовать вам правильную версию gcc для вашей системы 16.04, но это обсуждается на https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937.

Органический мрамор
источник
Спасибо за ссылку. К сожалению, это не работает в моем случае для Xenail (и я не одинок ). Я не получил обновления gcc недавно, но я уже включен gcc 5.4.1, и даже пытался с gcc 7.2.0.
созревать
@jfs верно, но мне нужен ppa gcc, поэтому я не могу сейчас тестировать.
Созрев
-1

У меня тоже недавно была эта проблема, и я разместил здесь вопрос об этом. Я немного покопался, и это действительно известная проблема.

Отчет об ошибке находится в моей ссылке.

Virtualbox внезапно перестал работать

Я думаю, что основной концепцией является загрузка ядра 4.4, пока проблема не будет устранена. (Это, безусловно, самое простое решение для меня.)

hatterman
источник
1
Если ваш ответ по сути является ссылкой на другой вопрос, было бы лучше пометить этот вопрос как дубликат другого, когда вы заработали 15 репутации . Если у вас есть репутация, не забудьте проголосовать за те ответы, которые вы нашли полезными!
Дэвид Фёрстер
Понял. Сделаю.
Шляпник