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 за допомогою цієї процедури . Однак навіть після перезавантаження машини помилка залишається.

Що я можу зробити в цьому випадку?


Це відбувається і з іншими модулями (наприклад, bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937 та answer.launchpad.net/ubuntu/+question/664826 )
ricab

2
Наразі вирішення проблеми полягає у завантаженні попереднього ядра (4.4.0-112) у grub.
ricab

Для тих, хто цікавиться, як виконати пропозицію від @ricab: просто утримуйте shiftпід час завантаження, виберіть "Розширені параметри для Ubuntu" та виберіть у меню старішу версію ядра, як пояснено тут . Я можу підтвердити, що в моїй попередній версії ядра (4.4.0-112) немає проблеми, описаної у питанні, тому це є життєздатним вирішенням проблеми, поки не буде випущено рішення.
дозрівати

У 16.04 це Escключ.
Д.Буггер

@ D.Bugger на моєму 16.04 shiftпрацює. Це не моя справа, але я читав про те, що деякі люди змушують її працювати лише з "правою зміною" або "лівою зміною".
дозрівати

Відповіді:


9

Я зіткнувся з тією ж проблемою. Після оновлення ядра моя версія GCC відображалася як 5.4.1. Зменшення цієї версії до версії 5.4.0 допомогло мені отримати реполінію для модуля ядра 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 --версія повинна бути (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, але версія за версією 5.0 для virtualbox також повинна добре працювати.

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, поки проблема не буде вирішена. (Це, звичайно, найпростіше рішення для мене.)


1
Якщо ваша відповідь по суті є направленням на інше запитання, було б краще позначити це питання як дублікат іншого, як тільки ви отримали 15 репутації . Якщо у вас є репутація, не забудьте проголосувати за відповідь (и), які ви вважаєте корисними!
Девід Фоерстер

Зрозумів. Зроблю.
хеттерман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.