Linux แสดงข้อความผิดพลาดตอนบูต: สาเหตุและวิธีแก้แบบละเอียด

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

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


1. อย่ารีสตาร์ตเครื่องซ้ำ ๆ โดยไม่ตรวจสอบข้อความผิดพลาด

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

สิ่งที่ควรทำก่อนคือ:

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

ถ้าเพิ่งอัปเดตเคอร์เนลมา ปัญหาอาจอยู่ที่เคอร์เนลหรือไดรเวอร์ ถ้าก่อนหน้านี้ไฟดับหรือปิดเครื่องแบบผิดปกติ ก็มีโอกาสสูงที่ระบบไฟล์จะเสียหาย


2. ประเภทของข้อผิดพลาดตอนบูตที่พบบ่อย

  • ข้อผิดพลาดของ GRUB หรือ bootloader
  • ข้อผิดพลาดของระบบไฟล์
  • ปัญหาของ kernel หรือ initramfs
  • service ของ systemd เริ่มทำงานไม่สำเร็จ
  • ปัญหาไดรเวอร์ GPU หรือการแสดงผล
  • พื้นที่ดิสก์ไม่เพียงพอ
  • ดิสก์มีปัญหาทางกายภาพ

ถึงแม้อาการรวม ๆ จะเหมือนกันคือ “Linux บูตไม่ขึ้น” แต่แนวทางแก้ปัญหาจะแตกต่างกันตามประเภทของข้อผิดพลาด


3. แสดงบันทึกการบูตแบบละเอียด

หลายดิสทริบิวชันซ่อนข้อความบูตละเอียดไว้ด้วย quiet splash ถ้าต้องการดูสาเหตุจริง ควรลบค่านี้ออกชั่วคราวจาก GRUB

  1. รีสตาร์ตคอมพิวเตอร์
  2. หลังกดเปิดเครื่องให้กด Shift หรือ Esc หลายครั้ง
  3. ใน GRUB ให้เลือกบูตเอนทรีแล้วกด e
  4. ลบ quiet splash
  5. กด Ctrl + X เพื่อบูต

วิธีนี้จะช่วยให้เห็นว่าระบบล้มเหลวตรงจุดใดของกระบวนการบูต


4. ถ้าขึ้น “grub rescue” หรือ “no such partition”

ถ้าหลังเปิดเครื่องแล้วเจอ grub rescue หรือข้อความอย่าง “no such partition” ทันที มักแปลว่ามีปัญหากับ bootloader หรือโครงสร้างพาร์ทิชัน

สาเหตุที่พบบ่อย ได้แก่:

  • มีการเปลี่ยนแปลงพาร์ทิชัน
  • Windows ในระบบ dual boot เขียนทับข้อมูลการบูต
  • พาร์ทิชัน EFI หรือ /boot เสียหาย
  • ไฟล์ตั้งค่า GRUB เสีย

ในหลายกรณีสามารถแก้ได้ด้วยการบูตจาก Live USB แล้วติดตั้ง GRUB ใหม่:

sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi   # สำหรับระบบ UEFI เท่านั้น

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

sudo chroot /mnt
grub-install /dev/sda
update-grub
exit
sudo reboot

ควรเปลี่ยนชื่อพาร์ทิชันให้ตรงกับระบบจริงของคุณก่อนใช้งาน


5. ถ้าระบบเข้า emergency mode

ข้อความ You are in emergency mode มักหมายถึงระบบพบปัญหาร้ายแรงระหว่างการเมานต์พาร์ทิชันหรืออ่านค่าตั้งต้นบางอย่าง สาเหตุที่เจอบ่อยคือไฟล์ /etc/fstab ผิด

เริ่มจากดูบันทึก:

journalctl -xb

แล้วตรวจสอบ fstab:

cat /etc/fstab

ปัญหาที่พบได้บ่อย เช่น:

  • UUID ไม่ถูกต้อง
  • path ของ mount point ไม่มีอยู่จริง
  • มีการใส่ดิสก์ภายนอกไว้ใน fstab แต่ตอนนี้ไม่ได้เชื่อมต่อ

ถ้าพบปัญหา ให้แก้ไขไฟล์:

nano /etc/fstab

จากนั้นรีบูตระบบอีกครั้ง


6. ถ้าพบข้อผิดพลาดเกี่ยวกับ fsck หรือระบบไฟล์เสียหาย

ข้อความอย่าง fsck failed หรือ UNEXPECTED INCONSISTENCY มักบ่งบอกว่าระบบไฟล์เสียหาย สิ่งนี้มักเกิดหลังไฟดับหรือปิดเครื่องแบบบังคับ

