แก้ปัญหา Rocky Linux 10 Boot ไม่ขึ้น

แก้ปัญหา Rocky Linux 10 Boot ไม่ขึ้น

ปัญหา Server Boot ไม่ขึ้นเป็นหนึ่งในเหตุการณ์ที่ทำให้ SysAdmin มือใหม่ตกใจได้ง่ายที่สุด โดยเฉพาะเมื่อเครื่องนั้นเป็น Web Server, Database Server, File Server หรือ VM สำคัญในองค์กร

อาการที่พบบ่อย เช่น

  • ค้างที่หน้าจอ GRUB
  • ขึ้น grub rescue>
  • ขึ้น dracut emergency shell
  • เข้าหน้า emergency mode
  • Boot แล้วจอดำ
  • Boot แล้ววนกลับมาหน้า BIOS/UEFI
  • หลังอัปเดต Kernel แล้วเข้า Server ไม่ได้
  • แก้ /etc/fstab แล้วเครื่อง Boot ไม่ขึ้น

บทความนี้จะพาไล่ตรวจแบบเป็นขั้นตอนสำหรับ Rocky Linux 10 โดยเน้นการแก้ไขเบื้องต้นที่ใช้ได้จริง เหมาะสำหรับนักศึกษา ผู้ดูแลระบบ และผู้เริ่มต้นสาย Linux Server


เข้าใจก่อนว่า Boot ไม่ขึ้นมีหลายระดับ

เวลาบอกว่า “Boot ไม่ขึ้น” ไม่ได้แปลว่าปัญหาอยู่จุดเดียวเสมอไป กระบวนการ Boot ของ Rocky Linux โดยทั่วไปจะผ่านลำดับประมาณนี้

ดังนั้นการแก้ปัญหาที่ดีต้องดูว่าเครื่องค้างอยู่ “ขั้นตอนไหน” ไม่ควรรีบลงระบบใหม่ทันที เพราะหลายกรณีแก้ได้จาก GRUB, Rescue Mode หรือแก้ไฟล์ config เพียงไม่กี่บรรทัด


พื้นฐานที่จำเป็นก่อนเริ่ม

บทความนี้ทดสอบแนวทางกับ

  • OS: Rocky Linux 10.x
  • Boot Loader: GRUB2
  • Initramfs: dracut
  • Init System: systemd
  • Filesystem ที่พบบ่อย: XFS, ext4
  • เหมาะกับเครื่อง Physical Server, VM บน Proxmox, VMware, VirtualBox และ Cloud VM

สิ่งที่ควรมี

  • สิทธิ์ root หรือ sudo
  • Console Access เช่น หน้าจอเครื่องจริง, IPMI, iDRAC, iLO, Proxmox Console, VMware Console
  • Rocky Linux 10 ISO สำหรับเข้า Rescue Mode
  • Backup ล่าสุดของระบบ หากเป็น Production Server

⚠️ คำเตือน: คำสั่งบางส่วน เช่น grub2-install, xfs_repair, fsck, dracut -f มีผลกับระบบ Boot และ Disk โดยตรง ควรอ่านให้เข้าใจก่อนรัน และหากเป็น Production Server ควร Snapshot หรือ Backup ก่อนเสมอ


1. เริ่มจากดูอาการว่า Boot ค้างตรงไหน

ก่อนแก้ ให้สังเกตข้อความบนหน้าจอ เพราะข้อความเหล่านี้ช่วยบอกจุดเสียได้ดีมาก

กรณีที่ 1: ขึ้นหน้า GRUB แต่เลือก Boot แล้วไม่เข้า

มักเกี่ยวข้องกับ

  • Kernel ใหม่มีปัญหา
  • initramfs เสีย
  • root partition หาไม่เจอ
  • driver storage ไม่ถูกโหลด

แนวทางแรกคือเลือก Kernel เก่าก่อน

ที่หน้า GRUB ให้เลือกเมนูประมาณนี้

Rocky Linux (6.x.x-xxx.el10.x86_64) 10.x
Rocky Linux (rescue-xxxxxxxx) 10.x

ลองเลือก Kernel ที่เก่ากว่าหนึ่งเวอร์ชัน หากเข้าได้ แปลว่าปัญหาอาจเกิดจาก Kernel หรือ initramfs ตัวล่าสุด

เมื่อเข้าได้แล้วให้ตรวจสอบ Kernel ที่มีอยู่

# แสดง Kernel ที่ติดตั้งอยู่ในระบบ
rpm -q kernel

ตรวจสอบ Kernel ที่กำลังใช้งาน

