我确实将 VirtualBox 从 4.1 升级到了 4.2
每当我想要加载我的 Win XP VDI 时,它都会出现以下错误:
内核驱动程序未安装(rc=-1908)
VirtualBox Linux 内核驱动程序 ( vboxdrv
) 未加载或存在权限问题/dev/vboxdrv
。请通过执行以下指令重新安装内核模块
/etc/init.d/vboxdrv setup
以 root 身份运行。如果您的发行版中提供 DKMS 包,则应首先安装它。此包会跟踪 Linux 内核更改,并在必要时重新编译 vboxdrv 内核模块。
我按照建议的步骤重新安装内核模块,日志文件如下:
Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
Makefile:181: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
我仍然无法重新运行我的 win 虚拟 XP vdi 文件。
有人知道吗?
答案1
看起来您没有安装内核头,dkms 需要安装 Virtual Box 内核驱动器,安装后运行:
sudo apt-get install linux-headers-`uname -r`
然后,
/etc/init.d/vboxdrv setup
应该管用。
答案2
同样的情况可能发生在 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