VirtualBox 无法构建客户添加模块

VirtualBox 无法构建客户添加模块

在安装 GuestAdditions 时遇到问题虚拟盒/流浪汉在 Mac OS X 10.8 (Mountain Lion) 下运行。我之前没有使用过 VB/Vagrant,也没有使用过 Linux,因此寻求一些指导...

错误!在 /lib/modules/2.6.32-38-server/build 或 /lib/modules/2.6.32-38-server/source 中找不到内核 2.6.32-38-server 的内核头文件。

可以在 shell 输出底部的上下文中找到错误(如下)

vagrant@lucid64:~$ sudo apt-get install dkms -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  fakeroot make patch
Suggested packages:
  make-doc diffutils-doc
The following NEW packages will be installed:
  dkms fakeroot make patch
0 upgraded, 4 newly installed, 0 to remove and 23 not upgraded.
Need to get 458kB of archives.
After this operation, 2,359kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ lucid/main make 3.81-7ubuntu1 [166kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ lucid/main patch 2.6-2ubuntu1 [121kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ lucid-updates/main dkms 2.1.1.2-2ubuntu1 [70.8kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ lucid/main fakeroot 1.14.4-1ubuntu1 [101kB]
Fetched 458kB in 1s (337kB/s) 
Selecting previously deselected package make.
(Reading database ... 44864 files and directories currently installed.)
Unpacking make (from .../make_3.81-7ubuntu1_amd64.deb) ...
Selecting previously deselected package patch.
Unpacking patch (from .../patch_2.6-2ubuntu1_amd64.deb) ...
Selecting previously deselected package dkms.
Unpacking dkms (from .../dkms_2.1.1.2-2ubuntu1_all.deb) ...
Selecting previously deselected package fakeroot.
Unpacking fakeroot (from .../fakeroot_1.14.4-1ubuntu1_amd64.deb) ...
Processing triggers for man-db ...
Setting up make (3.81-7ubuntu1) ...
Setting up patch (2.6-2ubuntu1) ...
Setting up dkms (2.1.1.2-2ubuntu1) ...

Setting up fakeroot (1.14.4-1ubuntu1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode.

vagrant@lucid64:~$ sudo vbox/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.1.18 Guest Additions for Linux.........
VirtualBox Guest Additions installer
Removing installed version 4.1.16 of VirtualBox Guest Additions...
tar: Record size = 16 blocks
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.

Building the main Guest Additions module ...fail!
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions ...done.
Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)

查看/var/log/vboxadd-install.log:

vagrant@lucid64:~$ cat /var/log/vboxadd-install.log
Uninstalling modules from DKMS
Attempting to install using DKMS

Creating symlink /var/lib/dkms/vboxguest/4.1.18/source ->
                 /usr/src/vboxguest-4.1.18

DKMS: add Completed.

Error! Your kernel headers for kernel 2.6.32-38-server cannot be found at
/lib/modules/2.6.32-38-server/build or /lib/modules/2.6.32-38-server/source.
You can use the --kernelsourcedir option to tell DKMS where it's located, or you could install the linux-headers-2.6.32-38-server package.
Failed to install using DKMS, attempting to install without
/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

答案1

错误!在 /lib/modules/2.6.32-38-server/build 或 /lib/modules/2.6.32-38-server/source 中找不到内核 2.6.32-38-server 的内核头文件。

您可以使用该--kernelsourcedir选项告诉 DKMS 它位于何处,或者您可以安装该linux-headers-2.6.32-38-server 包。

无法使用 DKMS 安装,尝试在不使用 /tmp/vbox.0/Makefile.include.header:97 的情况下进行安装:*** 错误:无法找到当前 Linux 内核的源。指定 KERN_DIR= 并再次运行 Make。停止。

# sudo apt-get install linux-headers-2.6.32-38-server

然后再试一次。

相关内容