# แสดง Kernel ปัจจุบัน
uname -r

แนะนำ screenshot: ถ่ายภาพหน้า GRUB ที่มีรายการ Kernel หลายเวอร์ชัน


2. ตรวจสอบ Log หลังเข้าเครื่องได้

ถ้าเลือก Kernel เก่าแล้วเข้าเครื่องได้ ให้ดู Log ของการ Boot รอบก่อนหน้า

# ดูรายการ boot ทั้งหมดที่ systemd journal บันทึกไว้
journalctl --list-boots

ดู Log ของการ Boot รอบล่าสุดที่มีปัญหา เช่น -1

# ดู log ของ boot ก่อนหน้า
journalctl -b -1 -p warning

ดู Error แบบละเอียด

# ดูเฉพาะ error ของ boot ก่อนหน้า
journalctl -b -1 -p err

ถ้าต้องการดู Log ของรอบปัจจุบัน

# ดู log boot ปัจจุบันแบบละเอียด
journalctl -xb

จุดที่ควรมองหา ได้แก่

Failed to mount
Dependency failed
dracut-initqueue timeout
Cannot find root device
A start job is running for /dev/disk/by-uuid/...

หากเจอข้อความเกี่ยวกับ mount หรือ UUID ให้ไปตรวจที่ /etc/fstab


3. แก้ปัญหา /etc/fstab ผิด ทำให้ Boot ไม่ขึ้น

กรณีนี้พบบ่อยมาก โดยเฉพาะหลังเพิ่ม Disk, Mount NAS, Mount External Disk หรือแก้ UUID เอง

ถ้าเครื่องเข้า Emergency Mode ได้ ให้ Login ด้วย root แล้วตรวจสอบไฟล์ /etc/fstab

# ดูรายการ mount ที่ระบบกำหนดไว้ตอน boot
cat /etc/fstab

ตรวจสอบ UUID จริงของ Disk

# แสดง UUID และ filesystem ของ block device
blkid

ดูโครงสร้าง Disk

# แสดง disk, partition, mount point และ filesystem
lsblk -f

ตัวอย่าง /etc/fstab ที่มีปัญหา

UUID=1234-XXXX  /data  xfs  defaults  0  0

ถ้า UUID ไม่มีอยู่จริง ระบบอาจค้างตอน Boot ได้ วิธีแก้ชั่วคราวคือใส่ nofail เพื่อไม่ให้ Boot ล้มเหลวหาก mount ไม่สำเร็จ

# ตัวอย่างเพิ่ม nofail สำหรับ disk เสริม
UUID=1234-XXXX  /data  xfs  defaults,nofail  0  0

หลังแก้แล้วทดสอบ mount

# ทดสอบ mount ทุก entry ใน /etc/fstab
mount -a

ถ้าไม่มี Error ให้ reboot ทดสอบ

# รีบูตระบบหลังแก้ไข
systemctl reboot

แนะนำ screenshot: หน้าจอ lsblk -f, blkid และ /etc/fstab


4. เข้า Rescue Target จากหน้า GRUB

ถ้าเครื่องเข้าโหมดปกติไม่ได้ แต่ยังเห็นหน้า GRUB ให้ลองเข้า Rescue Mode แบบชั่วคราว

ขั้นตอน

  1. ที่หน้า GRUB เลือก Kernel ที่ต้องการ
  2. กดปุ่ม e
  3. หาแถวที่ขึ้นต้นด้วย linux
  4. ต่อท้ายบรรทัดด้วย
systemd.unit=rescue.target
  1. กด Ctrl + x เพื่อ Boot

เมื่อเข้าได้แล้วให้ตรวจสอบปัญหา เช่น service ล้มเหลว, mount ไม่ผ่าน หรือ config ผิด

# ดู service ที่ล้มเหลว
systemctl --failed
# ดู log boot ปัจจุบัน
journalctl -xb

ถ้าแก้เสร็จแล้วกลับไป default target

# กลับสู่ multi-user target
systemctl default

หรือ reboot

# รีบูตระบบ
systemctl reboot

5. เข้า Emergency Target เมื่อ Rescue Mode เข้าไม่ได้

Emergency Mode จะ minimal กว่า Rescue Mode เหมาะกับกรณีระบบเสียหนักกว่า เช่น mount filesystem หลักมีปัญหา

ที่หน้า GRUB ให้กด e แล้วเพิ่มท้ายบรรทัด linux

systemd.unit=emergency.target

จากนั้นกด Ctrl + x

เมื่อเข้า Emergency Mode แล้ว root filesystem อาจเป็น read-only ให้ remount เป็น read-write ก่อนแก้ไฟล์

