VirtualBox - RTR3InitEx 失败,rc=-1912 (rc=-1912)

Ali*_*ari 75 virtualbox 16.04

我已经Version 5.1.18 r114002 (Qt5.5.1)在 Ubuntu 上安装了 VirtualBox 16.04 LTS。虚拟化一切(Kali、Windows 10)。

我遇到以下错误:

RTR3InitEx 失败,rc=-1912 (rc=-1912)

VirtualBox 内核模块与此版本的 VirtualBox 不匹配。VirtualBox 的安装显然没有成功。执行

'/sbin/vboxconfig'

可能会纠正这一点。确保不要混合使用 VirtualBox 的 OSE 版本和 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 <none>       <none>       (no description available)
 un virtualbox-gue <none>       <none>       (no description available)
 un virtualbox-ose <none>       <none>       (no description available)
Run Code Online (Sandbox Code Playgroud)

Rav*_*ina 85

先读这个!

请注意,当运行或删除和安装等典型解决方案不起作用时,此答案旨在专门解决原始海报的问题。sudo /sbin/vboxconfigvirtualbox-dkmsdkms

请先尝试这些简单的解决方法,它们可能会立即对您有所帮助。


看来您的 virtualbox 安装版本是针对 32 位架构的,而您运行的是 64 位操作系统,这可能是导致此问题的原因。

我的解决方法是从 PPA 中删除已安装的版本,并从官方存储库中安装 virtualbox。

要删除 virtualbox,请运行:

sudo apt autoremove --purge virtualbox*
Run Code Online (Sandbox Code Playgroud)

之后,通过以下方式确保您的系统上没有安装其他版本:

dpkg -l 'virtualbox*' | grep ^i
Run Code Online (Sandbox Code Playgroud)

你不应该得到任何输出,你也可以尝试运行 virtualbox 以确保它没有安装。

然后从您的sources.listsources.list.d目录中删除所有相关的 PPA 。前任:

mkdir ~/apt-tmp
sudo mv /etc/apt/sources.list.d/* ~/apt-tmp
Run Code Online (Sandbox Code Playgroud)

确保/etc/apt/sources.list.

并更新您的来源:

sudo apt update
Run Code Online (Sandbox Code Playgroud)

现在我们可以搜索以查看可以安装的版本:

apt-cache madison virtualbox | grep -iv sources
Run Code Online (Sandbox Code Playgroud)

产生这样的输出:

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
Run Code Online (Sandbox Code Playgroud)

然后我将安装中提到的最后一个版本xenial-updates

sudo apt install virtualbox=5.0.32-dfsg-0ubuntu1.16.04.2
Run Code Online (Sandbox Code Playgroud)

另外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
Run Code Online (Sandbox Code Playgroud)

从 GUI:确保正确的版本正在运行。

帮助菜单 -> 关于 virtualbox

注意绿色高光

虚拟框

  • `sudo mv /etc/apt/sources.list.d/* ~/apt-tmp` 这样做后,`sudo apt-get install` 将不会安装任何其他软件。所以不要忘记把它移回去 (5认同)

Dan*_*tin 84

如果您通过官方手册安装了 VirtualBox并且没有忘记从默认的 Ubuntu 存储库中删除已安装的一个。

检查是否virtualbox-dkms安装:

dpkg -l | grep virtualbox-dkms
Run Code Online (Sandbox Code Playgroud)

如果是,则删除它并安装 dkms

sudo apt-get purge virtualbox-dkms && \
sudo apt-get install dkms
Run Code Online (Sandbox Code Playgroud)

重建 VirtualBox 内核模块:

sudo /sbin/vboxconfig 
Run Code Online (Sandbox Code Playgroud)


小智 9

所以,就我而言,内核模块没有被正确删除。

以下是详细信息:

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
Run Code Online (Sandbox Code Playgroud)

问题:

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
Run Code Online (Sandbox Code Playgroud)

使固定:

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)
Run Code Online (Sandbox Code Playgroud)

在此之后,一切正常(至少在我的情况下)

希望能帮助到你。隐藏 查看完整的活动日志

我在https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1736116发布了回复


Gha*_*van 6

您的系统上似乎安装了两个独立版本的 VirtualBox!

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

sudo apt-get autoremove 'virtualbox*'
Run Code Online (Sandbox Code Playgroud)

然后直接从 Oracle virtualbox 重新安装。转到VB 下载页面,向下滚动到“基于 Debian 的 Linux 发行版”,然后按照说明或下载适用于所有发行版的VB 二进制包,然后像这样运行安装程序:

cd /path/to/downloaded/file
chmod +x VirtualBox-x.x.xx-xxxxxx-Linux_xxxxx.run
./VirtualBox-x.x.xx-xxxxxx-Linux_xxxxx.run
Run Code Online (Sandbox Code Playgroud)