Virtualbox内核驱动程序未安装

我尝试使用我的Virtual Box,但是收到了以下错误信息 - (我刚更新到新的Ubuntu版本),而且对这个Linux操作系统非常陌生。

未安装内核驱动程序(rc=-1908)

VirtualBox Linux内核驱动程序(vboxdrv)未加载或者/dev/vboxdrv存在权限问题。请以root身份执行

'/etc/init.d/vboxdrv setup'

重新安装内核模块。Ubuntu、Fedora或Mandriva用户应先安装DKMS软件包。该软件包可跟踪Linux内核的变化,并在必要时重新编译vboxdrv内核模块。

Virtualbox Kernel driver not installed


1我遇到了一个类似的问题,VirtualBox突然停止工作了。解决方案最终是在BIOS中禁用安全启动,因为在我更新BIOS后安全启动被重新启用了。这个答案也提到了安全启动。 - kjpc-tech
1对于Arch用户:以root权限运行modprobe -a vboxdrv来解决此问题。 - Yogesh Aggarwal
sudo apt-get remove virtualbox-dkms 然后 sudo apt-get install virtualbox-dkms - auxiliaire
也是一个 Arch 用户:只在 pacman 安装后重启过一次,没有运行任何额外的东西。 - ooXei1sh
24个回答

首先,重新安装virtualbox-dkms软件包。
sudo apt-get autoremove virtualbox-dkms
sudo apt-get install build-essential linux-headers-`uname -r` dkms virtualbox-dkms

之后您可以手动启用它

sudo modprobe vboxdrv
sudo modprobe vboxnetflt

17运行sudo modprobe vboxnetflt会出现FATAL: Module vboxnetflt not found.同样适用于vboxdrv。 - weberc2
4此外,当安装virtualbox-dkms时,我会得到类似于以下的非错误输出:由于当前运行的内核源码似乎未安装,因此跳过了针对当前运行的内核的模块构建。 - weberc2
1谢谢,只是按照这个方法解决了我的问题:sudo apt-get remove virtualbox-dkms / sudo apt-get install virtualbox-dkms - David
1在13.10版本中,我安装了virtualbox-qt软件包,这对我来说是最好的解决方案。但是,通过运行sudo apt-get install dkms virtualbox-dkms命令,这些软件包会自动安装模块,无需其他命令。 - Nathan Kidd
3在14.04版本中,这对我也起作用。在重新安装virtualbox-dkms之前,确保安装了与您的内核匹配的头文件(参见@Husni的回答),否则模块将无法构建。 - adelphus
尝试使用"sudo apt-get autoremove"(不需要引号)如果你对这个解决方案有问题。 - Mike Jr
如果已安装virtualbox-5.0,则会将其移除,并安装一个过时的VirtualBox版本。 - Nicolas Raoul
16.10安装virtualboxvirtualbox-qt)时没有安装virtualbox-dkms(或dkms),导致了这个问题。本应该期望这个问题在现在已经修复,尤其是对于一个3年后的live iso版本。 - Xen2050
1从Zesty升级到Artful,我需要按照https://askubuntu.com/a/969596/49860的指示进行操作,并使用`sudo apt install linux-headers-lowlatency来修复这些模块:它们是为generic内核构建的,而不是lowlatency`变体。 - Jesse Glick
modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/4.4.0-109-generic - Aaron Franke
1在 elementary OS 6.1 Jólnir 上工作,基于 Ubuntu 20.04.3 LTS Linux 5.11.0-44-generic 构建。 - Leo Fisher
使用sudo modprobe vboxdrv时,我遇到了错误"'vboxdrv':操作不允许",并通过https://crazytechgo.com/modprobe-error-could-not-insert-vboxdrv-operation-not-permitted/的帮助进行了修复。 - e11438
我很好奇,这个还在运作着 :) - undefined

最有可能的是你所要做的就是运行。
sudo apt-get install dkms

(或从软件中心安装dkms)
然后运行
sudo /etc/init.d/vboxdrv setup

输入并写下你的密码。

如果在使用这些命令时出现任何错误,请使用以下命令。

sudo modprobe vboxdrv

52vboxdrv不存在。 - weberc2
1@weberc2 从Ubuntu仓库安装的VirtualBox OSE版本没有这个功能,而virtualbox.org的版本则有。$ dpkg -S /etc/init.d/vboxdrv virtualbox-4.2: /etc/init.d/vboxdrv - gertvdijk
1@gertvdijk 我明白了。我打算先尝试一些其他答案,如果不行的话,我会使用virtualbox.org上的那个答案。为什么Ubuntu软件库中的许多应用程序都是残缺的,而通用版本却没有这个问题呢?/发牢骚 - weberc2
2真糟糕,每次重启后我都得重新运行 :-/ 有没有更持久的解决方案?或者这本来就应该是永久的,而我又遇到了其他问题? - Nicolas Raoul
8sudo: /etc/init.d/vboxdrv: command not found - Aaron Franke
modprobe: ERROR: could not insert 'vboxdrv': Required key not available - Archisman Panigrahi
从Virtualbox下载页面安装.deb文件后,工作正常。(Mint 17.2是Ubuntu Tasty) - Fabiano Tarlao


1找不到命令 - Archisman Panigrahi

在Ubuntu 14.04的64位系统中,对我有效的方法是:
sudo dpkg-reconfigure virtualbox-dkms

2这对我来说是无法运行内核的适当模块。请参阅错误1457776 - Lonnie Best
12015年04月:dpkg-query: 软件包 'virtualbox-dkms' 未安装且无可用信息 - Nicolas Raoul
非常感谢。省了我很多时间。这对我有用。 - Rahul

12.10那天,这些解决方案对我来说都失败了。然而下面的方法却奏效了:
  1. 运行命令:

    sudo gedit /etc/apt/sources.list.d/vbox.list
    

    并粘贴以下内容,然后保存:

    deb http://download.virtualbox.org/virtualbox/debian quantal contrib
    

    (将 quantal 替换为您的发行版代号)

  2. 运行:

    sudo apt-get update && sudo apt-get -y upgrade
    

    以将您的机器更新到最新版本

  3. 运行:

    sudo apt-get remove virtualbox
    

    然后安装 Oracle 版本:

    sudo apt-get install virtualbox-4.3
    

    (将 4.3 替换为您要安装的版本)

现在应该可以工作了。别忘了从http://www.virtualbox.org下载扩展包。

我正在运行12.10 64位系统,这对我有效。 - greg
13.04和工作! - notablytipsy
114.04 - 运行良好。 - 0x8BADF00D
114.10 - 对我来说有效,我只需要写deb http://download.virtualbox.org/virtualbox/debian trusty contrib就可以了。 - Mahdi

另一个可能的原因是你使用了较旧的GCC版本(比如我在Ubuntu 16.04上安装了GCC 4.8),并将其设置为默认版本(例如通过使用update-alternatives),当你尝试更新或重新安装VirtualBox时会出现这个问题。
只需回到你发行版默认的GCC版本进行VirtualBox安装,它就能正常工作。
在VirtualBox安装完成后,你可以切换回较旧的GCC版本。

我有同样的问题,通过这两个步骤解决了:
sudo apt-get install linux-headers-`uname -r`

那么

/etc/init.d/vboxdrv setup

102015年04月:/etc/init.d/vboxdrv: 没有这个文件或目录 - Nicolas Raoul

我在我的/etc/apt/sources.list中有deb http://download.virtualbox.org/virtualbox/debian precise contrib,以便使用Virtualbox 5.x。

面对相同的错误,我尝试了这里的所有方法,但都没有生效,只有这个(浪费带宽):

  1. sudo apt-get purge virtualbox virtualbox-4* virtualbox-5*
  2. 重新启动
  3. sudo apt-get install virtualbox-5.0
  4. https://www.virtualbox.org/wiki/Downloads安装最新的扩展包

sudo apt-get install linux-headers-generic build-essential dkms
sudo apt-get remove --purge virtualbox-dkms
sudo apt-get install virtualbox-dkms

只需使用三个命令即可,适用于Ubuntu用户。

1为什么这些命令可能有帮助? - Pilot6
因为我遇到了几乎相同的错误,并且对我起了作用。 - jsingh
1jsyroyal,Pilot6问你的是,那些命令是做什么用的?为什么它们有效?你应该编辑你的问题,包括关于这些命令的信息。祝好! - Tshilidzi Mudau

花了很长时间才解决了这个问题。在两个发行版(Ubuntu和Arch)上都遇到了vBox的问题。
我已经安装并编译了dkms和所有模块到我的内核中,但是当我尝试运行vBox虚拟机时,仍然收到一个与模块相关的错误消息。
如果你的vBox GUI可以正常启动,但是在尝试运行虚拟机时出现一个告诉你安装VBoxDrv内核模块的错误,那么你的问题与将模块安装到内核中无关,而是与在modprobe中“激活它们”有关,而模块安装脚本未能执行此操作。
要手动加载一个模块(例如,在你的情况下是vboxdrv),打开终端提示符并输入以下命令:
sudo modprobe vboxdrv

如果您的虚拟机在此之后运行而没有出现错误消息,那么您可以通过进入/etc/modules-load.d/并创建一个.conf文件(例如vbox.conf)来永久激活vboxdrv模块。在.conf文件中,添加您想要添加的vbox内核模块的名称,例如:vboxdrv
保存并重新启动。
您还可以添加这些可选模块:vboxnetadpvboxnetfltvboxpci
根据Vbox的维基页面:
当您打算使用“Host-only networking”功能时,需要同时安装vboxnetadpvboxnetflt。具体来说,vboxnetadp用于在VirtualBox全局首选项中创建主机接口,而vboxnetflt用于使用该网络接口启动虚拟机。
当您的虚拟机需要通过主机上的PCI设备时,需要安装vboxpci。
注意:如果在更新模块时,VirtualBox内核模块已加载到内核中,则需要手动重新加载它们以使用新的更新版本。要执行此操作,请以root身份运行vboxreload命令。

32015年04月: modprobe: 致命错误:找不到模块 vboxdrv - Nicolas Raoul