# remount root filesystem ให้เขียนได้
mount -o remount,rw /

จากนั้นแก้ไฟล์ที่มีปัญหา เช่น /etc/fstab

# เปิดแก้ไข fstab
vi /etc/fstab

ตรวจสอบ systemd failed units

# ดูรายการ unit ที่ failed
systemctl --failed

6. แก้ปัญหา dracut emergency shell

ถ้า Boot แล้วเจอหน้าประมาณนี้

dracut:/#

หรือ

Warning: /dev/mapper/rl-root does not exist
Entering emergency mode.

มักเกี่ยวข้องกับ

  • initramfs เสีย
  • LVM ไม่ถูก activate
  • UUID หรือ root device เปลี่ยน
  • Storage driver ไม่ถูกโหลด
  • Disk หาย หรือชื่อ Disk เปลี่ยน

ลองตรวจสอบ Disk ก่อน

# ดู block device ที่ระบบมองเห็น
lsblk

ตรวจสอบ LVM

# สแกน physical volume
lvm pvscan

# สแกน volume group
lvm vgscan

# activate volume group ทั้งหมด
lvm vgchange -ay

ถ้า activate แล้วเจอ root volume ให้ลอง reboot

# ออกจาก shell เพื่อให้ระบบ boot ต่อ หรือลอง reboot
reboot

ถ้ายังไม่ได้ อาจต้องเข้า Rescue Mode จาก ISO แล้วสร้าง initramfs ใหม่


7. เข้า Rescue Mode จาก Rocky Linux 10 ISO

ถ้าระบบเข้าไม่ได้เลย ให้ใช้ Rocky Linux 10 ISO Boot เข้า Rescue Mode

ขั้นตอนโดยรวม

  1. Boot จาก Rocky Linux 10 ISO
  2. เลือกเมนู Troubleshooting
  3. เลือก Rescue a Rocky Linux system หรือเมนูแนวเดียวกัน
  4. เลือกให้ระบบ mount installation เดิม
  5. เข้าสู่ shell
  6. ทำ chroot เข้าไปยังระบบเดิม

หลังเข้า Rescue Environment แล้ว ระบบมัก mount ระบบเดิมไว้ที่ /mnt/sysroot

# เปลี่ยน root ไปยังระบบ Rocky Linux เดิม
chroot /mnt/sysroot

ตรวจสอบว่าเข้าระบบเดิมแล้ว

# ตรวจสอบ OS release
cat /etc/rocky-release

แนะนำ screenshot: หน้า Troubleshooting และ Rescue Mode ของ Rocky Linux ISO


8. สร้าง initramfs ใหม่ด้วย dracut

ถ้าสงสัยว่า initramfs เสีย หรือหลังอัปเดต Kernel แล้ว Boot ไม่ขึ้น ให้สร้าง initramfs ใหม่

ตรวจสอบ Kernel ที่มีอยู่

# ดูไฟล์ kernel และ initramfs ใน /boot
ls -lh /boot

สร้าง initramfs ใหม่ให้ Kernel ปัจจุบัน

# สร้าง initramfs ใหม่ให้ kernel ปัจจุบัน
dracut -f

หรือระบุ Kernel version โดยตรง

# แทน <kernel-version> ด้วยเวอร์ชันจริง เช่น 6.12.0-xxx.el10.x86_64
dracut -f /boot/initramfs-<kernel-version>.img <kernel-version>

ตัวอย่าง

# ตัวอย่างการ rebuild initramfs แบบระบุเวอร์ชัน
dracut -f /boot/initramfs-6.12.0-211.16.1.el10_2.x86_64.img 6.12.0-211.16.1.el10_2.x86_64

จากนั้น reboot

# ออกจาก chroot
exit

# รีบูตระบบ
reboot

9. ซ่อม GRUB2 บนเครื่องแบบ BIOS

ก่อนซ่อม GRUB ต้องรู้ก่อนว่าเครื่องใช้ BIOS หรือ UEFI

ตรวจสอบจากระบบที่เข้าได้ หรือจาก chroot

# ถ้ามี directory นี้ มักเป็นระบบ UEFI
ls /sys/firmware/efi

ถ้าไม่มี /sys/firmware/efi มักเป็น BIOS/Legacy Boot

ตรวจสอบ Disk

# ดู disk หลักของเครื่อง
lsblk

ตัวอย่าง Disk หลักคือ /dev/sda

⚠️ ระวังอย่าใส่ partition เช่น /dev/sda1 ในกรณีติดตั้ง GRUB แบบ BIOS ควรเป็น disk เช่น /dev/sda

