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发行版”,然后按照说明进行操作。
然后再试一次。
顺便说一下,你不需要使用grep
和dpkg
。 这是一个更好的替代命令:
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)上的内核补丁发生了这件事。 我把它固定如下:
-
su
(我不使用sudo;如果你这样做,那么将sudo添加到下面的行) -
dpkg-reconfigure virtualbox-dkms
-
dpkg-reconfigure virtualbox
-
/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启动时没有错误。