Модули ядра VirtualBox не соответствуют версии VirtualBox

31

VirtualBox 4.2.12 в Ubuntu 12.04 работал нормально, пока мне не потребовалось установить гостевую надстройку. После его установки:

 Failed to open a session for the VM Win 7 exit code 1;

 RTR3Init failed with rc=-1912(rc=1912)

После запуска dpkg --list | grep virtualbox:

ii  virtualbox                             4.1.12-dfsg-2ubuntu0.2                  x86 virtualization solution - base binaries
rc  virtualbox-4.2                         4.2.6-82870~Ubuntu~precise              Oracle VM VirtualBox
ii  virtualbox-dkms                        4.1.12-dfsg-2ubuntu0.2                  x86 virtualization solution - kernel module sources for dkms
ii  virtualbox-guest-additions             4.1.12-1                                transitional package for virtualbox-guest-additions-iso
ii  virtualbox-guest-additions-iso         4.1.12-1                                guest additions iso image for VirtualBox
ii  virtualbox-qt                          4.1.12-dfsg-2ubuntu0.2                  x86 virtualization solution - Qt based user interface

Любая помощь приветствуется ...

Благодарность...

CoolEulerProject
источник
Пожалуйста, уточните: для какой версии virtualbox и как вы установили гостевые дополнения? Какую версию вы хотите запустить (нет 4.2.12)? DPKG сообщает, что у вас установлена ​​старая версия 4.1.12, но удалена 4.2.6. Как вы установили virtualbox? Пожалуйста, также назовите архитектуру хоста (amd64 i386?).
Таккат

Ответы:

44

Похоже, у вас установлены две отдельные версии VirtualBox!

Я бы порекомендовал вам полностью удалить все версии VirtualBox:

sudo apt-get autoremove 'virtualbox*'

Затем переустановите прямо из Oracle. Перейдите на страницу загрузки VB , прокрутите вниз до «Дистрибутивы Linux на основе Debian» и следуйте инструкциям.

Тогда попробуйте еще раз.

Кстати, вам не нужно использовать grepс dpkg. Вот более хорошая альтернатива вашей команде:

dpkg --list 'virtualbox*'
Падди Ландау
источник
14

Менее навязчивое решение может быть:

sudo dpkg-reconfigure virtualbox-dkms
sudo dpkg-reconfigure virtualbox

Источник с дополнительной информацией.

Рикард
источник
Благодаря этому предложению я смог понять, что я полностью пропустил virtualbox-dkms. Я остановил VBManager, установил virtualbox-dkms с помощью apt-get, перезагрузился и все было в порядке.
Марко Фаустинелли
1
Это сработало для меня (и у меня не было, или не нужно устанавливать virtualbox-dkms)
aidan
1
После установки 5.2 из Oracle мне нужно было запустить, dpkg-reconfigure virtualbox-5.2чтобы это исправить.
NuSkooler
9

У меня возникла эта проблема после перехода с версии репозитория Ubuntu на версию PPA. Основная причина проблемы была точно такой, как указано в сообщении об ошибке: несоответствие версии модуля ядра. Я подтвердил это

modinfo vboxdrv

который вернулся как версия 5.0. (Из ppa у меня vbox 5.1).

Я удалил virtualbox-dkms, потому что при его установке также будет установлена ​​обычная версия vbox из репозитория Ubuntu. Но модули ядра все еще были в числе модулей, которые обрабатываются DKMS (/ lib / modules / (kernelversion) -generic / updates / dkms /), поэтому я Угадаю, поэтому сценарии не будут работать:

я пытался

sudo /sbin/vboxconfig

который, казалось бы, делал все как обычно, останавливая модули ядра, перекомпилируя, перезагружая (предположительно) новые модули ядра. Кроме проверки версии модуля все еще подошел 5.0.

Потом я попробовал

sudo /sbin/rcvboxdrv setup

с тем же результатом: без изменения версии.

