TL; DR นี้สามารถแก้ไขได้อย่างรวดเร็วโดยการบูตเครื่องใหม่ จากนั้นซีดีรอมจะใช้งานได้และแขกเพิ่มเติมจะสามารถติดตั้งได้:
sudo reboot
ลำดับ "ดีที่สุด" เพื่ออัปเดตเคอร์เนลบน VirtualBox ด้วยการเพิ่มคือ:
apt-get update
apt-get upgrade (or apt-get dist-upgrade)
reboot
(re)install VirtualBox Additions on the new kernel that is now running
apt-get autoremove
(เคอร์เนลเก่าถัดไปล่าสุดอาจไม่ถูกลบออกโดยอัตโนมัติด้วยเหตุผลด้านความปลอดภัยเพื่อให้คุณ "ย้อนกลับ")
มันเกิดขึ้นได้อย่างไร? (คำตอบยาวก่อนหน้า)
ปัญหาประเภทนี้จะเกิดขึ้นหากคุณ:
- อัพเกรดเคอร์เนล (พูดจาก. 66 เป็น. 67)
- ทำงาน
apt-get autoremove
และเอาเคอร์เนลที่กำลังทำงานอยู่หรือลบเคอร์เนล "เก่า" ด้วยตนเองจึงลบโมดูลทั้งหมดออกจาก /lib/modules/kernel.66
- อย่ารีบูตจึงทำให้เคอร์เนล "old" .66 ทำงานอยู่ โมดูลที่โหลดยังคงอยู่ในหน่วยความจำและทุกอย่างทำงานได้ แต่ไม่มีโมดูลใหม่ที่สามารถโหลดได้ตั้งแต่โมดูล. 66 ได้ถูกลบไปแล้ว
- ลองทำอะไรก็ได้ที่ต้องโหลดโมดูลที่ยังไม่ได้โหลด
และการติดตั้ง VirtualBox ISO อาจต้องการสิ่งนั้น - โหลดโมดูลสนับสนุน ISO9660
ไม่สามารถโหลดโมดูลที่ร้องขอได้ในขณะนี้เนื่องจากเคอร์เนลที่รัน (.66) ไม่พบสิ่งใดใน /lib/modules/kernel.66 มีโมดูลอยู่แต่อยู่ใน /lib/modules/kernel.67 ซึ่งเคอร์เนลปัจจุบัน. 66 ไม่รู้อะไรเลย (และไม่แนะนำให้โหลดโมดูลที่ไม่ตรงกัน)
แน่นอนว่าการติดตั้งเคอร์เนลแบบ uname'd จะเป็นการติดตั้งโมดูลเคอร์เนลที่กำลังรันอีกครั้งซึ่งจะทำให้ ../6/6/.../isofs.ko สามารถใช้งานได้อีกครั้งและไม่จำเป็นต้องบูตเครื่องใหม่ นี่คือการลดระดับของเคอร์เนลที่ติดตั้งและปัญหาการปรับปรุงจะยังคงอยู่ (ดูด้านล่าง)
นั่นคือเมื่อคุณรัน Additions CD มันจะติดตั้งสำหรับเคอร์เนลที่รัน. 66 ไม่ใช่เคอร์เนล. 67 ที่อัพเดต (ซึ่งยังคงไม่ทำงาน)
ถ้าคุณอยู่ในสถานการณ์เช่นนี้คุณยังสามารถแน่นอนแก้ไขได้โดยการรีบูต (ใหม่ 0.67 ทำงานเคอร์เนลจะพบโมดูล) และอาจจะโดยการโหลดโมดูลที่เป็นของ kernel ใหม่ ( isofs
มีเสถียรภาพสวย) ซึ่งนอกจากว่าคุณได้ ผ่านการอัพเกรดเคอร์เนลที่สำคัญจะยังคงเข้ากันได้ ( ยังไม่แนะนำ! ):
# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'
นี่เป็นข้อผิดพลาดรูทที่คุณได้รับ ("ประเภทระบบไฟล์ที่ไม่รู้จัก")
# uname -a
Linux virtual 3.13.0-66-generic ...
ดังนั้นเราจะตรวจสอบโมดูลรุ่นที่ติดตั้งไว้ ควรเป็น. 66:
# ls /lib/modules
3.13.0-67-generic
... แต่มีเพียงไดเรกทอรีเดียวและเป็น. 67 (ไดเรกทอรี. 66 อาจอยู่ที่นั่น แต่ว่างเปล่าในกรณีนี้du -sh /lib/modules/*
จะบอกได้ว่าไดเรกทอรีต่างๆมีพื้นที่ว่างเท่าใดซึ่งอนุญาตให้บอกได้ระหว่างไดเรกทอรีว่างกับไดเรกทอรีเต็มรูปแบบ)
การติดตั้งอิมเมจเคอร์เนลเก่าโดยไม่ต้องด้วงใหม่จะไม่สามารถแก้ไขปัญหาที่แท้จริง
คุณติดตั้งเคอร์เนล. 66 ด้วยโมดูลและส่วนหัว ตอนนี้คุณมีทั้งเมล็ดพร้อมgrub
ชุดที่จะโหลดใหม่กว่า. 67
สามารถติดตั้ง ISO CD-ROM (เนื่องจากโมดูลมีอยู่ในปัจจุบัน) และโมดูล VBox จะคอมไพล์ (เนื่องจากมีการติดตั้งส่วนหัว)
มันจะรวบรวมโมดูลสำหรับเคอร์เนลที่รัน. 66 และจะทำงาน ... ชั่วขณะหนึ่ง
ในการรีบูตครั้งแรกคุณจะพบว่าตัวเองมีเคอร์เนล. 67 โดยไม่มีการเพิ่ม VirtualBox เลย
การติดตั้งเคอร์เนลอิมเมจเก่าด้วย re-grub และรีบูตจะไม่ช่วยแก้ปัญหา
ดังที่คุณได้ทำการรีบูทและค้นหาเคอร์เนลที่มีการดาวน์เกรด ในไม่ช้า Ubuntu จะพยายามอัปเกรดและคุณจะกลับมาที่จุดเริ่มต้น (ดูด้านล่าง: "เคอร์เนลที่ลดระดับ")
การปะในโมดูล ISO จะไม่แก้ไขปัญหาจริง
โอกาสที่เราสามารถบังคับให้โหลดโมดูล ISO9660 เหมือนกันทั้งหมดเนื่องจากไม่มีการทำงานระหว่างเมล็ด 66 และ 67 และไบนารีนั้นไม่เปลี่ยนแปลงดังนั้นเราจึงลอง:
# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko
ไม่มีข้อผิดพลาด มันได้ผล เคอร์เนล. 66 โหลดโมดูลจากเคอร์เนล. 67 ลองอีกครั้งเพื่อติดตั้งซีดีรอม:
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
สิ่งนี้ยังคงไม่ช่วยได้เนื่องจากแผ่นซีดีที่กำลังติดตั้งคือ VirtualBox Additions ซึ่งต้องการให้ติดตั้งส่วนหัวเคอร์เนลที่กำลังทำงานอยู่ หากโมดูลเคอร์เนลที่กำลังทำงานอยู่ไม่มีอีกต่อไปโอกาสที่ส่วนหัวเคอร์เนลจะไม่
นอกจากนี้โมดูล Virtualbox ที่คอมไพล์ใหม่จะไม่มีที่ใดจะไปได้เนื่องจากไดเรกทอรีโมดูล. 66 ได้รับการทำความสะอาดแล้ว
แต่บอกว่าคุณแก้ไขทั้งหมด: คุณได้ทำการดาวน์เกรดเคอร์เนล (และบางส่วน) ที่มีราคาแพงและส่วนเพิ่มเติมจะหายไปในการอัพเกรดครั้งถัดไปพร้อมกับเคอร์เนล. 66 ที่เหลือเหมือนในกรณีข้างต้น
การลดระดับเคอร์เนลจะทำงาน ... ชั่วขณะหนึ่ง
หากเราลบเคอร์เนล. 67 และติดตั้งเคอร์เนล. 66 อีกครั้งด้วยโมดูลที่ทำงานแทนสิ่งต่าง ๆ จะดังขึ้นชั่วครู่หนึ่ง ไม่จำเป็นต้องบูตเครื่องใหม่เช่นเดียวกับในโซลูชัน "force ISO module" ด้านบน
และการรีบูตจะไม่สูญเสียอะไรเลยเนื่องจากไม่มีการติดตั้งเคอร์เนลเพิ่มเติม
แต่วิธีนี้เคอร์เนลจะยังคงอยู่ในรายการ "ที่จะอัพเกรด" และปัญหาเดียวกันนี้จะเกิดขึ้นไม่ช้าก็เร็ว
จริงอยู่คุณสามารถทำให้มันเกิดขึ้นได้ในช่วงเวลาที่คุณต้องการซึ่งอาจจะคุ้มค่ามากทีเดียว
เพิ่งรีบูต!
รีบูตเครื่องเคอร์เนล. 67 จะเปิดใช้งานล่าสุดและโมดูลและส่วนหัวทั้งหมดจะอยู่ที่นั่น
ดังนั้นหลังจากรีบูต Guest Additions จะทำงานและการอัปเกรดจะเป็น "ใช้"