เคอร์เนลส่วนหัวของคุณสำหรับเคอร์เนล 3.10.0-229.el7.x86_64 ไม่พบ


12

เมื่อฉันพิมพ์คำสั่งservice vboxdrv setupในเทอร์มินัล CentOS 7 ของฉันฉันได้รับข้อผิดพลาดต่อไปนี้:

Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found  

ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร?

เมื่อฉันเปิดล็อกไฟล์โดยพิมพ์vi /var/log/vbox-install.logเนื้อหาคือ:

Uninstalling modules from DKMS
  removing old DKMS module vboxhost version  5.0.4

------------------------------
Deleting module version: 5.0.4
completely from the DKMS tree.
------------------------------
Done.
Attempting to install using DKMS

Creating symlink /var/lib/dkms/vboxhost/5.0.4/source ->
                 /usr/src/vboxhost-5.0.4

DKMS: add completed.
Failed to install using DKMS, attempting to install without
Makefile:185: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.

ข้อผิดพลาดเกิดขึ้นในกระบวนการติดตั้ง VirtualBox 5.0.4 โดยใช้คำแนะนำจากบทช่วยสอนนี้ สรุปแล้วฉันมี:

vi /etc/yum.repos.d/virtualbox.repo

เพิ่มข้อความต่อไปนี้จากนั้นบันทึกและออก:

[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc

จากนั้นให้พิมพ์ command command:

# rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install gcc make patch  dkms qt libgomp 
# yum install kernel-headers kernel-devel fontforge binutils glibc-headers glibc-devel
...
Complete!  
# cd /usr/src/kernels
# ls -al
total 12
drwxr-xr-x.  3 root root 4096 Sep 25 16:14 .
drwxr-xr-x.  4 root root 4096 Sep 25 14:17 ..
drwxr-xr-x. 22 root root 4096 Sep 25 16:14 3.10.0-229.14.1.el7.x86_64
# export KERN_DIR=/usr/src/kernels/3.10.0-229.14.1.el7.x86_64
# yum install VirtualBox-5.0
...
Complete!  
# service vboxdrv setup
Stopping VirtualBox kernel modules                         [  OK  ]
Uninstalling old VirtualBox DKMS kernel modules            [  OK  ]
Removing old VirtualBox pci kernel module                  [  OK  ]
Removing old VirtualBox netadp kernel module               [  OK  ]
Removing old VirtualBox netflt kernel module               [  OK  ]
Removing old VirtualBox kernel module                      [  OK  ]
Trying to register the VirtualBox kernel modules using DKMSError! echo
Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found at
/lib/modules/3.10.0-229.el7.x86_64/build or /lib/modules/3.10.0-229.el7.x86_64/source.
                                                       [FAILED]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules                      [FAILED]
(Look at /var/log/vbox-install.log to find out what went wrong)

ดูด้านบนสำหรับเนื้อหาของ vi /var/log/vbox-install.log

ฉันดู/lib/modules/และพบสิ่งต่อไปนี้:

[root@localhost kernels]# cd /lib/modules
[root@localhost modules]# ls -al
total 16
drwxr-xr-x.  4 root root 4096 Sep 25 15:58 .
dr-xr-xr-x. 30 root root 4096 Sep 25 16:23 ..
drwxr-xr-x.  7 root root 4096 Sep 25 15:59 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x.  8 root root 4096 Sep 25 16:24 3.10.0-229.el7.x86_64

ตามคำแนะนำของ @ EricRenouf ฉันพิมพ์uname -aและเทอร์มินัลตอบกลับด้วย:

Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

ฉันยังไม่ได้รีบูทเครื่อง แต่การสอนไม่ได้บอกว่าจะรีบูท


คุณอัปเดตเคอร์เนลของคุณโดยไม่ต้องรีบูตเครื่องในบางจุดหรืออย่างนั้น? ไม่uname -aแสดง3.10.0-229.el7.x86_64หรือ3.10.0-229.14.1.el7.x86_64? ฉันคาดเดาว่ามันคืออดีต แต่ yum ติดตั้งส่วนหัวสำหรับหลัง
Eric Renouf

คำตอบ:


12

การแก้ปัญหามีแนวโน้มที่จะพบคำถามนี้ในรุ่นสั้นเป็นรัน

sudo yum install "kernel-devel-uname-r == $(uname -r)"

ที่จะติดตั้งส่วนหัวเคอร์เนลสำหรับรุ่นของเคอร์เนลที่คุณกำลังทำงานอยู่

ฉันสงสัยว่าในบางจุดคุณทำyum updateหรือคล้ายกันและที่จริงแล้วติดตั้งเคอร์เนลใหม่ แต่คุณยังไม่ได้เริ่มใช้งาน สิ่งที่อาจเกิดขึ้นคือเมื่อคุณทำyum installตามขั้นตอนในคำถามของคุณมันจะดูเวอร์ชั่นที่ติดตั้งล่าสุดและรับส่วนหัวของสิ่งนั้น Howerver เมื่อคุณเริ่มต้นvboxdrvจะตรวจสอบเคอร์เนลที่ใช้งานอยู่และพยายามค้นหาส่วนหัวของสิ่งนั้น

เคอร์เนลที่ทำงานและติดตั้งของคุณไม่ซิงค์กัน (ซึ่งโดยปกติจะไม่ใช่ปัญหาใหญ่) แต่คุณพบกรณีที่มีปัญหา


ไม่ทำงานสำหรับฉัน No package kernel-devel-uname-r == 4.4.193-1.el7.elrepo.x86_64 available.
Sadik Özoguz

@ SadikÖzoguzหากคุณใช้งานเคอร์เนลเวอร์ชันที่คุณต้องการติดตั้งส่วนหัวคุณสามารถลองใช้yum install kernel-develบางทีอาจจะง่ายกว่าสำหรับคุณ ถ้าไม่คุณอาจลองถามคำถามใหม่ (อาจจะอ้างถึงเรื่องนี้และให้ข้อมูลเพิ่มเติมเกี่ยวกับสถานการณ์ของคุณ)
Eric Renouf

ฉันจะถามคำถามใหม่
Sadik Özoguz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.