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.listsources.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

注意绿色亮点

VBOX

如果您通过官方手册安装了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 

在我的机器上,我有vboxpcivboxnetadpvboxnetfltvboxdrv

检查它们是否是正确的版本:

 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文件夹中。

  1. 使用apt清除所有virtualbox
  2. 检查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) 
  3. 如果输出5.0 ,则删除dkms文件夹中的模块:

     $ sudo -i # sudo rmmod vboxnetadp vboxnetflt vboxpci vboxdrv # cd /lib/modules/(kernelversion)-generic/updates/dkms # rm vbox* 
  4. 运行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为我工作