VirtualBox ไม่เริ่มทำงานหลังจากการอัพเกรดเคอร์เนล


15

เมื่อวานนี้ฉันได้รับการอัพเกรดเคอร์เนลและหลังจากรีบูต VirtualBox หยุดทำงาน

นี่คือข้อมูลระบบของฉัน (หลังจากอัพเกรดเคอร์เนล):

matteo@workstation:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
matteo@workstation:~$ uname -a
Linux workstation 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

ฉันติดตั้ง VirtualBox นานแล้วด้วย

sudo apt install linux-headers-$(uname -r)
sudo apt install virtualbox-dkms virtualbox virtualbox-qt

ใช้ในชีวิตประจำวันและไม่เคยมีปัญหากับการปรับปรุงเคอร์เนล ข้อผิดพลาดที่ฉันได้รับตอนนี้คือ

matteo@workstation:~$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Exec format error
matteo@workstation:~$ dmesg | tail -n 1
[ 1413.167311] vboxdrv: version magic '4.4.0-116-generic SMP mod_unload modversions ' should be '4.4.0-116-generic SMP mod_unload modversions retpoline '

ฉันพบโพสต์ในฟอรัมพร้อมด้วยข้อความแสดงข้อผิดพลาดที่นี่เมื่อสามวันก่อน แต่น่าเสียดายที่ไม่มีการแก้ไข Therfore ฉันพยายามที่จะลบแพ็ค VirtualBox ออกจาก repo Ubuntu และติดตั้ง 5.2 ล่าสุดโดยใช้ขั้นตอนนี้ อย่างไรก็ตามแม้หลังจากรีบูตเครื่องข้อผิดพลาดยังคงอยู่

ในกรณีนี้ฉันควรทำอย่างไร


นี้เกิดขึ้นกับโมดูลอื่น ๆ (เช่นเกินไปbugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937และanswers.launchpad.net/ubuntu/+question/664826 )
ricab

2
วิธีแก้ปัญหาสำหรับช่วงเวลาหนึ่งคือการโหลดเคอร์เนลก่อนหน้า (4.4.0-112) ในด้วง
ricab

สำหรับผู้ที่สงสัยวิธีการดำเนินการข้อเสนอแนะโดย @ricab: เพียงแค่ถือshiftในขณะที่บูตเลือก "ตัวเลือกขั้นสูงสำหรับอูบุนตู" และเลือกเคอร์เนลรุ่นเก่าจากเมนูตามที่อธิบายไว้ที่นี่ ฉันสามารถยืนยันได้ว่าเวอร์ชันเคอร์เนลก่อนหน้าของฉัน (4.4.0-112) ไม่มีปัญหาที่อธิบายไว้ในคำถามดังนั้นจึงเป็นวิธีแก้ปัญหาที่สามารถใช้งานได้จนกว่าจะมีการแก้ไขปัญหา
matpen

ใน 16.04 มันเป็นEscกุญแจสำคัญ
D.Bugger

@ D.Bugger ใน 16.04 ของฉันshiftทำงาน มันไม่ใช่กรณีของฉัน แต่ฉันได้อ่านจากบางคนที่ได้รับมันเพื่อทำงานเฉพาะกับ "กะขวา" หรือ "กะซ้าย"
matpen

คำตอบ:


9

ฉันกำลังเผชิญกับปัญหาเดียวกัน หลังจากเคอร์เนลอัพเกรดเวอร์ชั่น gcc ของฉันแสดงเป็น 5.4.1 การลดรุ่นเป็น 5.4.0 ช่วยให้ฉันมี retpoline สำหรับโมดูลเคอร์เนล vboxdrv

ทำตามขั้นตอนจากลิงค์นี้ช่วยฉันแก้ปัญหาของฉัน:

sudo apt-get install ppa-purge
sudo ppa-purge ppa:ubuntu-toolchain-r/test
#Select gcc version 5 using update-alternatives manually
sudo update-alternatives --config gcc

หลังจากขั้นตอนเหล่านี้ gcc --version ควรเป็น (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.9) 5.4.0 20160609

จากนั้นล้างส่วนหัวลินุกซ์ใหม่ทั้งหมด (4.4.0-116)

sudo apt-get purge linux-headers-4.4.0-116 linux-headers-4.4.0-116-generic linux-image-4.4.0-116-generic linux-image-extra-4.4.0-116-generic linux-signed-image-4.4.0-116-generic

