在12.04升级后无法加载VirtualBox


33

从11.10升级到12.04后,虚拟盒停止工作。

我已经运行了以下程序来修复它:

sudo aptitude update
sudo aptitude install dkms
sudo /etc/init.d/vboxdrv setup

但是当我运行最后一条命令时,我得到:

bash: /etc/init.d/vboxdrv: No such file or directory

当我尝试

sudo /etc/init.d/virtualbox start

我得到:

 * Starting VirtualBox kernel modules
 * No suitable module for running kernel found

我也尝试过:

sudo dkms install virtualbox/4.1.2

并得到:

Error! Could not find module source directory.
Directory: /usr/src/virtualbox-4.1.2 does not exist.

我也尝试安装Linux标头:

sudo apt-get install linux-headers-$(uname -r)

但它们已经安装。

据我了解,重新安装可能无法解决问题。有没有办法修复虚拟盒子?


缺少10个信誉来给出答案的方法...但简而言之是:“ apt-get install --reinstall virtualbox-dkms”-一个人只需要事先安装build-essential和linux-header。
马丁·泽特勒

Answers:


36

我有一个类似的问题。这对我有用:

如果您找不到找不到内核源的错误类型,则可能需要执行以下操作:

sudo apt-get install build-essential linux-headers-`uname -r`

然后重新配置相关的软件包以将其插入以进行重建。

sudo dpkg-reconfigure virtualbox-dkms 
sudo dpkg-reconfigure virtualbox

这对我有用(使用GTO69的回答中的modprobe)
Matthieu

1
apt-get install build-essential linux-headers`uname -r`注意,可能还需要。
Mochan

1
sudo dpkg-reconfigure virtualbox-dkms dpkg-query: package 'virtualbox-dkms' is not installed and no information is available当我尝试的时候我会得到sudo dpkg-reconfigure virtualbox-dkms。重新安装virtualbox之后,我没有出现此错误...
Benjamin Crouzier

11

我最终使用apt-get卸载并重新安装了virtualbox。它发现缺少内核部件并安装了它们。

sudo apt-get remove virtualbox
sudo apt-get install virtualbox

1
请注意,“ sudo apt-get install virtualbox --reinstall”不会启动模块构建过程。
本·辛普森

8

这也对我有用:

sudo apt-get remove virtualbox
sudo apt-get install virtualbox

但是,我必须添加:

sudo modprobe vboxdrv

3

该答案基于@curtis 的答案,大概是该答案的特定版本

您使用错误的版本来构建dkms。尝试这个:

sudo dkms install virtualbox/4.1.12

它似乎为我工作。当然,这是在您安装virtualbox-dkms软件包之后。

版本可以更改(以粗体在报价时给出)。

因此,请尝试:

ls -d /usr/src/virtualbox*

这会给你像

/usr/src/virtualbox-version

现在获取版本并在上面的命令中使用它,例如

sudo dkms install virtualbox/version

如果那没有给你

模块virtualbox / 版本已安装在内核kernelVersion -generic / 体系结构上

在那之后运行以下命令(摘自帖子的其他答案)

  • 重建内核模块

    sudo dpkg-reconfigure virtualbox-dkms

  • 重新安装

    sudo apt-get remove virtualbox && sudo apt-get install virtualbox

并根据需要加载模块 sudo modprobe vboxdrv

如果DKMS显示错误,提示缺少某些内核,则只需安装内核,然后重新构建/重新安装virtualbox。

编辑:显然这也存在于12.10


1

您使用错误的版本来构建dkms。尝试这个:

sudo dkms install virtualbox/4.1.12

它似乎为我工作。当然,这是在您安装virtualbox-dkms软件包之后。


0

我有同样的问题,并且在日志文件中

DKMS make.log for virtualbox-4.1.12 for kernel 3.8.0-31-generic(x86_64)Mo 7.Oct 14:43:01 CEST 2013 make:Verzeichnis中的Gehe'/usr/src/linux-headers-3.8。 0-31通用LD /var/lib/dkms/virtualbox/4.1.12/build/built-in.o LD /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/built-in.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/linux/SUPDrv-linux.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/SUPDrv .o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/SUPDrvSem.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/alloc -r0drv.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/initterm-r0drv.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build /vboxdrv/r0drv/memobj-r0drv.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/mpnotification-r0drv。o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/powernotification-r0drv.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/ r0drv / linux / assert-r0drv-linux.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/alloc-r0drv-linux.o CC [M] / var / lib / dkms / virtualbox / 4.1.12 / build / vboxdrv / r0drv / linux / initterm-r0drv-linux.o CC [M] /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/ memobj-r0drv-linux.o /var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:在Funktion»rtR0MemObjNativeMapUser«:/ var / lib / dkms / virtualbox /4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1451:38:Fehler:»VM_RESERVED«nicht deklariert(Dieser Funktion中的erste Benutzung)/var/lib/dkms/virtualbox/4.1。 12 / build / vboxdrv / r0drv / linux / memobj-r0drv-linux.c:1451:38:Anmerkung:jeder nicht deklarierte Bezeichner wird nur einmalfürjede Funktion,在der vorkommt,gemeldet make [2]:* [/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o] Fehler 1 make [1]: [/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv] Fehler 2品牌:* * [ 模块 /var/lib/dkms/virtualbox/4.1.12/build] Fehler 2品牌:Verlasse Verzeichnis'/ usr /src/linux-headers-3.8.0-31-generic'

我能做什么?

3.8.0-31通用

micha @ Aspire-V3-771:〜$ sudo dpkg-reconfigure virtualbox-dkms [sudo]的micha密码:

--------卸载开始--------模块:virtualbox版本:4.1.12

内核:3.5.0-18-通用(x86_64)

状态:卸载之前,此模块版本在此内核上为ACTIVE。

vboxdrv.ko:-卸载-从以下位置删除:/lib/modules/3.5.0-18-generic/updates/dkms/-原始模块-在此内核上找不到该模块的原始模块。-使用dkms install命令重新安装任何以前的模块版本。

vboxnetadp.ko:-卸载-从以下位置删除:/lib/modules/3.5.0-18-generic/updates/dkms/-原始模块-在此内核上找不到该模块的原始模块。-使用dkms install命令重新安装任何以前的模块版本。

vboxnetflt.ko:-卸载-从以下位置删除:/lib/modules/3.5.0-18-generic/updates/dkms/-原始模块-在此内核上找不到该模块的原始模块。-使用dkms install命令重新安装任何以前的模块版本。

vboxpci.ko:-卸载-从以下位置删除:/lib/modules/3.5.0-18-generic/updates/dkms/-原始模块-在此内核上找不到该模块的原始模块。-使用dkms install命令重新安装任何以前的模块版本。

depmod ...

DKMS:卸载完成。


删除模块版本:4.1.12

完全来自DKMS树。

做完了 正在加载新的virtualbox-4.1.12 DKMS文件...仅针对通用3.8.0-31构建针对3.8.0-31通用构建初始模块错误!内核上模块构建的错误返回状态:3.8.0-31-generic(x86_64)有关更多信息,请参阅/var/lib/dkms/virtualbox/4.1.12/build/make.log。*停止VirtualBox内核模块[确定] *启动VirtualBox内核模块*未找到适合运行内核的模块[失败] invoke-rc.d:初始化脚本virtualbox,操作“重新启动”失败。micha @ Aspire-V3-771:〜$


我现在已经从virtualbox.org安装了Virtualbox,并且现在正在运行... :)
lupopa 2013年
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.