web-dev-qa-db-ja.com

ゲストの追加:ターゲットカーネルのカーネルヘッダーが見つかりません

Oracle Linux 7にGuest Additionsをインストールするのに苦労しました。VirtualBoxバージョン6.1.4を使用しています。ゲスト追加バージョン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/

インストール手順:

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
Dyno Sedano

virtual Boxスクリプトのコードは次のとおりです。

_        if test -d /lib/modules/"$TARGET_VER"/build; then
            setup_modules "$TARGET_VER"
            depmod
        else
            info "Kernel headers not found for target kernel $TARGET_VER. [...]
_

変数_$TARGET_VER_は次のように定義されます。

_test -z "${TARGET_VER}" && TARGET_VER=`uname -r`
_

だから私は/lib/modules/$(uname -r)/buildがカーネルソースを持つ有効なディレクトリを指しているかどうかをチェックします...

1
OracleRedWings

確かではありませんが、正しいカーネルをロードしている場合でも、最新のカーネルバージョンは現在のカーネルと互換性がないため、headersを含むdevelパッケージは、これをチェックして :

rpm -qa | grep kernel

次に、正しいdevelバージョンをインストールし、gccおよびmakeがインストールされていることを確認します。

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

リポジトリが利用できない場合は、前にこれを実行してください

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
0
Reda Salih