วิธีย้อนกลับเคอร์เนลใน Linux

เผยแพร่แล้ว: 2022-01-29
fatmawati achmad zaenuri/Shutterstock.com

หากพีซี Linux ของคุณมีปัญหาอย่างกะทันหันหลังการอัปเดตระบบ อาจเป็นไปได้ว่าการอัปเดตเคอร์เนลของ Linux อาจเกิดข้อผิดพลาด โชคดีที่การย้อนกลับหรือเปลี่ยนไปใช้เคอร์เนลอื่นทำได้ค่อนข้างง่ายบนระบบ Debian, Arch และ Fedora นี่คือวิธีการ

เหตุใดการอัพเกรดเคอร์เนลทำให้เกิดปัญหา

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

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

ที่เกี่ยวข้อง: วิธีตรวจสอบเคอร์เนล Linux และเวอร์ชันระบบปฏิบัติการ

วิธีบูตด้วยเคอร์เนลที่แตกต่างกัน

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

ก่อนอื่นคุณต้องเข้าถึงเมนู GRUB ของคุณโดยรีสตาร์ทพีซีของคุณ คุณอาจเห็น GRUB ปรากฏขึ้นสองสามวินาทีตอนบูต โดยแสดงตัวเลือกสองสามอย่าง เช่น “ตัวเลือกขั้นสูง” แม้ว่า distros บางตัวจะซ่อนมันไว้เว้นแต่คุณจะเข้าถึง หากไม่ปรากฏขึ้นขณะบู๊ต ให้กดปุ่ม Shift ค้างไว้ในขณะที่พีซีของคุณเริ่มบู๊ต จนกว่าคุณจะเห็นหน้าจอคล้ายกับภาพด้านล่าง

ตัวเลือกเมนูด้วงสำหรับ Debian 11 Bullseye

โฆษณา

ใช้ปุ่มลูกศรเพื่อไปที่ "ตัวเลือกขั้นสูงสำหรับ [Your Distro]" แล้วกด Enter

คุณจะได้รับรายการตัวเลือกการบูตที่พร้อมใช้งาน คุณควรเห็นอย่างน้อยสองรายการ เช่น "[Your Distro] กับ Linux 5.10.0.7-amd64" ตามด้วยเวอร์ชัน "โหมดการกู้คืน" ของตัวเลือกเดียวกันนั้น เวอร์ชันต่างๆ ที่คุณเห็นในรายการคือเคอร์เนลต่างๆ ที่ติดตั้งไว้

สองเมล็ดพร้อมตัวเลือกโหมดการกู้คืนซึ่งแสดงรายการเป็นตัวเลือกการบูตใน GRUB บน Debian 11

หากคุณมีเพียงหนึ่งตัวเลือกมาตรฐานและหนึ่งตัวเลือกโหมดการกู้คืน นั่นหมายความว่าคุณได้ติดตั้งเคอร์เนลไว้เพียงตัวเดียว ในกรณีนั้น และถ้าคุณไม่สามารถใช้เคอร์เนลได้เลย คุณสามารถใช้โหมดการกู้คืนเพื่อลองใช้ตัวเลือกการซ่อมแซมบางอย่างได้

หากคุณมีหมายเลขเวอร์ชันมากกว่าหนึ่ง แสดงว่าคุณมีเคอร์เนลสำรองที่คุณสามารถบู๊ตได้ ตัวเลือกแรกจะเป็นตัวเลือกใหม่ล่าสุดและเป็นตัวเลือกที่พีซีของคุณบูทโดยอัตโนมัติ ลองใช้ตัวเลือกโหมดไม่กู้คืนอื่นโดยไปที่ตัวเลือกนั้นด้วยปุ่มลูกศรแล้วกด Enter

ที่เกี่ยวข้อง: วิธีแก้ไขระบบ Ubuntu เมื่อไม่สามารถบู๊ตได้

วิธีลบหรือดาวน์เกรดเคอร์เนล

หากดูเหมือนว่าการเริ่มระบบในเคอร์เนลอื่นสามารถแก้ไขปัญหาของคุณได้ แสดงว่าคุณอาจต้องการใช้เคอร์เนลนั้นต่อไป อย่างไรก็ตาม พีซีของคุณอาจพยายามใช้เคอร์เนลที่มีปัญหาตามค่าเริ่มต้นทุกครั้งที่คุณบู๊ต คุณสามารถเลือกเคอร์เนลที่เก่ากว่าได้ด้วยตนเองในการบู๊ตแต่ละครั้ง หรือลบเคอร์เนลที่มีปัญหาออกในขณะที่คุณรอการอัปเดตอื่น

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

distros บางตัวอนุญาตให้คุณทำแบบกราฟิกและอาจให้คุณเลือกเคอร์เนลอื่นเป็นค่าเริ่มต้นได้ ตัวอย่างเช่น ตัวจัดการการอัปเดตของ Linux Mint (ภาพด้านล่าง) มีคุณสมบัติการตั้งค่าเคอร์เนลที่ให้คุณตั้งค่ากำหนดเคอร์เนลนอกเหนือจากการลบเคอร์เนลที่ไม่ต้องการ

โฆษณา

ลองค้นหาคำว่า "เคอร์เนล" ในเมนูแอปพลิเคชันของคุณและดูว่ามีเครื่องมือ dektop ปรากฏขึ้นหรือไม่ ถ้าทำได้ คุณอาจจะทำแบบกราฟิกได้ มิฉะนั้น ให้อ่านเพื่อลบเคอร์เนลผ่านบรรทัดคำสั่ง