ควรตรวจสอบจาก Recovery Mode หรือ Live USB:

sudo fsck -f /dev/sda1

ไม่ควรรัน fsck บน root partition ที่กำลังถูกใช้งานอยู่

นอกจากนี้ควรตรวจสอบสุขภาพของดิสก์ด้วย:

sudo smartctl -a /dev/sda

หาก SMART แสดงข้อผิดพลาดจำนวนมาก ควรสำรองข้อมูลก่อนเป็นอันดับแรก


7. ถ้า service ของ systemd เริ่มไม่สำเร็จ

บางครั้ง kernel เริ่มทำงานแล้ว แต่ service สำคัญตัวหนึ่งล้มเหลว ทำให้ระบบค้างระหว่างบูต มักเห็นข้อความเช่น:

  • Failed to start ...
  • Dependency failed for ...

ในกรณีนี้ให้ลองเข้า TTY:

Ctrl + Alt + F2

หลังล็อกอินแล้วให้ตรวจสอบ service ที่ล้มเหลว:

systemctl --failed
journalctl -xb

หากต้องการดูรายละเอียดของ service ใดโดยเฉพาะ:

systemctl status NetworkManager
journalctl -u NetworkManager -b

ถ้า service นั้นไม่ใช่ service หลัก อาจปิดชั่วคราวเพื่อทดสอบว่าระบบจะบูตต่อได้หรือไม่


8. ถ้าปัญหามาจาก kernel หรือ initramfs

ถ้าปัญหาเริ่มหลังจากอัปเดต kernel ก็มีโอกาสที่ kernel ใหม่หรือ initramfs จะมีปัญหา ลองบูตด้วย kernel รุ่นเก่าจาก GRUB:

  1. เปิด GRUB
  2. เลือก Advanced options
  3. เลือก kernel รุ่นก่อนหน้า

ถ้าบูตได้ แปลว่าปัญหาอาจอยู่ที่ kernel ใหม่หรือ initramfs สามารถสร้าง initramfs ใหม่ได้ด้วย:

sudo update-initramfs -u

9. ถ้าสาเหตุมาจากไดรเวอร์ GPU

บางครั้ง Linux บูตแล้วจริง แต่กราฟิกไม่ขึ้นเพราะไดรเวอร์จอมีปัญหา ปัญหานี้พบบ่อยโดยเฉพาะหลังอัปเดตไดรเวอร์ NVIDIA

ให้ลองเพิ่ม nomodeset ใน GRUB:

linux /boot/vmlinuz ... quiet splash nomodeset

ถ้าระบบเข้าได้ด้วยวิธีนี้ ก็มีโอกาสสูงว่าปัญหาอยู่ที่ไดรเวอร์กราฟิก จากนั้นจึงค่อยติดตั้งไดรเวอร์ใหม่


10. อย่ามองข้ามปัญหาพื้นที่ดิสก์เต็ม

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

ตรวจสอบพื้นที่ดิสก์ด้วย:

df -h

ถ้าพื้นที่ใกล้เต็ม ให้ล้าง cache และแพ็กเกจเก่า:

sudo apt clean
sudo apt autoremove

อาจต้องลบ kernel เก่าหรือไฟล์ log ขนาดใหญ่ด้วย


11. ถ้ายังแก้ไม่ได้ ให้สำรองข้อมูลก่อน

ถ้าเข้า TTY ไม่ได้ ใช้ Recovery Mode ไม่ได้ และวิธีซ่อมทั่วไปยังไม่สำเร็จ วิธีที่ปลอดภัยที่สุดคือใช้ Live USB เพื่อสำรองข้อมูลสำคัญก่อน ยิ่งถ้าสงสัยว่าดิสก์เริ่มเสีย ยิ่งควรทำทันที

ผ่าน Live USB คุณสามารถ:

  • คัดลอกไฟล์สำคัญ
  • รัน fsck
  • ติดตั้ง GRUB ใหม่
  • ตรวจสอบไฟล์ตั้งค่า
  • ตรวจสอบสุขภาพของดิสก์

สรุป

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

  • จดข้อความผิดพลาดให้ครบ
  • เปิดดูบันทึกบูตแบบละเอียด
  • ใช้ TTY, Recovery Mode หรือ Live USB
  • ตรวจสอบ GRUB, ระบบไฟล์, service, kernel, ไดรเวอร์ และพื้นที่ดิสก์
  • ถ้าสงสัยว่าดิสก์เสีย ให้สำรองข้อมูลก่อน

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

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *