VirtualBox '/etc/init.d/vboxdrv setup' 问题

我已经通过软件中心安装了VirtualBox,但是当我尝试启动虚拟机时,出现以下错误:
内核驱动程序未安装(rc=-1908) VirtualBox Linux内核驱动程序(vboxdrv)未加载或/dev/vboxdrv存在权限问题。请以root身份执行'/etc/init.d/vboxdrv setup'重新安装内核模块。如果您的发行版中有此选项,请先安装DKMS包。该包可跟踪Linux内核的更改,并在必要时重新编译vboxdrv内核模块。
我已经更新了dkms并安装了linux-headers,但是/etc/init.d/vboxdrv文件不存在。
我已经搜索了很多,但是找不到答案。

1就像其他人说的那样,重新安装**"virtualbox-dkms"**。 - Shaharil Ahmad
这是在内核更新后(ubuntu)发生在我身上的事情。对我来说只需要执行以下命令:"sudo apt-get install virtualbox"。安装过程会为我创建内核模块。 - Michael
原始帖子涉及12.10。如果你在14.04遇到这个问题,在撰写时可能更有可能,使用virtualbox.org而不是Ubuntu软件中心。文档有冗长的说明,但下面的链接是一个简短的阅读。如果你忽略关于HTTPS的部分,那就很简短了。https://virtualbox.org/wiki/Linux_Downloads - H2ONaCl
1可能是一个重复的问题,可以参考Virtualbox Kernel driver not installed - bain
10个回答

我在升级Linux内核后也遇到了这个问题好几次。
我所做的是:
sudo apt-get install linux-headers-`uname -r`

重新配置dkms并加载模块。
sudo dpkg-reconfigure virtualbox-dkms  
sudo modprobe vboxdrv

然后VirtualBox就可以工作了。不需要重新启动电脑。

1只需按照你指出的安装linux-headers,然后运行sudo ./etc/init.d/vboxdrv setup命令即可自动更新dkms。 - Garrett Fogerlie
1执行modprobe vboxdrv后显示:严重错误:未找到vboxdrv模块。 - Benjamin Crouzier
@pinouchon 请问执行 dpkg-reconfigure virtualbox-dkms 命令时是否有任何错误信息输出? - cmc
3每隔几个星期,我似乎都要做这个,因为我要升级我的系统。有没有办法永久修复它? - Will
@GarrettFogerlie 或许在你的情况下起作用了,但是原帖明确指出他已经安装了头文件,所以我猜你没有仔细阅读问题。 - Nabil Kadimi
sudo dpkg-reconfigure virtualbox-dkms - Onimusha
太棒了,真是太有用了 :D 非常感谢你的帮助。 - Ravi Dhoriya ツ
sudo /etc/init.d/vboxdrv setup 对我来说没有起作用(这是VirtualBox在无法重新启动保存的虚拟机时建议的方法)。 而dpkg-reconfigure后跟着modprobe则可以解决问题。 (12.04 LTS,VirtualBox 4.1.12) - armb
这让我的虚拟机启动了,但是出现了网络故障。在完成这些步骤后,我还需要执行sudo modprobe vboxnetflt命令。 - Stephen
你的回答对我来说可能是整个SE网络上最方便的回答了,我在过去的两周里至少使用了这些命令4次。 - Lynob
2015年04月份我遇到了/usr/sbin/dpkg-reconfigure: virtualbox-dkms is not installed的问题。 - Nicolas Raoul
只需执行 sudo apt-get install virtualbox-dkms 对我而言有效。 - Searene
我在Manjaro 17上遇到了同样的问题。使用sudo modprobe vboxdrv可以解决这个问题。更多信息请参考https://wiki.archlinux.org/index.php/VirtualBox#Install_the_core_packages。 - kyb

以下是在12.10上的确切操作步骤:

确保没有残留的dkms(virtualbox/ virtualbox-4.2)和linux通用头文件(..17):

***将virtualbox-4.2替换为您已安装的版本。如果尚未安装,请继续执行第2步。

  1. sudo apt-get purge virtualbox-4.2 dkms linux-headers-$(uname -r)
  2. sudo apt-get install linux-headers-$(uname -r)
  3. sudo apt-get install virtualbox-4.2

在安装VirtualBox之前,**必须**先安装Linux头文件,否则VBox安装过程中设置vboxdrv部分时会出现错误,因为Linux头文件未安装。


谢谢,但是当我直接从官网下载VirtualBox时,我只需要执行"sudo dpkg -i virtualbox.deb"命令,就不需要做其他任何事情了。这样工作量更少。 - Dr_Bunsen
那么你很幸运!如果你需要与Linux头文件有所交互,那么在安装VirtualBox之前安装它们非常重要。 - HankHendrix
对我来说起作用了,经过几个小时的沮丧。我正在使用Ubuntu 12.04。 - Benjamin Crouzier
这种方法对我来说很有效。直接从网站下载并不行。基本上,似乎缺少了头部信息。在安装了上述所描述的头部信息之后,我只需通过软件中心正常安装vbox即可。 - Andre
太棒了,安德烈! - HankHendrix
我使用了"sudo apt-get install virtualbox",效果非常好。谢谢! - biomed

