VirtualBox – RTR3InitEx失败,rc = -1912(rc = -1912)
我在Ubuntu 16.04 LTS
上安装了VirtualBox Version 5.1.18 r114002 (Qt5.5.1)
。 虚拟化一切(Kali,Windows 10)。
我遇到以下错误:
RTR3InitEx失败,rc = -1912(rc = -1912)
VirtualBox内核模块与此版本的VirtualBox不匹配。 VirtualBox的安装显然不成功。 执行
‘/ sbin目录/ vboxconfig’
可以纠正这个。 确保不要混合OSE版本和VirtualBox的PUEL版本。
其中:supR3HardenedMainInitRuntime:4 VERR_VM_DRIVER_VERSION_MISMATCH(-1912) – 已安装的支持驱动程序与用户的版本不匹配。
- 是什么导致这个问题?
- 怎样才能解决这个问题?
当我在终端中运行dpkg --list virtualbox-*
时,我得到:
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-================================= rc virtualbox-5.0 5.0.32-11293 i386 Oracle VM VirtualBox rc virtualbox-5.1 5.1.18-11400 i386 Oracle VM VirtualBox un virtualbox-gue (no description available) un virtualbox-gue (no description available) un virtualbox-ose (no description available)
在您运行64位操作系统时,似乎您的安装版本的virtualbox适用于32位体系结构,这可能是导致此问题的原因。
我的解决方法是从PPA中删除已安装的版本,并从官方存储库安装virtualbox。
要删除virtualbox,请运行:
sudo apt autoremove --purge virtualbox*
之后,请确保您的系统上没有安装其他版本:
dpkg -l virtualbox* | grep ^i
您不应该获得任何输出,也可以尝试运行virtualbox以确保它没有安装。
然后从sources.list
和sources.list.d
目录中删除所有相关的PPA。 例如:
mkdir ~/apt-tmp sudo mv /etc/apt/sources.list.d/* ~/apt-tmp
确保/etc/sources.list
没有除官方存储库源之外的任何/etc/sources.list
。
并更新您的来源:
sudo apt update
现在我们可以搜索以查看可安装的版本:
apt-cache madison virtualbox | grep -iv sources
这会产生如下输出:
virtualbox | 5.0.32-dfsg-0ubuntu1.16.04.2 | http://mirrors.kernel.org/ubuntu xenial-updates/multiverse amd64 Packages virtualbox | 5.0.18-dfsg-2build1 | http://mirrors.kernel.org/ubuntu xenial/multiverse amd64 Packages
然后我会安装xenial-updates
提到的最新版本:
sudo apt install virtualbox=5.0.32-dfsg-0ubuntu1.16.04.2
另外sudo apt install virtualbox
,没关系,但我会用上面的命令来确保我的所需版本将被安装。
毕竟,检查是否安装了正确的版本。
从命令行:
dpkg -l virtualbox* | grep ^i ii virtualbox 5.0.32-dfsg-0ubuntu1.16.04.2 amd64 x86 virtualization solution - base binaries ii virtualbox-dkms 5.0.32-dfsg-0ubuntu1.16.04.2 all x86 virtualization solution - kernel module sources for dkms ii virtualbox-qt 5.0.32-dfsg-0ubuntu1.16.04.2 amd64 x86 virtualization solution - Qt based user interface
从GUI:确保正在运行的版本正确。
帮助菜单 – >关于virtualbox
注意绿色亮点
如果您通过官方手册安装了VirtialBox,并且不要忘记从默认的Ubuntu存储库中删除已安装的VirtialBox。
检查是否安装了virtualbox-dkms
:
dpkg -l | grep virtualbox-dkms
如果是,则删除它并安装dkms
sudo apt-get purge virtualbox-dkms && \ sudo apt-get install dkms
重建VirtualBox内核模块:
sudo /sbin/vboxconfig
您的系统上似乎安装了两个独立的VirtualBox版本!
我建议您完全卸载所有版本的VirtualBox:
sudo apt-get autoremove 'virtualbox*'
然后直接从Oracle virtualbox重新安装。 转到VB下载页面 ,向下滚动到“ 基于Debian的Linux发行版 ”,然后按照说明或下载所有发行版的 VB二进制包,然后运行安装程序,如下所示:
cd /path/to/downloaded/file chmod +x VirtualBox-xxxx-xxxxxx-Linux_xxxxx.run ./VirtualBox-xxxx-xxxxxx-Linux_xxxxx.run
所以,就我而言,内核模块没有被正确删除。
以下是详细信息:
root@Dell5280 [~]# cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS root@Dell5280 [~]# uname -r 4.13.0-31-generic
问题:
root@Dell5280 [~]# modinfo vboxdrv filename: /lib/modules/4.13.0-31-generic/updates/dkms/vboxdrv.ko version: 5.0.40_Ubuntu r115130 (0x00240000) license: GPL description: Oracle VM VirtualBox Support Driver author: Oracle Corporation srcversion: 6D8B4900A693FC50489A130 depends: name: vboxdrv vermagic: 4.13.0-31-generic SMP mod_unload
固定:
root@Dell5280 [~]# rm /lib/modules/4.13.0-31-generic/updates/dkms/vboxdrv.ko root@Dell5280 [~]# modinfo vboxdrv filename: /lib/modules/4.13.0-31-generic/updates/dkms/vboxdrv.ko modinfo: ERROR: could not get modinfo from 'vboxdrv': No such file or directory [1] root@Dell5280 [~]# /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. vboxdrv.sh: Starting VirtualBox services. root@Dell5280 [~]# modinfo vboxdrv filename: /lib/modules/4.13.0-31-generic/misc/vboxdrv.ko version: 5.2.7 r120349 (0x00290000) license: GPL description: Oracle VM VirtualBox Support Driver author: Oracle Corporation srcversion: 4880B21EFF1B605D6402982 depends: name: vboxdrv vermagic: 4.13.0-31-generic SMP mod_unload parm: force_async_tsc:force the asynchronous TSC mode (int)
在此之后,一切正常(至少在我的情况下)
希望能帮助到你。 隐藏查看完整活动日志
我在https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1736116上发布了回复
检查您是否加载了vbox模块:
lsmod | grep vbox
在我的机器上,我有vboxpci
, vboxnetadp
, vboxnetflt
和vboxdrv
检查它们是否是正确的版本:
modinfo vboxdrv
该模块的版本很可能是5.0.32 rxxxxxx
,但您运行的是virtualbox 5.1
如果不是这种情况,这个答案可能无法解决您的问题。
否则,这可能是由于未删除旧版虚拟机遗留的模块而导致的,并且新模块未被覆盖。
只需删除所有旧模块并重新启动,它应该解决问题:
# This command list all files in the same directory of the vboxdrv module # Double check they are all vbox* modules and are outdated # Then change "ls" to "rm" to remove all ls $(dirname $(modinfo vboxdrv | sed -n 's/filename: *(\.*\)/\1/p'))/*
如果重新安装Virtualbox不起作用。 您应该尝试安装或重新安装Virtualbox的dkms
validation是否有错误:
dpkg -P virtualbox-dkms
如果您有错误可能应该尝试:
sudo apt-get install virtualbox-dkms
如果要使用最新版本的virtualbox,则需要删除dkms文件夹中的模块。
VB 5.1及更早版本将模块置于misc中,而fork中的VB 5.0将它们存储在dkms文件夹中。
- 使用apt清除所有virtualbox
-
检查
modinfo vboxdrv
以查看它是否输出5.0版 :$ modinfo vboxdrv filename: /lib/modules/4.13.0-31-generic/updates/dkms/vboxdrv.ko version: 5.0.40_Ubuntu r115130 (0x00240000) license: GPL description: Oracle VM VirtualBox Support Driver author: Oracle Corporation srcversion: 6D8B4900A693FC50489A130 depends: name: vboxdrv vermagic: 4.13.0-31-generic SMP mod_unload parm: force_async_tsc:force the asynchronous TSC mode (int)
-
如果输出5.0 ,则删除dkms文件夹中的模块:
$ sudo -i # sudo rmmod vboxnetadp vboxnetflt vboxpci vboxdrv # cd /lib/modules/(kernelversion)-generic/updates/dkms # rm vbox*
-
运行
sudo /sbin/rcvboxdrv setup
(然后检查modinfo vboxdrv
是否提供了正确的版本)$ modinfo vboxdrv filename: /lib/modules/4.10.0-42-generic/misc/vboxdrv.ko version: 5.2.6 r120293 (0x00290000) license: GPL description: Oracle VM VirtualBox Support Driver author: Oracle Corporation srcversion: 4880B21EFF1B605D6402982 depends: vermagic: 4.10.0-42-generic SMP mod_unload parm: force_async_tsc:force the asynchronous TSC mode (int)
我使用下面给出的命令删除了virtualbox:
sudo apt autoremove --purge virtualbox*
但它不起作用。
我发现旧的vboxdrv mod没有被删除,不得不从“/ lib / modules / $(uname -r)/ updates / dkms /”手动删除vboxdrv.ko。
一个简单的apt upgrade virtualbox
为我工作