错误:找不到内核标头。(但是它们就位)


79

我正在尝试在VirtualBox 4.04中安装Guest Additions。主机操作系统是Ubuntu桌面11.04 64位,来宾操作系统是Ubuntu服务器11.10 64位。

$ sudo ./VBoxLinuxAdditions.run

在一些输出之后,将打印此行:

The headers for the current running kernel were not found.

但是已经安装了标头,至少对应于dpkg

$ dpkg --get-selections | grep linux-headers
linux-headers-3.0.0-12            install
linux-headers-3.0.0-12-server     install
linux-headers-server              install

运行的内核是:

$ uname -a
Linux foobar 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64 x86_64 X86_64 GNU/Linux

如何解决问题,以便Guest Additions安装程序能够找到内核标头?

更新:添加了完整的输出。

The headers for the current running kernel were not found. If the module compilation fails then this could be the reason.

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

我不在乎失败#2,因为那是一台服务器,并且我不需要X服务器。但是我需要共享文件夹支持。

一些进一步的细节:

$ tail /val/log/vboxadd-install.log
..........
cc1: some warnings being treated as errors
make[2]: *** [/tmp/vbox.0/vfsmod.o] Error 1
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxsf] Error 2

这是Vboxguest添加的标准输出-是否有其他错误表明vbox内核模块未正确编译?
fossfreedom

@foss感谢您的输入,我已经更新了我的问题。
Paolo 2012年

@MihaiTodor,另一个问题是我的可能重复,而不是您所说的相反。提示,请查看发布日期。问候。
Paolo

是啊,没错。对于那个很抱歉。
Mihai Todor 2015年

Answers:


8

要使VirtualBox ubuntu服务器来宾正确接受来宾添加安装,您将需要安装最少的xorg软件包:

sudo apt-get install xserver-xorg xserver-xorg-core

这样,您将获得共享文件夹支持。

如您所见,来宾添加是一个非常大的脚本-“ VBoxLinuxAdditions.run”

您可能可以取消选择该文件-我不推荐使用此文件,因为随着发行新版本的virtualbox,通常还会增加来宾添加的版本。

另外,我建议(如果尚未安装)进行安装dkms。更新较新的ubuntu内核后,将自动编译来宾添加内核模块。如果没有dkms在内核更新由你将失去你的共享文件夹支持。

资源


32
这不能以任何方式解决问题。
Sliq

11
我强烈建议您不要安装这些软件包。他们会肿您的服务器安装,并且不能解决问题。您不会再收到有关X11的错误消息,但这是唯一的好处。
dwurf 2012年

3
@Panique解决了问题,否则我不会接受这个答案。我不是白痴
Paolo 2012年

4
狗的答案应该是公认的答案;无需安装xorg。
内森

2
-1,因为此答案具有误导性。
ortang 2015年

160

该消息具有误导性。

就我而言,它实际上缺少dkms,因此在安装附加运行之前

sudo apt-get install build-essential linux-headers-`uname -r` dkms

这也为我解决了问题。
Nick Retallack

29
使用pacakge linux-headers-generic,因为它将始终指向最新的内核头文件包。
ortang

3
更新到最新的VirtualBox是什么解决了这个问题对我来说,为Ubuntu 13.10安装目录
的Răzvan弗拉菲乌斯熊猫

7
这应该是公认的答案,您有服务器,为什么还要安装xorg?安装dkms,问题解决了!!!
Frederic YesidPeñaSánchez2014年

2
sudo apt-get install --assume-yes build-essential dkms linux-headers-$(uname -r)sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h会有所帮助

19

(即使这个问题有一个可接受的答案,我也会添加这个答案,以防其他人...)

尽管我有相同的症状,但我尝试了对这个问题的所有建议,但没有任何效果。我终于找到了这个线索,表明它的VirtualBox版本与Linux内核版本不匹配。

因此,如果没有任何效果,请尝试从以下网站安装最新版本:http : //download.virtualbox.org/virtualbox/(在撰写本文时,对于基于Debian的系统,该版本为4.2.6)。


正确。实际上,我已经遇到了“以上所有问题”:缺少内核头文件,过时的内核头文件,缺少dkms软件包以及确实过时的VBox版本。
youi 2014年

12

我通过安装dkms和升级我的VirtualBox版本来修复此错误。事实证明,旧版本的VirtualBox来宾添加通常不适用于最新的内核。


5
安装dkms,重新启动,然后重新运行对我有用的安装脚本。它也在官方文档中声明:virtualbox.org/manual/ch04.html#idp11274368
休息

较新的版本(virtualbox的版本可以从以下位置以deb文件形式下载download.virtualbox.org/virtualbox)中也包含来宾添加项iso。使用最新的固定内容为我服务。
培根


安装dkms对我来说是完美的。
Ayush

10

您需要X来使用来宾加法的答案仅仅是ridiculus。它在安装X后可以工作的原因是,它把libglib作为依赖项拉出,但是安装整个X服务器只是为了让附加组件运行,这实际上是不必要的。

您需要的所有软件包如下:

  • 必要的
  • linux-headers-`uname-r`
  • libglib2.0-0

显然,这只是您所需要的build-essential和libglib的一部分,但是与其确切地调查哪些软件包是必需的,不如让它们拉出它们的依赖关系会更容易。

旁注是,这些是与vmware计算机上的vmware等效“ VMware Tools”所需的软件包完全相同的软件包。


9

使用以下命令安装建议的软件包后:

