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


55

我已经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)

您阅读错误消息了吗?它说执行/sbin/vboxconfig我的正确。存储库中virtualbox的最新版本是:5.0.32我建议从官方存储库安装vbox。
Ravexina '17

该错误表明您的虚拟机以与当前安装不同的VirtualBox版本安装。这可能来自混合OSE(Ubuntu存储库)和PUEL版本(从包含扩展包的Oracle安装后),也可能来自不同的体系结构(32位和64位)-很难说,不知道在错误发生之前您做了什么。
塔卡特

@Ravexina我已经删除5.1.18并安装了,5.0.32但遇到了先前的错误。
Ali Hesa​​ri'4

@Ravexina我运行dpkg --list virtualbox-*并更新了我的问题。
Ali Hesa​​ri '17

1
似乎仍然安装了5.1,运行:sudo apt-get autoremove --purge virtualbox-5.1,然后删除非官方存储库,然后安装virtualbox。
Ravexina '17

Answers:


69

似乎您在运行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/apt/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


感谢您的答复。我跑了,apt-cache madison virtualbox | grep -iv sources 但是没有输出!!!没问题?
阿里·赫萨里

作为示例,您应该得到一个输出,将此命令输出添加到问题中cat /etc/apt/sources.list
Ravexina

4
sudo mv /etc/apt/sources.list.d/* ~/apt-tmp这样,以后sudo apt-get install将不会安装任何其他软件。所以,不要忘记将它移回
ASME只是

遇到同样的问题,并带有一些第三方的复古,谢谢您如何删除它!话虽如此,已经可以直接安装5.1,请参见我的回答
Frank Nocke

我已按照您的指示进行操作并安装了virtualbox,但无法安装来宾添加功能
Sugumar Venkatesan

55

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

检查是否virtualbox-dkms已安装:

dpkg -l | grep virtualbox-dkms

如果是,则将其删除并安装 dkms

sudo apt-get purge virtualbox-dkms && \
sudo apt-get install dkms

重建VirtualBox内核模块:

sudo /sbin/vboxconfig 

11
谢谢。为我工作,应该是所选的答案。
user3751385

1
这很好用!比接受的答案更容易,更正确。
安德烈亚斯·韦德布兰德

1
接受的答案符合OP解决该问题的要求。这是一个通用选项,可能不适用于OP。
Ravexina

帮助我从相同的错误抢救virtualbox。我从5.2升级到6.0,然后开始出现该错误。
lovalim

它为18.04.2上的vbox6帮助了我
Troublemaker-DV

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

问题:

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发布了回复


我不知道我卸载并重新安装了多少次,但错误仍然存​​在。这就是我所需要的。谢谢,安迪(Andy :)
菲尔·凯恩斯

5

看来您的系统上安装了两个单独的VirtualBox版本!

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

sudo apt-get autoremove 'virtualbox*'

然后直接从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

2

检查是否已加载vbox模块:

lsmod | grep vbox

在我的机器,我有vboxpcivboxnetadpvboxnetflt,和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'))/*

2

更新到6.0后,此消息也会出现。如果您没有这样做,请重新启动系统,以便将所有新模块加载到内核中。有时候就是这么简单。


1

如果重新安装Virtualbox不起作用。您应该尝试安装或重新安装dkmsVirtualbox

验证是否有错误:

dpkg -P virtualbox-dkms

如果您有错误,应该尝试执行以下操作:

sudo apt-get install virtualbox-dkms

1

如果要使用最新版本的virtualbox,则需要删除dkms文件夹中的模块。

VB 5.1和老年地方模块杂项而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)
    

1

我使用下面给出的命令删除了virtualbox:

sudo apt autoremove --purge virtualbox*

但它没有用。

我发现旧的vboxdrv mod没有被删除,而不得不从“ / lib / modules / $(uname -r)/ updates / dkms /”中手动删除vboxdrv.ko。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.