เหตุใดฉันจึงต้องโหลดโมดูลเคอร์เนลอีกครั้งสำหรับ virtualbox หลังการอัพเดตเคอร์เนล


10

หลังจากอัพเกรดเคอร์เนลครั้งสุดท้ายใน Ubuntu 12.10 ฉันต้องโหลดโมดูลเคอร์เนลสองตัวใหม่สำหรับ Virtualbox ด้วยตนเอง

modprobe vboxdrv และ modprobe vboxnetflt

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

เป็นการอัปเดตอัตโนมัติซึ่งขอให้ฉันรีบูตเมื่อเสร็จสิ้น หลังจากรีบูตเครื่องเสมือนจะไม่ทำงานจนกว่าฉันจะโหลดโมดูลอีกครั้ง

ดังนั้นคำถามของฉันคือ: ปกติหรือไม่ มันจะเกิดขึ้นกับแพ็คเกจอื่น ๆ หรือเพียงแค่ Virtualbox? ตัวอัปเดตควรทำโดยอัตโนมัติหรือไม่ ฉันควรรายงานข้อผิดพลาดและถ้าเป็นเช่นนั้นเพื่อใคร


คุณควรเริ่มต้นใหม่หลังจากการอัพเกรดเคอร์เนลเว้นแต่ว่าคุณกำลังใช้เครื่องมือบางอย่างเพื่อทำการแก้ไขเคอร์เนลที่กำลังรันอยู่ มิฉะนั้นคุณจะใช้เคอร์เนลเก่า การรีสตาร์ทจะดูแลการโหลดโมดูล
Javier Rivera

คำตอบ:


2

โมดูลโฮสต์ VirtualBox สร้างจากซอร์สโค้ดบนเครื่องของคุณ โมดูลสำหรับเคอร์เนลหนึ่งจะไม่จำเป็นต้องทำงาน (หรือทำงานอย่างถูกต้อง) บนเคอร์เนลอื่น โดยทั่วไปจะถูกคอมไพล์ใหม่หลังจากอัพเกรดเคอร์เนล

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

ดังนั้นหากเป้าหมายของคุณคือการใช้ VirtualBox บนเคอร์เนลใหม่คุณต้องรีบูตเครื่อง โมดูลจะถูกโหลดเมื่อคุณทำ (หลังจากถูกสร้างขึ้นมาใหม่จากแหล่งหากจำเป็น)

อย่างไรก็ตามหากเป้าหมายของคุณคือการใช้โมดูลเก่ากับเคอร์เนลเก่าคุณสามารถโหลดซ้ำได้ด้วยตนเองmodprobe(ตามที่คุณทำ)

หากคุณเชื่อว่าเป็นข้อบกพร่องที่โมดูล VirtualBox ไม่ทำงานกับเคอร์เนลที่ใช้งานอยู่ก่อนที่จะรีบูตคุณสามารถรายงานข้อผิดพลาดนั้นได้ หากคุณกำลังใช้เวอร์ชันของ VirtualBox ที่ให้ไว้อย่างเป็นทางการใน Ubuntu (แทนที่จะเป็นเวอร์ชั่นจากแหล่งซอฟต์แวร์ของ Oracle) ฉันขอแนะนำให้รายงานสิ่งนี้กับ VirtualBox แบบดาวน์สตรีม (เช่นกับ VirtualBox ของ Ubuntu) โปรดอ่านคู่มือนี้อย่างละเอียดก่อน นอกจากนี้ยังมีข้อมูลที่เป็นประโยชน์เกี่ยวกับการรายงานข้อผิดพลาดในคำถามนี้

หากคุณสามารถผลิตนี้กับรุ่นต้นน้ำของ VirtualBox ( โดยเฉพาะอย่างยิ่งถ้ามันเกิดขึ้นในระบบที่ไม่ Ubuntu แต่ฉันไม่คิดว่าจำเป็นที่นี่) ผมขอแนะนำให้รายงานไป (หรือยังรายงานว่า) ต้นน้ำ (ค้นหาครั้งแรก)

ฉันแนะนำไม่ยอมรับคำตอบนี้ทันที อาจจะมีคนอธิบายได้ดีกว่าว่าทำไมโมดูลถูกยกเลิกการโหลด


2

หากคุณต้องเรียกใช้ '/etc/init.d/vboxdrv setup' หลังจากการอัปเดตและก่อนที่จะโหลดโมดูลเคอร์เนลใหม่ให้ตรวจสอบว่าติดตั้งและอัพเดต dkms อย่างถูกต้อง นี่เป็นส่วนประกอบที่คอมไพล์โมดูลใหม่เมื่อคุณรีบูตหลังจากอัพเดตเคอร์เนลก็ควรโหลดโมดูลเมื่อเสร็จสิ้น นั่นเป็นสถานการณ์เดียวที่ฉันสามารถทำให้มันล้มเหลวในการทดสอบของฉัน หากไม่เป็นเช่นนั้นฉันจะขอคำแนะนำจาก Eliah และยื่นรายงานข้อผิดพลาด

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