วิธีย้อนกลับเคอร์เนลใน Linux
เผยแพร่แล้ว: 2022-01-29หากพีซี Linux ของคุณมีปัญหาอย่างกะทันหันหลังการอัปเดตระบบ อาจเป็นไปได้ว่าการอัปเดตเคอร์เนลของ Linux อาจเกิดข้อผิดพลาด โชคดีที่การย้อนกลับหรือเปลี่ยนไปใช้เคอร์เนลอื่นทำได้ค่อนข้างง่ายบนระบบ Debian, Arch และ Fedora นี่คือวิธีการ
เหตุใดการอัพเกรดเคอร์เนลทำให้เกิดปัญหา
เคอร์เนลเป็นส่วนสำคัญของระบบลีนุกซ์ ดังนั้นขึ้นอยู่กับอุปกรณ์และการตั้งค่าของคุณ การอัปเดตเคอร์เนลมีโอกาสที่จะสร้างปัญหาให้กับคุณหรือสำหรับแอพพลิเคชั่นที่ติดตั้งของคุณ ปัญหาอาจมีตั้งแต่พฤติกรรมกราฟิกที่เล่นโวหารไปจนถึงระบบที่ใช้งานไม่ได้โดยสิ้นเชิง หากสถานการณ์ของคุณเป็นอย่างหลัง แสดงว่าคุณกำลังมีปัญหาจริงๆ
เพื่อแก้ไขปัญหานี้ distros สมัยใหม่จำนวนมากจะติดตั้งเคอร์เนลที่เก่ากว่าหรือต่างกันซึ่งคุณสามารถเข้าถึงได้เมื่อบูต สิ่งเหล่านี้จะช่วยให้คุณทดสอบเคอร์เนลสำหรับปัญหาหรือกู้คืนจากการอัปเดตเคอร์เนลที่ทำลายระบบ
ที่เกี่ยวข้อง: วิธีตรวจสอบเคอร์เนล Linux และเวอร์ชันระบบปฏิบัติการ
วิธีบูตด้วยเคอร์เนลที่แตกต่างกัน
แน่นอน การอัปเดตแพ็คเกจระบบอื่นที่ไม่ใช่เคอร์เนล Linux อาจเป็นสาเหตุที่แท้จริงของปัญหาของคุณ วิธีหนึ่งที่รวดเร็วในการแยกแยะเคอร์เนลว่ามีข้อผิดพลาดคือการลองบูทด้วยเคอร์เนลอื่น
ก่อนอื่นคุณต้องเข้าถึงเมนู GRUB ของคุณโดยรีสตาร์ทพีซีของคุณ คุณอาจเห็น GRUB ปรากฏขึ้นสองสามวินาทีตอนบูต โดยแสดงตัวเลือกสองสามอย่าง เช่น “ตัวเลือกขั้นสูง” แม้ว่า distros บางตัวจะซ่อนมันไว้เว้นแต่คุณจะเข้าถึง หากไม่ปรากฏขึ้นขณะบู๊ต ให้กดปุ่ม Shift ค้างไว้ในขณะที่พีซีของคุณเริ่มบู๊ต จนกว่าคุณจะเห็นหน้าจอคล้ายกับภาพด้านล่าง
ใช้ปุ่มลูกศรเพื่อไปที่ "ตัวเลือกขั้นสูงสำหรับ [Your Distro]" แล้วกด Enter
คุณจะได้รับรายการตัวเลือกการบูตที่พร้อมใช้งาน คุณควรเห็นอย่างน้อยสองรายการ เช่น "[Your Distro] กับ Linux 5.10.0.7-amd64" ตามด้วยเวอร์ชัน "โหมดการกู้คืน" ของตัวเลือกเดียวกันนั้น เวอร์ชันต่างๆ ที่คุณเห็นในรายการคือเคอร์เนลต่างๆ ที่ติดตั้งไว้
หากคุณมีเพียงหนึ่งตัวเลือกมาตรฐานและหนึ่งตัวเลือกโหมดการกู้คืน นั่นหมายความว่าคุณได้ติดตั้งเคอร์เนลไว้เพียงตัวเดียว ในกรณีนั้น และถ้าคุณไม่สามารถใช้เคอร์เนลได้เลย คุณสามารถใช้โหมดการกู้คืนเพื่อลองใช้ตัวเลือกการซ่อมแซมบางอย่างได้
หากคุณมีหมายเลขเวอร์ชันมากกว่าหนึ่ง แสดงว่าคุณมีเคอร์เนลสำรองที่คุณสามารถบู๊ตได้ ตัวเลือกแรกจะเป็นตัวเลือกใหม่ล่าสุดและเป็นตัวเลือกที่พีซีของคุณบูทโดยอัตโนมัติ ลองใช้ตัวเลือกโหมดไม่กู้คืนอื่นโดยไปที่ตัวเลือกนั้นด้วยปุ่มลูกศรแล้วกด Enter
ที่เกี่ยวข้อง: วิธีแก้ไขระบบ Ubuntu เมื่อไม่สามารถบู๊ตได้
วิธีลบหรือดาวน์เกรดเคอร์เนล
หากดูเหมือนว่าการเริ่มระบบในเคอร์เนลอื่นสามารถแก้ไขปัญหาของคุณได้ แสดงว่าคุณอาจต้องการใช้เคอร์เนลนั้นต่อไป อย่างไรก็ตาม พีซีของคุณอาจพยายามใช้เคอร์เนลที่มีปัญหาตามค่าเริ่มต้นทุกครั้งที่คุณบู๊ต คุณสามารถเลือกเคอร์เนลที่เก่ากว่าได้ด้วยตนเองในการบู๊ตแต่ละครั้ง หรือลบเคอร์เนลที่มีปัญหาออกในขณะที่คุณรอการอัปเดตอื่น
คำเตือน: การอัปเดตเคอร์เนลอาจเกี่ยวข้องกับการแก้ไขความปลอดภัย ด้วยเหตุผลดังกล่าว การเพิกเฉยต่อการอัปเดตเคอร์เนลจึงมีความเสี่ยง หากคุณต้องดำเนินการต่อ ตรวจสอบให้แน่ใจว่าระบบของคุณปลอดภัยที่สุด
distros บางตัวอนุญาตให้คุณทำแบบกราฟิกและอาจให้คุณเลือกเคอร์เนลอื่นเป็นค่าเริ่มต้นได้ ตัวอย่างเช่น ตัวจัดการการอัปเดตของ Linux Mint (ภาพด้านล่าง) มีคุณสมบัติการตั้งค่าเคอร์เนลที่ให้คุณตั้งค่ากำหนดเคอร์เนลนอกเหนือจากการลบเคอร์เนลที่ไม่ต้องการ
ลองค้นหาคำว่า "เคอร์เนล" ในเมนูแอปพลิเคชันของคุณและดูว่ามีเครื่องมือ dektop ปรากฏขึ้นหรือไม่ ถ้าทำได้ คุณอาจจะทำแบบกราฟิกได้ มิฉะนั้น ให้อ่านเพื่อลบเคอร์เนลผ่านบรรทัดคำสั่ง
คำเตือน: ดำเนินการต่อในขณะที่บูตเข้าสู่เคอร์เนลที่คุณต้องการใช้ ไม่ใช่อันที่คุณวางแผนจะลบ
ลบเคอร์เนลบน Debian และ Ubuntu
หากต้องการลบเคอร์เนล Linux บน Debian, Ubuntu หรืออนุพันธ์อย่างใดอย่างหนึ่ง คุณควรระบุแพ็คเกจเคอร์เนลที่ติดตั้งไว้ก่อน เปิดเทอร์มินัลแล้วป้อนคำสั่งต่อไปนี้
รายการ apt -- ติดตั้ง | grep linux-image
คุณสามารถดูหมายเลขเวอร์ชันในแต่ละชื่อแพ็กเกจ ซึ่งอยู่ข้างหน้าเครื่องหมายทับ (/) ในผลลัพธ์ หลังจากได้รับชื่อของเคอร์เนลที่คุณต้องการลบแล้ว ให้ส่งคำสั่งต่อไปนี้ โดยแทนที่ kernel-name
เคอร์เนลด้วยชื่อแพ็กเกจเคอร์เนลเหมือนกับที่ปรากฏในคำสั่งก่อนหน้า
sudo apt ลบเคอร์เนลชื่อ
คุณจะได้รับแจ้งให้ใส่รหัสผ่าน จากนั้นระบบจะขอให้ยืนยันการลบโดยพิมพ์ y
แล้วกด Enter
รอให้การลบเสร็จสิ้น และพีซี 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
หากคุณต้องการ ดาวน์เกรด แพ็คเกจเคอร์เนล โปรดทราบว่าเราไม่แนะนำ การอัปเดตแบบต่อเนื่องมักจะขึ้นอยู่กับแพ็คเกจอื่น ๆ ที่เป็นปัจจุบัน ดังนั้นการย้อนกลับการอัปเดตจึงเป็นธุรกิจที่มีความเสี่ยงและอาจส่งผลให้ระบบปฏิบัติการใช้งานไม่ได้
อย่างไรก็ตาม หากคุณแน่ใจว่าต้องการจะซิงค์ คุณสามารถซิงค์แพ็คเกจเคอร์เนลกับเวอร์ชันเฉพาะโดยใช้คำสั่งต่อไปนี้
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
คุณจะเห็นรายการเคอร์เนลที่ติดตั้งทั้งหมดถัดจากหมายเลขเวอร์ชัน
หลังจากบูตด้วยเคอร์เนลอื่น ให้ใช้ dnf เพื่อถอนการติดตั้งเคอร์เนลที่มีปัญหา
sudo dnf ลบ kernel-core-xxx-xxx.fcxx.x86_64
คุณจะได้รับข้อความแจ้งให้ยืนยันการถอนการติดตั้ง พิมพ์ y แล้วกด Enter เพื่อยืนยัน
หลังจากลบเคอร์เนล ระบบของคุณจะไม่สามารถบูตเข้าสู่เคอร์เนลที่ใหม่กว่าได้จนกว่าคุณจะอนุญาตการอัปเดตเคอร์เนล เมื่อมีรายการใหม่ ให้ลองใช้และดูว่าปัญหาของคุณได้รับการแก้ไขแล้วหรือไม่