Linux มีชีวิตและตายไปกับ kernel ถ้าคุ้นเคยกับ GNU/Linux Linux คือ kernel ทุกอย่างอื่นคือ tools ที่ interface กับมัน Tools เหล่านี้ให้ทำงานจริงได้ แต่มันไม่ทำอะไรได้เลยโดยไม่มี kernel
Kernel ของ OS คล้ายระบบหัวใจหลอดเลือด มักลืมจนมีปัญหา ไม่ได้บ่อยนัก แต kernel upgrades สามารถและทำผิดพลาดได้ เวลา kernel ที่อัปเดตไม่ให้ใช้คอมพิวเตอร์ ได้เวลา downgrade
Boot เข้า Kernel เก่า
ข่าวดีถ้าอัปเดต kernel เร็วๆ นี้ กระบวนการนี้เกือบไม่เคยลบ kernel เก่า กรณีเดียวที่อาจเกิดคือ ถ้าลบ kernel เก่าทันที ซึ่งไม่ใช่ความคิดดี
Boot เข้า kernel เก่า ต้อง restart คอมพิวเตอร์ เวลาโหลด GRUB อาจต้องกดปุ่มเลือก non-standard options บางระบบ kernel เก่าจะแสดงตรงนี่ Ubuntu ต้องเลือก "Advanced options for Ubuntu" หา kernel เก่า
เลือก kernel เก่าเสร็จ จะ boot เข้าระบบ ทุกอย่างควรทำงานเหมือนเดิม ถ้ายังมีปัญหา kernel อาจไม่ใช่สาเหตุ
ลบ Kernel ที่มีปัญหา
ถ้า boot เข้าเครื่องได้ ทุกอย่างทำงานตามที่ตั้งใจ kernel ที่อัปเดตน่าจะเป็นปัญหา ทำได้ทุกครั้ง boot แต่สมเหตุสมผลกว่าคือลบ kernel ที่มีปัญหา
ทำได้ด้วย package management tools ของ distribution ต่างกันตามระบบ ต้องรู้ version ของ kernel ที่จะลบ หาได้ตอน boot ที่หน้าจอ GRUB สำหรับ Ubuntu และ apt-based distributions ใช้คำสั่งแบบนี้:
sudo apt remove linux-image-VERSION-generic linux-headers-VERSION-generic
แทนที่ VERSION ด้วย version number ที่แน่นอนของ problem kernel ที่จะลบ ถ้าอยาก hold ไว้ชั่วคราว ใช้คำสั่ง:
sudo apt-mark hold linux-image-generic linux-headers-generic
หลีกเลี่ยงปัญหาในอนาคต
วิธีง่ายหลีกเลี่ยงปัญหานี้คือ ไม่อัปเดตทันที ให้โอกาสดูว่ามีรายงาน user ที่มี kernel trouble ปรากฏหรือไม่ ควรเฝ้าดู users ที่มี hardware คล้ายคุณ
ถ้า stability สำคัญ ใช้ LTS distributions ได้ อัปเดตน้อยกว่า นอกจาก security updates หมายถึง นับได้ว่าเสถียรกว่า distro ทั่วไป
คำถามที่พบบ่อย
1. Downgrade kernel จะทำให้อะไรเสียไหม?
จัดการกับส่วนหลักของ OS ความเป็นไปได้มีเสมอ ถ้าเพิ่ง upgrade revert กลับ kernel เก่า ไม่ควรทำปัญหามาก
Drivers และซอฟต์แวร์ที่ interface ตรงกับ kernel อาจมี error ถ้า older versions ของซอฟต์แวร์นี้ถูกลบหรืออัปเดต อาจต้อง downgrade มันด้วย
2. บอกได้ไหมว่า kernel update จะทำงานบนระบบของฉัน?
เหมือนกล่าว เช็ค user reports ก่อน major upgrade มีประโยชน์ ดู user forums ตาม Linux distro ที่ใช้ ดูว่ามี users ประสบปัญหาใหญ่ไหม ถ้ามี users หลายคนเจอปัญหา อาจรอจนกว่าจะแก้ไขก่อน upgrade
3. เช็ค installed kernels บนระบบยังไง?
หลายคำสั่งดู kernels ที่ติดตั้ง ขึ้นกับ Linux distro ที่รัน คำสั่งต่อไปทำงานบนส่วนใหญ่:
find /boot/vmli*
Arch Linux และ distros based on Arch ใช้:
pacman -Q linux
Ubuntu, Debian และระบบ based on ทั้งสอง ใช้:
dpkg --list | grep linux-image
Red Hat, Fedora และ distributions คล้ายกัน ใช้:
rpm -qa kernel
ไม่ใช่ exhaustive list แตครอบคลุม distros ค่อนข้างเยอะ ใช้ distro อื่น เช็ค documentation
4. รู้ยังไงว่าใช้ kernel ไหนอยู่?
ทำได้ด้วยคำสั่งง่าย เปิด terminal พิมพ์:
uname -rs
จะเห็น string พร้อม version info ของ running kernel 长这样:
Linux 5.11.0-41-generic
มองใต้ฝาครอบ
Downgrade เป็นวิธีง่ายที่สุดจัดการ kernel issues แต่ไม่ใช่วิธีเดียว Kernel ไม่ใช่ส่วนเดียวที่ทำปัญหา boot ถ้าระบบไม่ start ความหงุดหงิดมาก
ค้นหาอินเทอร์เน็ตหาปัญหา มีประโยชน์ แตช่วยถ้าเข้าใจสิ่งที่เกิดขึ้นใต้ฝาครอบ ดูคู่มือเข้าใจ Linux boot process เพื่อความเข้าใจที่ดีกว่า