# ติดตั้ง GRUB2 ใหม่ลง disk หลักแบบ BIOS
grub2-install /dev/sda

สร้าง config ใหม่

# สร้างไฟล์ config ของ GRUB2 ใหม่
grub2-mkconfig -o /boot/grub2/grub.cfg

รีบูต

# รีบูตเครื่อง
reboot

10. ซ่อม GRUB2 บนเครื่องแบบ UEFI

ถ้าเป็น UEFI ให้ตรวจสอบว่า /boot/efi ถูก mount แล้วหรือยัง

# ตรวจสอบ mount point ของ EFI System Partition
mount | grep /boot/efi

ถ้ายังไม่ mount ให้ดู partition ก่อน

# ดู partition และ filesystem
lsblk -f

EFI System Partition มักเป็น FAT32/VFAT และ mount ที่ /boot/efi

ตัวอย่าง mount เอง

# ตัวอย่าง mount EFI partition ให้ปรับ /dev/sda1 ตามเครื่องจริง
mount /dev/sda1 /boot/efi

ติดตั้งแพ็กเกจ GRUB และ shim ใหม่

# ติดตั้ง bootloader files ใหม่สำหรับ UEFI
dnf reinstall -y grub2-efi-x64 shim

สร้าง GRUB config ใหม่

# สร้าง config ของ GRUB2 ใหม่
grub2-mkconfig -o /boot/grub2/grub.cfg

ตรวจสอบรายการ UEFI Boot

# ดูรายการ boot entry ของ UEFI
efibootmgr -v

รีบูต

# รีบูตระบบ
reboot

11. ตรวจสอบ Filesystem เสียหาย

ถ้าข้อความ Boot มีคำว่า filesystem error, metadata corruption, journal error หรือ mount ไม่สำเร็จ อาจต้องตรวจ filesystem

ดู filesystem

# ดู filesystem ของแต่ละ partition
lsblk -f

กรณี XFS

Rocky Linux มักใช้ XFS เป็นค่าเริ่มต้นในหลายรูปแบบการติดตั้ง

⚠️ ห้ามซ่อม XFS ขณะที่ partition ถูก mount อยู่ ควรทำจาก Rescue Mode และ unmount ก่อน

ตรวจแบบไม่แก้ไข

# ตรวจ XFS แบบ dry-run ยังไม่แก้จริง
xfs_repair -n /dev/mapper/rl-root

ถ้าพบปัญหาและแน่ใจว่า unmount แล้ว จึงซ่อมจริง

# ซ่อม XFS จริง ใช้ด้วยความระมัดระวัง
xfs_repair /dev/mapper/rl-root

กรณี ext4

ตรวจและซ่อม ext4

# ตรวจและซ่อม ext4 ต้องทำตอน unmount
fsck -f /dev/sda2

หลังซ่อมเสร็จให้ reboot

# รีบูตหลังซ่อม filesystem
reboot

12. ปัญหาจาก SELinux หลังแก้ไฟล์ระบบ

บางกรณีหลังแก้ไฟล์สำคัญใน Rescue Mode เช่น /etc/shadow, /etc/fstab, ไฟล์ใน /boot หรือย้ายไฟล์ระบบ อาจต้องทำ SELinux relabel

# สั่งให้ระบบ relabel SELinux context ตอน boot รอบถัดไป
touch /.autorelabel

จากนั้น reboot

# reboot เพื่อให้ระบบทำ relabel
reboot

⚠️ การ relabel อาจใช้เวลานาน โดยเฉพาะเครื่องที่มีไฟล์จำนวนมาก อย่าปิดเครื่องระหว่างกระบวนการ


13. ตรวจสอบหลังแก้เสร็จ

เมื่อระบบ Boot กลับมาได้แล้ว อย่าเพิ่งจบงาน ควรตรวจสอบความสมบูรณ์ของระบบต่อ

# ดู service ที่ล้มเหลว
systemctl --failed
# ตรวจ log error ของ boot ปัจจุบัน
journalctl -b -p err
# ตรวจ disk usage
df -h
# ตรวจ mount point และ filesystem
lsblk -f
# ตรวจ kernel ปัจจุบัน
uname -r
# ตรวจรายการ kernel ที่ติดตั้ง
rpm -q kernel

ถ้าเป็น Server ที่เปิด SSH ให้ตรวจสอบด้วย

# ตรวจสถานะ SSH
systemctl status sshd
# ตรวจ IP address
ip addr

14. Checklist แก้ Boot ไม่ขึ้นแบบเร็ว

