来宾附加信息:未找到目标内核的内核头

来宾附加信息:未找到目标内核的内核头

我一直很难在 Oracle Linux 7 上安装 Guest Additions。我有 VirtualBox 版本 6.1.4。我有 Guest Additions 版本 6.0.4

该机器的内核版本为 4.14.35-1902.7.3.1。我成功地在其上安装了内核版本 4.1.12-124.24.3。为此,我遵循了此页面上的说明:https://www.thegeekdiary.com/centos-rhel-7-change-default-kernel-boot-with-old-kernel/

最新文章: (https://www.thegeekdiary.com/how-to-change-the-default-kernel-boot-from-old-kernel-in-centos-rhel-8/

安装步骤:

yum -y install kernel-uek-firmware-4.1.12-124.24.3.el6uek.noarch.rpm
yum -y install kernel-uek-4.1.12-124.24.3.el6uek.x86_64.rpm
yum -y install kernel-uek-devel-4.1.12-124.24.3.el6uek.x86_64.rpm

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
grub2-set-default 0 #depends on the above result
grub2-mkconfig -o /boot/grub2/grub.cfg
And reboot.

当我运行时,uname -r我得到了这个:4.1.12-124.24.3.el6uek.x86_64

至此,一切都很顺利,直到我必须安装 Guest Additions。

当我运行 ./VBoxLinuxAdditions.run 时返回此错误:

Verifying archive integrity... All good.
Uncompressing VirtualBox 6.0.4 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 6.1.4 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Kernel headers not found for target kernel
4.1.12-124.24.3.el6uek.x86_64. Please install them and execute
  /sbin/rcvboxadd setup
modprobe vboxguest failed
The log file /var/log/vboxadd-setup.log may contain further information.

我重新运行/sbin/rcvboxadd setup,但日志消息还是一样。日志文件只显示“modprobe vboxguest failed”。我还将 KERN_DIR 环境变量导出为 /usr/src/kernels/4.1.12-124.24.3.el6uek.x86_64

我做错了什么?有人知道如何正确安装吗?如果有人有任何想法,我将非常感激您的反馈。

答案1

在我的 CentOS 6 VM 上,内核开发包未安装,所以我必须执行以下操作:

yum install kernel-devel

2.6.32-754.31.1.el6然而,这导致内核开发版本 ( ) 和实际内核版本 ( )不匹配2.6.32-754.el6。您可以使用 检查所有这些版本yum list kernel*。因此,我更新了内核版本并重新启动:

yum update kernel kernel-headers
reboot now

在我的系统上,Guest Additionsautorun.sh文件在此之后仍然没有完成,因为gcc缺少软件包:

yum install gcc

安装后gcc,Guest Additions 安装成功,并在另一次重启后生效。

答案2

即使获得了正确的软件包,我仍然遇到问题。我首先确保检查并更新了我的内核头文件...

    yum update kernel kernel-headers

...确保我已经安装了适当的先决条件..

    yum -y install gcc make

...然后我通过运行强制正确的版本:

    sudo yum -y install kernel-devel-$(uname -r)

这一切都假设uname -r显示正确的值。

答案3

我不确定,但我认为即使你加载了正确的内核,开发包含的包标题由于最新的内核版本与当前内核不兼容,因此请检查以下内容:

rpm -qa | grep kernel

然后安装正确的开发版本并确保海湾合作委员会制作安装:

yum -y install gcc make
yum -y install kernel-uek-devel-`uname -r`

如果 repo 不可用,请先执行此操作

yum-config-manager --add-repo=yum.oracle.com/repo/OracleLinux/OL6/UEKR4/archive/x86_64
sudo yum install -y kernel-uek-4.1.12-124.24.3.el6uek.x86_64
sudo yum install -y kernel-uek-devel-4.1.12-124.24.3.el6uek.x86_64

答案4

消息称:

VirtualBox Guest Additions: Kernel headers not found for target kernel
5.3 (in may case).

目标内核是操作系统正在使用的内核版本。你可以使用以下命令查看它:

uname -r

5.3

内核头文件由 kernel-devel 包制作:你可以使用以下命令查看 kernel-devel 的版本:

dnf list kernel-devel*

kernel-devel.x86_64                             5.10

我有内核版本 5.10 的内核头文件,但是虚拟盒正尝试使用内核版本 5.3 的头文件。

您必须使用内核版本 5.10 而不是 5.3 来启动操作系统

查看你的内核版本是否为 5.10:

dnf list kernel-core*

kernel-core.x86_64                             5.3                           @updates 
kernel-core.x86_64                             5.9                          @updates 
kernel-core.x86_64                             5.10

就在那儿。

现在您只需要更新 grub2 以便它可以看到新的内核版本:

grub2-mkconfig –o /boot/grub2/grub.cfg

reboot

现在再次检查操作系统正在使用哪个内核版本:

 uname –r

 5.10

这为我解决了这个问题。

相关内容