升级Virtual Box后,缺少内核源代码

我确实将VirtualBox从4.1升级到4.2

无论何时我想加载我的Win XP VDI,它都会给我以下错误:

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

VirtualBox Linux内核驱动程序( vboxdrv )未加载或/dev/vboxdrv存在权限问题。 请执行重新安装内核模块

 /etc/init.d/vboxdrv setup 

作为根。 如果您的发行版中有可用的,则应首先安​​装DKMS包。 此包跟踪Linux内核更改,并在必要时重新编译vboxdrv内核模块。

我运行建议的步骤重新安装内核模块,日志文件如下:

 Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again. Stop. Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again. Stop. Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again. Stop. 

我仍然无法重新运行我的win虚拟XP vdi文件。

有人有任何线索吗?

看起来你没有安装内核头文件,dkms需要安装Virtual Box内核驱动器,安装然后运行:

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

然后,

 /etc/init.d/vboxdrv setup 

应该管用。

在VirtualBox 5中也可能发生同样的情况。现在将vboxdrv脚本称为vboxadd (我猜),逻辑如下:

 KERN_VER=`uname -r` KERN_DIR="/lib/modules/$KERN_VER/build" if [ -d "$KERN_DIR" ]; then KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true` if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then return 0 fi fi 

所以基本上你需要确保你已经安装了VBoxGuestAdditions并且内核源代码存在于/lib/modules/$(uname -r)/build 。 如果它们不匹配,则命令将失败。

这是一个简单的测试:

 $ sudo sh -x /opt/VBoxGuestAdditions-5.0.16/init/vboxadd setup 2>&1 | grep KERN + KERN_VER=2.6.32-573.18.1.el6.x86_64 + KERN_DIR=/lib/modules/2.6.32-573.18.1.el6.x86_64/build 

因此,请确保安装所有依赖项,例如

 sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso 

然后确保/lib/modules/$(uname -r)/build指向/usr/src/kernels/$(uname -r)

并仔细检查这两个命令是否匹配:

 $ sudo make -sC /usr/src/kernels/$(uname -r) kernelrelease 2.6.32-642.1.1.el6.x86_64 $ uname -r 2.6.32-642.1.1.el6.x86_64