ปัญหานี้เริ่มต้นเมื่อฉันติดตั้งการอัปเดต Ubuntu วันนี้ 125 แพ็คเกจต้องได้รับการอัปเดต ฉันวิ่ง อัปเดต sudo apt
ติดตามโดย รายการ apt -- อัพเกรดได้
และ sudo apt อัพเกรด
บนแล็ปท็อปของฉัน จากนั้นหันไปใช้เครื่องเดสก์ท็อปเพื่อทำงานอื่นต่อไป ฉันสังเกตเห็นว่าหน้าจอแล็ปท็อปมืดลง และเมื่อฉันมองดู มีเคอร์เซอร์กะพริบอยู่ที่มุมบนซ้าย ไม่มีอะไรอื่นบนหน้าจอ ฉันลองเปลี่ยนไปใช้เทอร์มินัลเสมือนอื่น แต่ไม่ได้รับการตอบสนองใดๆ ฉันกดปุ่มเปิดปิดชั่วครู่เพื่อดูว่าจะได้รับการตอบสนองหรือไม่ และแล็ปท็อปก็ปิดลง เมื่อฉันรีสตาร์ทแล็ปท็อป มันกลับไปที่หน้าจอเคอร์เซอร์กะพริบเหมือนเดิม อย่างไรก็ตาม ครั้งนี้ ฉันสามารถเปิดเทอร์มินัลเสมือนได้โดยการกด Ctrl-Alt-F1
และฉันเข้าสู่ระบบ ฉันตรวจสอบรายการแพ็คเกจที่ได้รับการติดตั้งโดยเจ้าหน้าที่สนับสนุนด้านเทคนิค และเขาระบุว่าปัญหาเกิดจากการอัปเกรดไดรเวอร์วิดีโอที่ไม่ดี จาก nvidia-driver-460
ถึง nvidia-driver-470
และบอกว่าเราต้องติดตั้ง nvidia-driver-495
.
เมื่อฉันพยายามติดตั้งไฟล์ nvidia-driver-495
ฉันได้รับข้อความแสดงข้อผิดพลาดว่า dpkg
ถูกขัดจังหวะและฉันต้องวิ่ง sudo dpkg --configure -a
ซึ่งดูเหมือนว่าจะติดตั้งทุกอย่างที่รอดำเนินการจากรายการแพ็คเกจ 125 รายการ ฉันลองติดตั้งแล้ว nvidia-driver-495
อีกครั้ง แต่ที่บอกว่ามันหายไป nvidia-driver-510
เป็นที่พึ่งพิง. จากนั้นฉันก็วิ่ง sudo apt ติดตั้ง
ติดตั้ง nvidia-driver-510
และทั้งหมด ของมัน การพึ่งพา ฉันตรวจสอบเทอร์มินัล GUI ที่ Ctrl-Alt-F7
และมันยังมีเคอร์เซอร์กะพริบอยู่ จากนั้นฉันก็วิ่ง sudo apt ติดตั้ง nvidia-driver-495
ซึ่งไม่ได้สร้างข้อผิดพลาดใด ๆ - แต่ฉันยังมีเคอร์เซอร์กะพริบอยู่ที่เทอร์มินัล GUI เท่านั้น
ฉันรีบูทแล็ปท็อปและได้รับ
ข้อผิดพลาด: ไม่พบคำสั่ง `hwmatch'
ข้อผิดพลาด: ไม่สามารถจัดสรร initrd
กดปุ่มใดก็ได้เพื่อดำเนินการต่อ...
ตามด้วยการตื่นตระหนกของเคอร์เนล ฉันรีสตาร์ทแล็ปท็อปและได้รับเพียง ไม่สามารถจัดสรร initrd
ข้อความ ตามด้วยการตื่นตระหนกของเคอร์เนลอีกครั้ง เมื่อฉันรีสตาร์ทแล็ปท็อปอีกครั้ง ฉันได้รับเมนู GRUB และสามารถบูตเครื่องโดยใช้เคอร์เนลก่อนหน้า 5.13.0-28
.
หลังจากการค้นคว้าบางอย่าง ฉันก็วิ่ง sudo update-initramfs -c -k 5.13.0-30-generic
และรีบูตเครื่อง - และมีรูปแบบความล้มเหลวเหมือนเดิม ในที่สุดบูตกลับเข้าไปใน -28
เคอร์เนลเพื่อดำเนินการต่อ ฉันสะกิดอีกเล็กน้อยแล้ววิ่ง ปรับปรุงด้วง
รีบูต - และผ่านวงจรเดิมอีกครั้ง
ฉันพยายามลบไฟล์ -30
ไฟล์เคอร์เนลจาก /บูต
, วิ่ง อัปเดต sudo apt
ซึ่งกล่าวว่าแพ็คเกจทั้งหมดเป็นปัจจุบันและทำงานอยู่ sudo apt ลบ
เพื่อลบทั้งหมด -30
ไฟล์, กำลังทำงาน ปรับปรุงด้วง
อีกครั้ง - และ การปรับปรุงที่เหมาะสม
ยังคงยืนยันว่าแพ็คเกจทั้งหมดเป็นปัจจุบัน: มันเหมือนกับว่ามันรู้ว่าได้ติดตั้งเคอร์เนลเวอร์ชันใหม่แล้ว แต่ก็ไม่สามารถสังเกตเห็นได้เมื่อมันถูกลบออก ฉันรีบูตแล็ปท็อปซึ่งประสบความสำเร็จเนื่องจากเริ่มทำงานก่อนหน้านี้ -28
เคอร์เนล - และ การปรับปรุงที่เหมาะสม
ยังไม่มีเงื่อนงำเกี่ยวกับการอัพเกรดเคอร์เนล ฉันวิ่ง sudo apt-get ลบ --purge
กับรายชื่อ -30
ไฟล์ซึ่งลบเฉพาะไฟล์การกำหนดค่าเนื่องจากตัวแพ็คเกจถูกลบไปแล้ว - และ การปรับปรุงที่เหมาะสม
ยังคงเพิกเฉยต่อเคอร์เนลใหม่อย่างมีความสุข
ฉันวิ่ง รายการ apt --installed | grep linux-อิมเมจ
ซึ่งแสดงรายการเมล็ดทั้งสองที่ยังคงติดตั้งอยู่ -27
และ -28
. ฉันวิ่ง apt-cache ค้นหา linux-image|grep 13|grep ทั่วไป
ซึ่งให้รายชื่อเมล็ดสั้น ๆ แก่ฉัน สามารถ ติดตั้ง. จากนั้นฉันก็วิ่ง sudo apt-get install linux-headers-5.13.0-30-generic linux-hwe-5.13-headers-5.13.0-30 linux-image-5.13.0-30-generic linux-modules-5.13.0-30- linux-modules-extra-5.13.0-30-generic ทั่วไป
เพื่อติดตั้งแพ็คเกจที่จำเป็นทั้งหมดอีกครั้ง ส่วนหนึ่งของผลลัพธ์คือ
/etc/kernel/header_postinst.d/dkms:
* dkms: เรียกใช้บริการติดตั้งอัตโนมัติสำหรับเคอร์เนล 5.13.0-30-generic
การเตรียมเคอร์เนลไม่จำเป็นสำหรับเคอร์เนลนี้ กำลังข้าม...
ซึ่งทำให้ฉันสงสัยว่าได้ผ่านขั้นตอนที่จำเป็นหรือไม่ อย่างอื่นดูโอเค ฉันจึงรีบูทเครื่อง - และกลับไปที่
ข้อผิดพลาด: ไม่พบคำสั่ง `hwmatch'
ข้อผิดพลาด: ไม่สามารถจัดสรร initrd
และเคอร์เนลตื่นตระหนก ในที่สุดฉันก็สามารถแยกแยะสิ่งที่ขาดหายไปได้ ฮ่วย
ปัญหาผ่านการรีบูตอีกสองครั้งโดยทำตามคำแนะนำจาก https://www.linux.org/threads/error-cant-find-command-hwmatch-during-boot.32618/ - การคัดลอก /usr/lib/grub/i386-pc/hwmatch.mod
เข้าไปใน /boot/efi/efi/grub
ไดเร็กทอรีที่ฉันต้องสร้าง
สิ่งหนึ่งที่ฉันสังเกตเห็นคือ -30
เริ่มต้น
ภาพใหญ่กว่าภาพอื่น 50+%:
-rw-r--r-- 1 รูทรูท 99M 2 มี.ค. 16:41 initrd.img-5.13.0-27-generic
-rw-r--r-- 1 รูทรูท 99M 2 มี.ค. 16:57 initrd.img-5.13.0-28-generic
-rw-r--r-- 1 รูทรูท 156M 2 มี.ค. 21:41 initrd.img-5.13.0-30-generic
นั่นอาจเป็นส่วนหนึ่งของปัญหาหรืออาจเป็นผลมาจากปัญหา ฉันไม่แน่ใจ
หลังจากวิ่ง sudo apt-get ลบ --purge
เพื่อลบทั้งหมด -30
แพ็คเกจอีกครั้งฉันวิ่ง sudo find / -xdev -name "*5.13.0-30*"
ซึ่งกลับมาเท่านั้น
/var/cache/apt/archives/linux-headers-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-modules-extra-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-image-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
/var/cache/apt/archives/linux-hwe-5.13-headers-5.13.0-30_5.13.0-30.33~20.04.1_all.deb
/var/cache/apt/archives/linux-modules-5.13.0-30-generic_5.13.0-30.33~20.04.1_amd64.deb
ฉันไม่คิดว่าไฟล์เหล่านั้นเป็นปัญหา แต่หลังจากพยายามค้นหาสาเหตุอื่นสำหรับข้อความ "การเตรียมเคอร์เนลโดยไม่จำเป็นสำหรับเคอร์เนลนี้" ไม่สำเร็จ ฉันจึงใช้ หา
เพื่อลบออก เมื่อฉันวิ่ง sudo apt-get ติดตั้ง
อย่างไรก็ตาม อีกครั้ง ฉันได้รับข้อความ "การเตรียมเคอร์เนลโดยไม่จำเป็น" เหมือนเดิม และการรีบูตทำให้ฉันกลับไปที่ ข้อผิดพลาด: ไม่สามารถจัดสรร initrd
ปัญหา.
ตอนนี้ฉันได้ลบ -30
เคอร์เนลอีกครั้ง ดังนั้นฉันจึงไม่ต้องต่อสู้กับแล็ปท็อปเมื่อฉันต้องการรีบูต แต่ฉัน จะ ต้องการติดตั้งเคอร์เนลใหม่ซึ่งฉันแน่ใจว่ามีการแก้ไขความปลอดภัย
ฉันต้องทำอย่างไรเพื่อให้ Ubuntu ลืมว่า -30
เคยติดตั้งเคอร์เนล ดังนั้นฉันจึงสามารถติดตั้งในสถานะบูตได้สำเร็จหรือไม่