重新安装"virtualbox-dkms"
sudo apt-get install --reinstall virtualbox-dkms
这对我起作用了。

应该查看 /var/log/vbox-install.log 文件以确定问题。如果问题仍然存在,你可以从 https://www.virtualbox.org/wiki/Downloads 下载并直接安装最新的 v4.2.2 版本(适用于内核版本 3.6.* 及以下)。祝好运。

没有该死的日志文件....哈哈,我只是试试从那个网站下载,等下载和测试完成后再回复你。 - Dr_Bunsen
IC - 没有日志文件“可能”是一个问题。LOL - cogitoergosum
好的,我清理了我所有的东西,从那个网站下载下来了,一切都很顺利,现在我正在安装一个操作系统,谢谢伙计! - Dr_Bunsen
VirtualBox官网清除并安装文件解决了我的问题。谢谢! - Gabriel
很不幸的是,仓库中的VirtualBox软件包似乎存在问题。显然没有人对这些软件包进行测试... - weberc2
很不幸,即使这样对我也没有用。我收到了一个错误信息:“无法安装'libpython2.7:i386'”,但是我已经安装了libpython2.7。 - Andre
Jason Zhu的答案对我有效。 - mdesantis

我曾经遇到同样的问题,后来通过安装内核头文件解决了。
sudo apt-get install linux-headers-`uname -r`

安装了头文件后,DKMS被正确设置,并且在重新启动后Virtualbox正常工作。
然而,在/etc/init.d中没有vboxdrv。
注意:我最初安装的软件包是virtualbox(非ose版)。
sudo apt-get install virtualbox

谢谢,在发布问题之前我尝试过这个,但是没有成功。我选择的答案作为“答案”是因为从该网站安装成功了,而我没有想到这一点,因为我以为它们是相同的文件。 - Dr_Bunsen
1@Dr_Bunsen 没问题 :)!对我来说,安装头文件并重新启动解决了问题,但也许我安装了一些其他的软件包,这可能是有所不同的(即使我在干净安装12.10后,vbox是我最早安装的软件包之一)。 - Vincenzo Pii

我使用的是Ubuntu 12.04 64位系统,遇到了完全相同的问题。我按照这里列出的所有推荐步骤(卸载、重新安装头文件、dkms等),但仍然无法解决问题。
最终成功的方法是访问VirtualBox官方网站(https://www.virtualbox.org/wiki/Linux_Downloads),下载安装包并通过以下方式进行安装:
sudo dpkg -i virtualbox-4.2_4.2.10-84104~Ubuntu~precise_amd64.deb

然后我跑了。
sudo /etc/init.d/vboxdrv setup

而且它运作得非常好。


最佳答案说的完全一样。 不管怎样,谢谢。 - Dr_Bunsen
1刚刚重新阅读了第一篇帖子,你是对的。但是我当时有3或4个标签页打开,正在研究答案,所以只是匆匆浏览帖子并尝试一些方法,我想我当时有点沮丧,所以错过了他回答的第二部分。无论如何,我也将这个问题发布为一个更详细的指南,供像我这样的初学者参考,因为我经常忘记一些简单的事情,比如如何安装.deb软件包。谢谢 :) - andy u

在Ubuntu 12.04上,我无法通过标准软件源解决这个问题。我不得不从Virtualbox官网下载并使用4.3版本。

VirtualBox 安装
打开终端并输入以下命令以适用于 Ubuntu 12.10/Linux Mint:
echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

sudo apt-get update

sudo apt-get install dkms virtualbox-4.2

网址:http://www.upubuntu.com/2012/10/virtualbox-424-released-ppa.html

我发现的是,如果你运行的话,我找到的是这样的。
# modprobe vboxdrv

在运行虚拟机之前,您将不会看到那个符号

所以我只需添加

 vboxdrv 

在/

 /etc/modules

等同于运行

  'modprobe vboxdrv' 

在系统启动后

坏建议。这由/etc/init.d/virtualbox脚本处理。将其添加到此处会使其变得冗余且更难维护和管理。 - Evan Carroll

1)如果您尚未安装DKMS,请运行此命令

sudo apt-get install virtualbox-dkms

如果已经安装了,重新安装应该可以解决问题。
sudo apt-get install --reinstall virtualbox-dkms

2) (重新)安装过程完成后,您应该看到类似于以下内容的界面。
vboxnetflt.ko: 正在运行模块版本的完整性检查。 - 原始模块 - 在此内核中不存在原始模块 - 安装 - 正在安装到/lib/modules/3.5.0-61-generic/updates/dkms/

vboxpci.ko: 正在运行模块版本的完整性检查。 - 原始模块 - 在此内核中不存在原始模块 - 安装 - 正在安装到/lib/modules/3.5.0-61-generic/updates/dkms/

depmod.........

DKMS:安装完成。 * 停止VirtualBox内核模块 [ OK ] * 启动VirtualBox内核模块 [ OK ] 正在设置virtualbox-qt (4.1.12-dfsg-2ubuntu0.10) ... 正在处理libc-bin的触发器... ldconfig延迟处理正在进行中


3)关闭VirtualBox并等待至少10秒钟以便守护程序关闭。
4)重新打开VirtualBox并启动虚拟机,问题应该已解决。