VirtualBox内核模块与VirtualBox的版本不匹配

Ubuntu 12.04上的VirtualBox 4.2.12运行正常,直到我需要安装guest additon。 安装后:

Failed to open a session for the VM Win 7 exit code 1; RTR3Init failed with rc=-1912(rc=1912) 

运行dpkg --list | grep virtualbox 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 

任何帮助表示赞赏……

谢谢…

您似乎安装了两个单独版本的VirtualBox!

我建议您完全卸载所有版本的VirtualBox:

 sudo apt-get autoremove 'virtualbox*' 

然后直接从Oracle重新安装。 转到VB下载页面 ,向下滚动到“基于Debian的Linux发行版”,然后按照说明进行操作。

然后再试一次。

顺便说一下,你不需要使用grepdpkg 。 这是一个更好的替代命令:

 dpkg --list 'virtualbox*' 

一个不太干扰的解决方案可能是:

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

来源更多信息。

从ubuntu repo版本切换到ppa版本后我遇到了这个问题。 问题的根本原因完全如错误消息中所述:内核模块版本不匹配。 我已经证实了这一点

 modinfo vboxdrv 

它作为5.0版本回来了。 (从ppa,我有vbox 5.1)。

我已经卸载了virtualbox-dkms,因为安装它也会安装ubuntu repo的常规vbox版本。 但是内核模块仍然是由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,我的VM正在运行。

现在我想起来了,也许这些模块在/lib/modules/4.4.0-59-generic/misc/中被正确地重新编译,但在加载时,dkms模块可能具有优先权。 不幸的是,我没有时间对此进行调查。

ps。:如果您从repo版本到ppa进行相同的转换,请确保将自己添加到(新创建的)组vboxusers,然后注销并返回。

今天发生在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步的上述提示。在我的情况下,它们可能不需要它们,但无论如何都感觉很好。

在我的情况下, 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 

并且VM启动时没有错误。