Тогда я решил удалить модули, потому что мне не понравилось то, что они были в папке dkms. Для этого вам нужно выгрузить модули ядра с

sudo rmmod vboxnetadp vboxnetflt vboxpci vboxdrv

затем удалите файлы модулей из / lib / modules / (kernelversion) -generic / updates / dkms. Тогда беги

sudo /sbin/rcvboxdrv setup

снова, и вуаля новые модули v5.1, и больше не под dkms, мои виртуальные машины работают.

Теперь, когда я думаю об этом, возможно, модули были правильно перекомпилированы в /lib/modules/4.4.0-59-generic/misc/, но при загрузке модули dkms могут иметь приоритет. К сожалению, у меня больше нет времени, чтобы исследовать это.

ps .: Если вы делаете такой же переход от версии репо к ppa, обязательно добавьте себя в (вновь созданную) группу vboxusers, а затем выйдите из системы и вернитесь обратно.

Габор Киченко
источник
1
Это исправило это для меня в Ubuntu 16.04 после перехода на оракул PPA. Спасибо!
Джош
В заключение! Удаление старого .so файла сделало свое дело. Я переустанавливал из apt и все вроде работает.
nullteph
1

Это случилось со мной сегодня на Debian 8 (Jessie) после патча для ядра. Я исправил это следующим образом:

  1. su (Я не использую sudo; если вы используете, добавьте sudo к строкам ниже)
  2. dpkg-reconfigure virtualbox-dkms
  3. dpkg-reconfigure virtualbox
  4. /etc/init.d/virtualbox restart

Спасибо Rikard / hg8 за приведенный выше совет по шагам 2 и 3. В моем случае вполне возможно, что они не были нужны, но в любом случае это было приятно.

Freeb
источник
У меня была такая же проблема при переходе VB с 5.0 на 5.2. Я следовал вашим шагам, и это сработало, но на шаге 3 измените virtualbox на virtualbox-5.2, если вы его установили.
TommyDo
1

В моем случае virtualbox-dkmsверсия просто не соответствовала остальным пакетам:

$ dpkg --list | grep virtualbox
ii  unity-scope-virtualbox                        0.1+13.10.20130723-0ubuntu1 all                         VirtualBox scope for Unity
ii  virtualbox                                    5.1.34-dfsg-0ubuntu1.16.04. amd64                       x86 virtualization solution - base binaries
ii  virtualbox-dkms                               5.0.40-dfsg-0ubuntu1.16.04. all                         x86 virtualization solution - kernel module sources for dkms
ii  virtualbox-ext-pack                           5.1.34-0ubuntu1.16.04.2     all                         extra capabilities for VirtualBox, downloader.
ii  virtualbox-qt                                 5.1.34-dfsg-0ubuntu1.16.04. amd64                       x86 virtualization solution - Qt based user interface

Я просто переустановил это:

$ sudo apt purge virtualbox-dkms
$ sudo apt install virtualbox-dkms
$ dpkg --list | grep virtualbox
ii  unity-scope-virtualbox                        0.1+13.10.20130723-0ubuntu1 all                         VirtualBox scope for Unity
ii  virtualbox                                    5.1.34-dfsg-0ubuntu1.16.04. amd64                       x86 virtualization solution - base binaries
ii  virtualbox-dkms                               5.1.34-dfsg-0ubuntu1.16.04. all                         x86 virtualization solution - kernel module sources for dkms
ii  virtualbox-ext-pack                           5.1.34-0ubuntu1.16.04.2     all                         extra capabilities for VirtualBox, downloader.
ii  virtualbox-qt                                 5.1.34-dfsg-0ubuntu1.16.04. amd64                       x86 virtualization solution - Qt based user interface
ii  virtualbox-source                             5.1.34-dfsg-0ubuntu1.16.04. all                         x86 virtualization solution - kernel module source

и виртуальная машина запустилась без ошибок.

PJ_Finnegan
источник