内核为 3.8.0-31 的 VirtualBox Guest 扩展不起作用

内核为 3.8.0-31 的 VirtualBox Guest 扩展不起作用

我的 Ubuntu 12.04 LTS(在 Windows 7 PC 上的 VirtualBox 中运行)刚刚更新到内核 3.8.0-31。

之后我尝试安装 vitualbox-guest-additions,但安装失败并出现错误,提示未找到适合正在运行的内核的模块。

The make.log said something like: 
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: In function ‘rtR0MemObjNativeMapUser’:
/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1451:38: error: ‘VM_RESERVED’ undeclared (first use in this function)
/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1451:38: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[1]: *** [/var/lib/dkms/virtualbox/4.1.12/build/vboxdrv] Error 2
make: *** [_module_/var/lib/dkms/virtualbox/4.1.12/build] Error 2
make: Leaving directory `/usr/src/linux-headers-3.8.0-31-generic'

我能做些什么?

答案1

安装 VirtualBox 客户机添加组件(构建 dkms 模块)需要运行内核的内核头包。

为了修复此问题,请安装内核头3.8.0-31-generic和 build-essential 包。

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

挂载 Guest Additions ISO(如果没有 X)并通过运行安装脚本来安装 Guest Addition

mount /dev/cdrom /media
cd /media
/path/to/./VBoxLinuxAdditions.run

相关内容