找不到内核 2.6.32-504.e16.x86_64 的内核头文件

找不到内核 2.6.32-504.e16.x86_64 的内核头文件

我在 virtualbox 上安装了 centos 6.6。为了使用复制/粘贴、共享文件夹等功能,我需要在其上安装来宾附加功能。

我点击了Device -> Insert Guest Additions CD Image然后执行以下操作:

在此输入图像描述

但是,当我尝试运行时,./VBoxLinuxAdditions run出现以下错误。我粘贴屏幕截图是因为我无法复制/粘贴,因为我没有来宾添加。

错误:

在此输入图像描述

日志:

在此输入图像描述

/lib/modules/2.6.32-504.e16.x86_64/build和文件夹均/lib/modules/2.6.32-504.e16.x86_64/source存在。

在此输入图像描述

当我yum remove kernel-devel再次使用此版本进行安装时yum install kernel-devel,会尝试安装该版本。笔记这是2.6.32-573.18.1.e16

在此输入图像描述

我做了什么

下列的这个答案我做了sudo yum install "kernel-devel-uname-r == $(uname -r)"但不起作用

在此输入图像描述

答案1

您的ls -al /lib/modules/2.6.32-504.el6.x86_64/命令输出表明,它实际上是指向目录树同一级别目录的/lib/modules/2.6.32-504.el6.x86_64/source符号链接。build此外,符号链接显示在红色的,表明链接已损坏,链接目标显示(-> build)有红色背景,表明链接目标实际上不存在。

您似乎还2.6.32-573.18.1.el6.x86_64安装了较新的内核版本,但尚未运行。尽管您通常会并行安装多个内核版本,但这并不适用于软件包kernel-devel:它通常会跟踪您安装的最新发行版内核。

我的猜测是,随着2.6.32-573.18.1.el6.x86_64内核版本的安装,kernel-devel软件包也进行了更新以匹配它。重新启动后,您将运行该内核版本而不是当前版本,然后您可以再次成功构建第三方内核模块,例如 VirtualBox Guest Additions 的模块。

您链接的答案使用的kernel-devel-uname-r == $(uname -r)语法显然是“愚蠢的黑客”根据托尔斯滕·利姆休斯的说法,并且可能在 Fedora 19 和 Fedora 21 之间的某个地方已经过时。

答案2

您是否可以在正在运行的计算机上使用“设备”选项卡安装来宾添加,而不是使用 ISO?

安装来宾添加

相关内容