ใช้รายการนี้เป็นแนวทางไล่ตรวจหน้างาน

[ ] เห็นหน้า BIOS/UEFI หรือไม่
[ ] เห็นหน้า GRUB หรือไม่
[ ] เลือก Kernel เก่าแล้วเข้าได้หรือไม่
[ ] เข้า rescue.target ได้หรือไม่
[ ] เข้า emergency.target ได้หรือไม่
[ ] มีข้อความ Failed to mount หรือไม่
[ ] ตรวจ /etc/fstab แล้วหรือยัง
[ ] ตรวจ UUID ด้วย blkid แล้วหรือยัง
[ ] ตรวจ Disk ด้วย lsblk -f แล้วหรือยัง
[ ] มี dracut emergency shell หรือไม่
[ ] ตรวจ LVM ด้วย vgscan/vgchange แล้วหรือยัง
[ ] rebuild initramfs ด้วย dracut แล้วหรือยัง
[ ] ตรวจว่าเครื่องเป็น BIOS หรือ UEFI แล้วหรือยัง
[ ] reinstall GRUB ถูกวิธีตาม BIOS/UEFI แล้วหรือยัง
[ ] ตรวจ filesystem ด้วย xfs_repair -n หรือ fsck แล้วหรือยัง
[ ] ตรวจ systemctl --failed หลัง Boot สำเร็จแล้วหรือยัง

15. ตัวอย่างสถานการณ์จริง

สถานการณ์ที่ 1: เพิ่ม Disk แล้ว Boot ไม่ขึ้น

สาเหตุที่พบบ่อยคือเพิ่มบรรทัดใน /etc/fstab ผิด UUID

แนวทางแก้

# เข้า emergency mode แล้ว remount root เป็น read-write
mount -o remount,rw /

# ตรวจ UUID จริง
blkid

# แก้ fstab
vi /etc/fstab

# ทดสอบ mount
mount -a

แนะนำให้เพิ่ม nofail สำหรับ Disk ที่ไม่ใช่ root filesystem

UUID=xxxx-xxxx  /data  xfs  defaults,nofail  0  0

สถานการณ์ที่ 2: อัปเดต Kernel แล้ว Boot ไม่ขึ้น

ให้เลือก Kernel เก่าที่หน้า GRUB ก่อน หากเข้าได้ให้ rebuild initramfs

# สร้าง initramfs ใหม่
sudo dracut -f

จากนั้นสร้าง GRUB config ใหม่

# สร้าง GRUB config ใหม่
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

แล้ว reboot

# รีบูตระบบ
sudo systemctl reboot

สถานการณ์ที่ 3: GRUB หายหลังติดตั้ง OS อื่น

ถ้าเป็น Dual Boot หรือมีการติดตั้ง OS อื่นทับ Boot Loader ให้เข้า Rescue Mode จาก ISO แล้วติดตั้ง GRUB ใหม่

สำหรับ BIOS

# ติดตั้ง GRUB ใหม่ลง disk หลัก
grub2-install /dev/sda

# สร้าง config ใหม่
grub2-mkconfig -o /boot/grub2/grub.cfg

สำหรับ UEFI

# ติดตั้ง bootloader files ใหม่
dnf reinstall -y grub2-efi-x64 shim

# สร้าง config ใหม่
grub2-mkconfig -o /boot/grub2/grub.cfg

สรุป

การแก้ปัญหา Rocky Linux 10 Boot ไม่ขึ้นควรเริ่มจากการวิเคราะห์ว่าเครื่องค้างที่ขั้นตอนไหน ไม่ว่าจะเป็น BIOS/UEFI, GRUB2, Kernel, initramfs, systemd หรือ filesystem เพราะแต่ละจุดมีวิธีแก้ต่างกัน

แนวทางที่ปลอดภัยคือเริ่มจากเลือก Kernel เก่า เข้า Rescue Mode หรือ Emergency Mode ตรวจ /etc/fstab, journalctl, lsblk, blkid ก่อน แล้วจึงค่อย rebuild initramfs หรือ reinstall GRUB2 หากจำเป็น

สำหรับผู้ดูแลระบบ แนะนำให้เตรียม Rocky Linux 10 ISO, ทำ Snapshot ก่อนอัปเดต Kernel, เก็บ Backup ของ /etc/fstab และฝึกเข้า Rescue Mode ไว้ล่วงหน้า เพราะเวลาระบบล่มจริง การรู้ลำดับแก้ไขจะช่วยลด Downtime ได้มาก



Write by Dr.Arnut Ruttanatirakul
SysAdmin Knowledge
https://www.sysadmin.in.th
June 11, 2026