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 发行版”,然后按照说明进行操作。
然后重试。
顺便说一句,您不需要使用grep
with dpkg
。这里有一个比您的命令更好的替代方案:
dpkg --list 'virtualbox*'
答案2
答案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) 上安装了内核补丁后也遇到了这个问题。我按如下方法修复了它:
su
(我不使用 sudo;如果你使用,则将 sudo 添加到下面的行前面)dpkg-reconfigure virtualbox-dkms
dpkg-reconfigure virtualbox
/etc/init.d/virtualbox restart
感谢 Rikard/hg8 对步骤 2 和 3 提供的上述提示。就我而言,可能不需要这些步骤,但无论如何,这样做感觉很好。