Virtual Box 升级后,内核源丢失

Virtual Box 升级后,内核源丢失

我确实将 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

相关内容