ติดตั้งอีกครั้ง

sudo apt-get install linux-generic linux-signed-generic

จากนั้นติดตั้ง Virtualbox ใหม่ฉันติดตั้ง Virtualbox-5.2 ครั้งนี้ แต่ VirtualBox เวอร์ชันเริ่มต้น 5.0 ควรทำงานได้ดีเช่นกัน

sudo apt-get purge virtualbox-dkms virtualbox virtualbox-qt
sudo apt-get install virtualbox-5.2

และเรามีการสนับสนุน retpoline ในโมดูลล่าสุด

anirudh@AHDRMD34579:~$ modinfo vboxdrv 
filename:       /lib/modules/4.4.0-116-generic/misc/vboxdrv.ko
version:        5.2.6 r120293 (0x00290000)
license:        GPL
description:    Oracle VM VirtualBox Support Driver
author:         Oracle Corporation
srcversion:     4880B21EFF1B605D6402982
depends:        
vermagic:       4.4.0-116-generic SMP mod_unload modversions retpoline 
parm:           force_async_tsc:force the asynchronous TSC mode (int)

งานที่ยอดเยี่ยมช่วยฉันหลังจาก 6 เดือนโดยไม่สามารถเข้าถึงเครื่องของฉันได้
George Udosen

ฉันต้องการให้คะแนนทั้งหมดในโลก !!!!! :-) แต่ฉันสามารถโหวตคุณได้ครั้งเดียวเท่านั้น
shawty

4

ปัญหาที่เกี่ยวข้องที่ระบุไว้ในความคิดเห็นของ @ricab ได้รับการสืบหาถึงปัญหากับเคอร์เนลใหม่ที่ต้องการระดับ gcc ในระดับหนึ่งเพื่อรวบรวมโมดูลเคอร์เนลได้สำเร็จ

ในระบบของฉันการอัปเดต gcc ถูกผลักออกหลังจากอัปเดตเคอร์เนลทำให้คอมไพล์ล้มเหลว

เมื่อพบสาเหตุที่แท้จริงแล้วฉันสามารถแก้ไขระบบได้โดยยกเลิกการติดตั้งและติดตั้งเคอร์เนลใหม่ นั่นแก้ไขไดรเวอร์กราฟิกของฉัน แต่ฉันต้องsudo /sbin/vboxconfigแก้ไข virtualbox หลังจากบูตเข้าสู่เคอร์เนลใหม่

ระบบของฉันคือ 14.04 ดังนั้นฉันไม่สามารถแนะนำให้คุณทราบว่ารุ่น gcc ที่เหมาะสมสำหรับระบบ 16.04 ของคุณ แต่ได้มีการกล่าวถึงที่https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1750937


ขอบคุณสำหรับลิงค์ น่าเสียดายที่ดูเหมือนจะไม่ทำงานในกรณีของฉันสำหรับ Xenail (และฉันไม่ได้อยู่คนเดียว ) ฉันไม่ได้รับการอัพเกรด GCC เมื่อเร็ว ๆ นี้ แต่ผมอยู่แล้วในและพยายามแม้จะมีgcc 5.4.1 gcc 7.2.0
matpen


@jfs ถูกต้อง แต่ฉันต้องการ ppa gcc ดังนั้นฉันจึงไม่สามารถทดสอบได้ในขณะนี้
matpen

-1

ฉันมีปัญหานี้เมื่อเร็ว ๆ นี้และโพสต์คำถามที่นี่เกี่ยวกับมัน ฉันขุดบ้างและนี่เป็นปัญหาที่ทราบกันดี

รายงานข้อผิดพลาดอยู่ในลิงค์ของฉัน

Virtualbox หยุดทำงานทันที

ฉันคิดว่ามติทั่วไปคือการบูตเข้าสู่เคอร์เนล 4.4 จนกว่าปัญหาจะได้รับการแก้ไข (เป็นวิธีแก้ปัญหาที่ง่ายที่สุดสำหรับฉัน)


1
ถ้าคำตอบของคุณเป็นหลักอ้างอิงไปยังคำถามอื่นมันจะดีกว่าที่จะธงคำถามนี้เป็นซ้ำอีกครั้งหนึ่งคุณได้รับ 15 ชื่อเสียง หากคุณมีชื่อเสียงอย่าลืมโหวตให้กับคำตอบที่คุณเห็นว่ามีประโยชน์!
David Foerster

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