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

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

Ubuntu 12.04 上的 VirtualBox 4.2.12 运行良好,直到我需要安装客户插件。安装后:

 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

任何帮助都将不胜感激...

谢谢...

答案1

您似乎安装了两个不同版本的 VirtualBox!

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

sudo apt-get autoremove 'virtualbox*'

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

然后重试。

顺便说一句,您不需要使用grepwith dpkg。这里有一个比您的命令更好的替代方案:

dpkg --list 'virtualbox*'

答案2

一个干扰较小的解决方案可能是:

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

来源提供更多信息。

答案3

我在从 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 下,我的虚拟机正在运行。

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

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

答案4

今天我在 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 提供的上述提示。就我而言,可能不需要这些步骤,但无论如何,这样做感觉很好。

相关内容