วิธีการลบเคอร์เนลที่ไม่ทำงานหลังจากการอัพเดต?


15

ฉันมี. คำถามง่าย ๆ หลังจากฉันอัปเดตเคอร์เนลฉันไม่สามารถบูตได้ (ติดอยู่ที่หน้าจอสีม่วง) เว้นแต่ฉันเลือกเคอร์เนลเก่า ดังนั้นฉันจะลบเคอร์เนลใหม่ด้วย synaptic ได้อย่างไร และฉันจะทำอย่างปลอดภัยได้อย่างไร ฉันอยู่ใน Quantal Quetzel เคอร์เนลของฉันคือ 3.5.0-40 เคอร์เนลที่ใช้งานคือ 3.5.0-39 นอกจากนี้ฉันจะหยุดอัปเดตเคอร์เนลไม่ให้ปรากฏในตัวจัดการอัปเดตได้อย่างไร ขอบคุณ


เคอร์เนลรุ่นใด คุณต้องการที่จะลบ?
mojo706

เคอร์เนลของฉันคือ 3.5.0-40
เดฟ

1
หากคุณต้องการคำตอบเพื่อรวมข้อมูลเกี่ยวกับการป้องกันไม่ให้เคอร์เนลใหม่ถูกติดตั้งอีกครั้งด้วยการปรับปรุงอื่น ๆ ของคุณคุณอาจต้องการรวมไว้ในคำถามของคุณ
Eliah Kagan

ฉันคิดว่าไม่ควรลบเคอร์เนลหรือหยุดอัปเดตเคอร์เนลเนื่องจากมักจะเป็นอัปเดตความปลอดภัย ดูคำถามนี้เกี่ยวกับแนวทางปฏิบัติที่ดีกว่า
jarno

คำตอบ:


28

หากต้องการลบเคอร์เนลที่ไม่ต้องการอย่างปลอดภัยให้เปิดเซสชันเทอร์มินัลแล้วรันคำสั่ง:

ค้นหาชื่อแพ็คเกจเคอร์เนล

dpkg -l | grep linux-image

ในขณะที่เขียนบนamd64/x86_64 สถาปัตยกรรมชื่อภาพคือ:linux-image-$(uname -r)-generic

สำหรับอิมเมจเคอร์เนลที่ไม่ได้ลงชื่อเช่นที่สร้างโดยไดรเวอร์ nvidia อิมเมจอาจเป็น: linux-image-unsigned-4.20.17-042017-generic

ลบ (ล้าง - ลบไฟล์กำหนดค่าทั้งหมดด้วย)

sudo apt-get purge linux-image-3.5.0-40-generic

หมายเหตุ: สำหรับ Ubuntu 18.04 LTS หรือใหม่กว่าคุณอาจต้องการลบแพคเกจใด ๆlinux-modulesหรือlinux-headersรุ่นเดียวกันเพื่อประหยัดพื้นที่ดิสก์ / ทำให้ระบบของคุณไม่ติดขัด


โอ้ฉันไม่จำเป็นต้องทำ sudo update-grub หลังจากนั้น?
เดฟ

สคริปต์ postrm ของแพ็คเกจจะอัปเดตด้วงสำหรับคุณเมื่อคุณลบ (ล้างข้อมูล) ;-)
Terry Wang

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

sudo apt-get update && apt-get dist-upgrade -yไม่แน่ใจว่าคุณมีlinux-current-genericหรือlinux-image-generic-lts-raringไม่ใช้ LTS
เทอร์รี่วัง

2
sudo apt-get remove linux-image-3.5.0-40*.

ฉันจะแนะนำให้คุณเก็บเคอร์เนลเก่าไว้อย่างน้อยหนึ่งตัวเสมอในกรณีที่คุณต้องบูตเข้าใช้ด้วยเหตุผลที่คุณอาจคาดไม่ถึงในตอนนี้


ฉันว่าเกี่ยวกับการรักษาเมล็ด สิ่งที่สำคัญมาก ฉันมีอีกคนหนึ่งนอกเหนือจากอันนี้ Ty ฉันจะลองในวันพรุ่งนี้และโพสต์กลับ
เดฟ

0

ดูเหมือนว่าคำตอบอื่น ๆ ของคำถามนี้ไม่ถูกต้อง คำตอบแบบเต็มคือการผสมผสานของทั้งคู่กับการแก้ไขเพิ่มเติมบางอย่าง;

sudo apt-get purge *4.18.0-21*

ได้รับ4.18.0-21เป็นจำนวนเคอร์เนลของคุณใช้ls /bootจะเห็นมัน

นี่คือสิ่งที่ทำเพื่อฉัน (แต่ต้องเรียกใช้คำสั่งที่คล้ายกันสองครั้งเพื่อกำจัด/lib/modules/4.18.0-21-generic)

ใช้คำสั่งนี้ด้วยความระมัดระวังเพื่อให้แน่ใจว่าคุณไม่ได้ลบสิ่งที่จำเป็น

ในฐานะที่เป็นบันทึกย่อที่น่าสนใจในกรณีของฉันlinux-headers-generic-hwe-18.04ก็ถูกลบเช่นกันและเมื่อฉันพยายามติดตั้งใหม่มันต้องการติดตั้งเคอร์เนลล่าสุดอีกครั้งดังนั้นจึงไม่ทำเช่นนั้น จากนั้นการวิจัยได้พิสูจน์แล้วว่ามันเป็นส่วนหนึ่งของเคอร์เนล 4.18.0-21 https://packages.ubuntu.com/bionic-updates/linux-headers-generic-hwe-18.04

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