sudo apt-get install build-essential linux-headers-`uname -r` dkms

我按照dwurf的建议升级了VirtualBox版本。这为我解决了。


1

对我而言唯一有效的解决方案是删除Virtual Box并从VirtualBox网站安装最新版本(版本:4.3.10(回购)与4.3.22(网站))。


1

我已经尝试了所有上述解决方案,并且我可以肯定我已经安装了正确的接头,但是仍然没有运气!

root@test:~# dpkg --get-selections | grep linux-headers
linux-headers-4.0.0-kali1-amd64         install
linux-headers-4.0.0-kali1-common        install
linux-headers-amd64             install

而且我还安装了最新版本的Virtual Box(截至今天5.0.4),但是尝试安装带有错误的Guest Additions时仍然出现错误

The headers for the current running kernel were not found.

解决方案:

最后,解决我问题的方法是VBoxLinuxAdditions.run从/ root目录而不是其他目录(如/ home /)运行!

我本来是VBoxLinuxAdditions.run/home/目录运行的,并一直出现此dam错误,但是从根目录使用以下命令后,就可以了,问题已解决!

cp /media/cd-rom/VBoxLinuxAdditions.run /root/
chmod 755 /root/VBoxLinuxAdditions.run
cd /root
./VBoxLinuxAdditions.run

此后,您可以简单地使用reboot,那么您就应该正确完成“ Guest Additional”和“ Full Screen”!好极了 !!!


我试过了,但还是行不通。举起手来
yaochiqkl 2016年

对我不起作用。
muneeb_ahmed 18-4-13的

1

通常,我直接通过virtualbox(安装cdrom,sh ./VBoxLinuxGuestAddtions.run)安装来宾添加项。但是,大多数linux发行版都为您提供了一个软件包,可以通过您的软件包管理器进行安装。对我来说,以下命令解决了这个问题:

sudo apt-get install virtualbox-guest-dkms

我尝试了所有其他安装解决方案,但是外接程序或安装脚本仍然存在问题。该解决方案直接解决了根本问题。谢谢!
sadakatsu

1

我认为此错误是由于使用旧版本的Virtual Box 或至少旧版本的Guest Additions ISO映像引起的。

通过下载VBox Guest Additions的新ISO并运行VBoxLinuxAdditions.run脚本,我获得了成功。我去了Virtual Box 下载站点并获取了一个新的ISO。

由于某些原因(太无聊),我无法在(Windows)主机上更新VirtualBox的版本,但是可以将新的ISO文件复制到文件系统上的本地位置。

然后,在VM窗口的“设备”菜单中,我选择了一个新的虚拟CD / DVD,并选择了下载新ISO映像的位置。

然后,在Debian VM中,我以root用户身份\media\cdrom运行新VBoxLinuxAdditions.run脚本。(我已经安装了dkms,当前的内核头文件等。)然后脚本停止错误地抱怨缺少的头文件(它们不丢失),并构建了所需的内核对象。

这样做的全部原因是为了让X.org为我提供更多的显示分辨率,并且我可以以比保守设置的默认值更高的分辨率运行VM。


0

尝试以各种K / Ubuntu 13.04 guest虚拟机编译VirtualBox Guest Additions v4.1.12时,出现与OP相同的错误。

Building the shared folder support module ...fail!

这是由于VirtualBox Guest Additions对Linux源代码(在GUEST中)的各个部分存在错误(或未达到期望)。不幸的是,Oracle选择将VirtualBox Host版本非常紧密地链接到VirtualBox Guest Additions版本,因此,如果Guest Additions中存在错误,则必须同时升级Host。

我在Ubuntu 12.04 LTS主机上安装了以下virtualbox版本:

virtualbox       4.1.12-dfsg-2ubuntu0.3
virtualbox-dkms  4.1.12-dfsg-2ubuntu0.3
virtualbox-qt    4.1.12-dfsg-2ubuntu0.3

按照以下说明:http : //www.ubuntuupdates.org/ppa/virtualbox?dist=precise

我使用以下命令升级到4.2.10-dfsg-0ubuntu2〜ubuntu12.04.1〜ppa1

sudo add-apt-repository ppa:debfx/virtualbox
sudo apt-get update
sudo apt-get install virtualbox virtualbox-dkms virtualbox-qt
cd ~/.VirtualBox
http://download.virtualbox.org/virtualbox/4.2.10/VBoxGuestAdditions_4.2.10.iso

现在,K / Ubuntu 13.04来宾可以构建和安装其VirtualBox来宾添加项:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install make gcc build-essential linux-headers-`uname -r` dkms
cd /media/VBOXADDITIONS_4.2.10_81404
sudo ./VBoxLinuxAdditions.run
sudo shutdown -r 0

0

我认为您缺少某些东西。尝试安装

  • linux-headers-3.14-kali1-common
  • linux-headers-3.14-kali1-amd64
  • linux-source-3.14
  • libdw1
  • libunwind7

对我来说是带有3.14的kali linux

最好的祝福。


0

我遇到了此问题,并通过运行以下命令解决了该问题:

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

更多信息


0
  1. sudo apt-get install --assume-yes build-essential dkms linux-headers-generic linux-headers-$(uname -r)
  2. sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

  1. sudo reboot

+奖励:共享文件夹“秘密”;)


  1. sudo gpasswd -a <username> vboxsf
  2. sudo reboot
  3. 完成。

  4. ???
  5. 利润;)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.