Triệu chứng chính: màn hình You are in emergency mode. After logging in, type "journalctl -xb"..., prompt (initramfs), prompt grub> / grub rescue>, hoặc kernel panic VFS: Unable to mount root fs. Cần console (iDRAC/iLO, console VM, cloud serial console); SSH thường không có.
Lỗi thường gặp
| Triệu chứng | Nguyên nhân | Cách xử lý |
|---|---|---|
Emergency mode ngay sau khi sửa /etc/fstab |
Sai UUID, sai fstype, disk dữ liệu bị gỡ | Sửa fstab (bước 2), thêm nofail cho disk không phải root |
Emergency mode, log có Dependency failed for /srv/data |
Mount unit lỗi, disk hỏng hoặc chưa sẵn sàng | systemctl --failed, journalctl -xb -u srv-data.mount |
Prompt (initramfs), báo UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY |
Filesystem root lỗi (mất điện, disk lỗi) | fsck -y /dev/<root> ngay trong initramfs rồi exit |
(initramfs) báo ALERT! UUID=... does not exist |
Đổi controller/disk, initramfs thiếu driver, LVM chưa activate | blkid, lvm vgchange -ay, sau đó boot lại và update-initramfs -u |
grub rescue> / error: unknown filesystem |
GRUB không tìm thấy /boot (partition đổi, disk đổi thứ tự) |
Boot live ISO → chroot → grub-install + update-grub |
grub> (không có menu) |
Thiếu/hỏng grub.cfg |
Boot thủ công hoặc chroot và update-grub |
| Kernel mới panic, kernel cũ boot được | initramfs của kernel mới lỗi, module/driver | Chọn kernel cũ ở Advanced options, update-initramfs -u -k <ver> |
Boot rất chậm, dừng ~90 giây với A start job is running for /dev/disk/by-uuid/... |
Device trong fstab không tồn tại | Sửa/xoá dòng đó, hoặc nofail,x-systemd.device-timeout=10s |
/ mount read-only |
Kernel remount ro vì lỗi FS | Xem dmesg, fsck lần boot sau; kiểm tra disk bằng smartctl -a |
| Quên mật khẩu root / sudo hỏng | sudoers lỗi, user bị khoá | Boot vào rescue/init=/bin/bash (bước 3), sửa rồi reboot |
Các bước khoanh vùng
flowchart TD A["Máy không boot"] --> B{"Thấy menu GRUB?"} B -->|"grub rescue / grub>"| C["Live ISO, chroot, grub-install, update-grub"] B -->|Có| D{"Dừng ở đâu?"} D -->|"(initramfs)"| E["fsck root, kiểm tra UUID / LVM"] D -->|"emergency mode"| F["journalctl -xb, sửa fstab"] D -->|"kernel panic"| G["Chọn kernel cũ, update-initramfs"]
1. Hiện menu GRUB và sửa tham số kernel tạm thời
- BIOS: giữ
Shiftkhi boot; UEFI: nhấnEsc(lặp lại) ngay sau logo firmware. - Chọn entry, nhấn
e, sửa dòng bắt đầu bằnglinux, nhấnCtrl-x(hoặcF10) để boot. Thay đổi chỉ áp cho lần boot này.
Thêm vào cuối dòng linux |
Kết quả |
|---|---|
systemd.unit=rescue.target |
Single-user, đã mount filesystem, có root shell |
systemd.unit=emergency.target |
Tối thiểu nhất, / mount read-only, không mount gì khác |
init=/bin/bash |
Bỏ qua systemd, shell root ngay; / read-only |
nomodeset |
Bỏ driver đồ hoạ khi màn hình đen |
2. Sửa fstab từ emergency mode
journalctl -xb -p err # lỗi của lần boot này
systemctl --failed # unit mount nào hỏng
mount -o remount,rw / # root đang ro thì remount rw để sửa
lsblk -f # UUID thật của các device
blkid
nano /etc/fstab # sửa UUID, thêm nofail hoặc comment dòng lỗi
findmnt --verify # kiểm tra fstab
systemctl daemon-reload && mount -a # thử mount, không lỗi mới reboot
reboot3. Shell từ init=/bin/bash
mount -o remount,rw /
passwd root # hoặc sửa /etc/fstab, /etc/sudoers.d/*
sync
exec /sbin/init # hoặc: reboot -f4. Từ prompt initramfs
# Gõ tại prompt (initramfs), shell busybox
blkid # thấy root device không?
lvm vgchange -ay # root trên LVM chưa active
fsck -y /dev/mapper/ubuntu--vg-ubuntu--lv
exit # tiếp tục bootKhông chạy fsck trên filesystem đang mount read-write: hỏng dữ liệu. Chạy từ initramfs, emergency mode (root ro) hoặc live ISO.
5. Chroot từ live ISO để sửa GRUB / initramfs
# Root trên /dev/sda2 (LVM: vgchange -ay rồi dùng /dev/mapper/...), EFI trên /dev/sda1
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi # chỉ với UEFI
for d in dev proc sys run; do sudo mount --bind /$d /mnt/$d; done
sudo chroot /mnt
grub-install /dev/sda # BIOS; UEFI: grub-install --target=x86_64-efi --efi-directory=/boot/efi
update-initramfs -u -k all
update-grub
exit
sudo umount -R /mnt && sudo rebootCấu hình đúng
# Root và /boot/efi: không nofail. Disk dữ liệu, NFS: nofail + timeout ngắn
UUID=3f1c2a9e-0000-4000-8000-000000000001 /srv/data ext4 defaults,nofail,x-systemd.device-timeout=10s 0 2
198.51.100.30:/export/backup /mnt/nfs nfs defaults,nofail,_netdev 0 0- Sửa fstab xong luôn chạy
findmnt --verifyvàmount -atrước khi reboot. - Giữ ít nhất 2 kernel (
apt autoremovemặc định giữ kernel đang chạy và bản trước) để còn đường lùi. GRUB_TIMEOUT_STYLE=menuvàGRUB_TIMEOUT=5trong/etc/default/grub(rồiupdate-grub) để luôn thấy menu trên server khó vào console.
Kiểm tra nhanh
journalctl --list-boots # boot lỗi có ghi log không (journal bền)
journalctl -b -1 -p err # lỗi của lần boot trước
systemctl --failed
findmnt --verify
lsblk -f; cat /etc/fstab
ls /boot/vmlinuz-* /boot/initrd.img-* # kernel và initramfs có đủ cặpLiên quan: LVM và ổ đĩa, journalctl cheatsheet.