คำเตือน: ดำเนินการต่อในขณะที่บูตเข้าสู่เคอร์เนลที่คุณต้องการใช้ ไม่ใช่อันที่คุณวางแผนจะลบ

ลบเคอร์เนลบน Debian และ Ubuntu

หากต้องการลบเคอร์เนล Linux บน Debian, Ubuntu หรืออนุพันธ์อย่างใดอย่างหนึ่ง คุณควรระบุแพ็คเกจเคอร์เนลที่ติดตั้งไว้ก่อน เปิดเทอร์มินัลแล้วป้อนคำสั่งต่อไปนี้

 รายการ apt -- ติดตั้ง | grep linux-image 

แสดงรายการเมล็ดที่ติดตั้งใน Ubuntu โดยใช้apt

คุณสามารถดูหมายเลขเวอร์ชันในแต่ละชื่อแพ็กเกจ ซึ่งอยู่ข้างหน้าเครื่องหมายทับ (/) ในผลลัพธ์ หลังจากได้รับชื่อของเคอร์เนลที่คุณต้องการลบแล้ว ให้ส่งคำสั่งต่อไปนี้ โดยแทนที่ kernel-name เคอร์เนลด้วยชื่อแพ็กเกจเคอร์เนลเหมือนกับที่ปรากฏในคำสั่งก่อนหน้า

 sudo apt ลบเคอร์เนลชื่อ

คุณจะได้รับแจ้งให้ใส่รหัสผ่าน จากนั้นระบบจะขอให้ยืนยันการลบโดยพิมพ์ y แล้วกด Enter

ลบเมล็ดที่ติดตั้งโดยใช้ apt ใน Ubuntu

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

ที่เกี่ยวข้อง: วิธีอัปเดต Ubuntu Linux

ลบหรือดาวน์เกรดเคอร์เนลบน Arch

บน Arch Linux คุณสามารถรับเคอร์เนลอื่นที่มีชื่อเช่น linux-hardened , linux-zen และ linux-lts ได้อย่างง่ายดาย เมื่อเลือกตัวเลือกใน GRUB คุณอาจเห็นเคอร์เนลที่ติดตั้งไว้เพียงเวอร์ชันเดียว ไม่เหมือนกับเคอร์เนลบน Debian การอัปเดตเคอร์เนล Arch ไม่ได้มาถึงเป็นแพ็คเกจใหม่เพื่อแทนที่ของเก่า แต่เคอร์เนลที่ติดตั้งไว้แต่ละตัวจะได้รับการอัปเดต (หรือ "ซิงค์") เป็นเวอร์ชันล่าสุดเมื่อพร้อมใช้งาน

โฆษณา

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

 sudo pacman -R ชื่อเคอร์เนล kernel-name-headers

การแทนที่ kernel-name เคอร์เนลด้วยเคอร์เนลที่คุณเลือก คุณจะได้รับแจ้งให้ป้อนรหัสผ่านก่อนดำเนินการต่อ จากนั้น คุณจะต้องยืนยันการลบโดยพิมพ์ “y” แล้วกด Enter

ใช้ pacman เพื่อถอนการติดตั้งเคอร์เนลใน Arch Linux

หากคุณต้องการ ดาวน์เกรด แพ็คเกจเคอร์เนล โปรดทราบว่าเราไม่แนะนำ การอัปเดตแบบต่อเนื่องมักจะขึ้นอยู่กับแพ็คเกจอื่น ๆ ที่เป็นปัจจุบัน ดังนั้นการย้อนกลับการอัปเดตจึงเป็นธุรกิจที่มีความเสี่ยงและอาจส่งผลให้ระบบปฏิบัติการใช้งานไม่ได้

อย่างไรก็ตาม หากคุณแน่ใจว่าต้องการจะซิงค์ คุณสามารถซิงค์แพ็คเกจเคอร์เนลกับเวอร์ชันเฉพาะโดยใช้คำสั่งต่อไปนี้

 sudo pacman -S kernel-name=xxx kernel-name-headers=xxx

แทนที่ kernel-name เคอร์เนลด้วยเคอร์เนลที่คุณต้องการดาวน์เกรดและ xxx เป็นเวอร์ชันที่คุณต้องการ คุณสามารถค้นหาหมายเลขเวอร์ชันเก่าได้โดยค้นหาเคอร์เนลใน Arch Package Search และคลิก "ดูการเปลี่ยนแปลง"

ที่เกี่ยวข้อง: วิธีอัปเดต Arch Linux

ลบเคอร์เนลบน Fedora

โดยค่าเริ่มต้น Fedora Linux จะเก็บเคอร์เนลรุ่นเก่าสองเวอร์ชันไว้ในอุปกรณ์ของคุณพร้อมกับเวอร์ชันใหม่ล่าสุด ด้วยคำสั่ง rpm นี้ คุณสามารถระบุชื่อแพ็คเกจได้

 rpm -qa kernel-core
โฆษณา

คุณจะเห็นรายการเคอร์เนลที่ติดตั้งทั้งหมดถัดจากหมายเลขเวอร์ชัน

ค้นหาเคอร์เนล Linux ในเทอร์มินัล Fedora

หลังจากบูตด้วยเคอร์เนลอื่น ให้ใช้ dnf เพื่อถอนการติดตั้งเคอร์เนลที่มีปัญหา

 sudo dnf ลบ kernel-core-xxx-xxx.fcxx.x86_64

คุณจะได้รับข้อความแจ้งให้ยืนยันการถอนการติดตั้ง พิมพ์ y แล้วกด Enter เพื่อยืนยัน

ลบเคอร์เนลในเทอร์มินัล Fedora Linux

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