我的 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