| 現象 | 可能原因 | 首要工具 |
|---|---|---|
| GRUB 不出現 / error: no such partition | MBR/GPT 損壞、分區表錯誤、Windows 覆寫 | Live USB + grub-install |
| GRUB 救援模式 (grub>) | grub.cfg 遺失、路徑錯誤、核心檔案缺失 | GRUB 內建指令 + 重建配置 |
| Kernel panic / VFS: Unable to mount root | initramfs 缺少驅動、root= 參數錯誤、檔案系統損壞 | 重建 initramfs / 修正 kernel 參數 |
| 進入 emergency mode | fstab 錯誤、磁碟損壞、服務啟動失敗 | journalctl -xb / fsck / 修正 fstab |
| 黑畫面 / 閃爍 / 圖形介面不啟動 | 顯卡驅動、Wayland/X11 配置、顯示管理器 | nomodeset / 重裝驅動 / 切換 DM |
# 假設:/dev/sda2 = /, /dev/sda1 = /boot/efi (UEFI) 或 /boot (BIOS 獨立分區)
TARGET=/mnt/fix
mkdir -p $TARGET
mount /dev/sda2 $TARGET
mount /dev/sda1 $TARGET/boot/efi # UEFI
# 若 /boot 獨立分區在 /dev/sda3
# mount /dev/sda3 $TARGET/boot
# 掛載虛擬檔案系統
for d in dev proc sys run; do mount --bind /$d $TARGET/$d; done
# 進入 chroot
chroot $TARGET
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
# 確認 EFI 分區掛載於 /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=linux --recheck
grub-mkconfig -o /boot/grub/grub.cfg
# 若 shim/簽名鏈損壞
dnf reinstall shim-x64 grub2-efi-x64 grub2-common -y # Fedora/RHEL
apt install --reinstall shim-signed grub-efi-amd64-signed -y # Ubuntu/Debian
ls # 列出 (hd0,gpt1), (hd0,gpt2) ...
set prefix=(hd0,gpt2)/boot/grub
set root=(hd0,gpt2)
insmod normal
normal
# 進入選單後選擇啟動,進入系統再執行 grub-install
# 1. 確認核心版本
KVER=$(ls /lib/modules | sort -V | tail -1)
# 2. 重建 initramfs
# Fedora/RHEL/CentOS
dracut --force --kver $KVER /boot/initramfs-$KVER.img $KVER
# Debian/Ubuntu
update-initramfs -u -k $KVER
# Arch
mkinitcpio -k $KVER -g /boot/initramfs-$KVER.img
# 3. 重建 GRUB 選單 (確保新 initramfs 被引用)
grub-mkconfig -o /boot/grub/grub.cfg
# 1. 檢查 journal
journalctl -xb | grep -i -e error -e fail -e mount
# 2. 檢查 fstab 語法
cat /etc/fstab
# 常見錯誤:UUID 錯誤、檔案系統類型錯誤、掛載點目錄不存在、選項拼寫錯誤
# 3. 修正後驗證
mount -a
systemctl daemon-reload
# 4. 檔案系統修復 (需卸載)
fsck -f /dev/sda2 # ext4
xfs_repair /dev/sda2 # XFS
btrfs check --repair /dev/sda2 # Btrfs (謹慎使用)
SystemRescue(原 SystemRescueCd)基於 Arch Linux,專為修復設計:
parted, gparted, fdisk, gdisk, testdisk, photorec, ddrescue, btrfs-progs, zfs, lvm2, mdadm, cryptsetup, nfs-utils, samba, rsync, vim, mc, networkmanager# 下載 ISO
wget https://sourceforge.net/projects/systemrescuecd/files/latest/download -O systemrescue.iso
# 寫入 USB (假設 /dev/sdX)
dd if=systemrescue.iso of=/dev/sdX bs=4M status=progress conv=fsync
sync
testdisk 互動式掃描恢復遺失分區photorec 檔案雕刻、ddrescue 壞軌複製vgscan, vgchange -ay, mdadm --assemble --scancryptsetup luksOpen /dev/sda2 cryptrootchntpw -u username /mnt/Windows/System32/config/SAM文章提及的 mkrescue 為 Mandriva/Slackware 專用工具,現代系統已由 grub-mkrescue、dracut --rescue、SystemRescue 取代。不建議在新系統使用。
/etc/default/grub 固定 GRUB_CMDLINE_LINUX_DEFAULTapt-mark hold / dnf versionlock 核心、GRUB、systemdsmartctl -a /dev/sda、nvme smart-log /dev/nvme0/etc、Ansible Playbook 記錄基礎設施即代碼遇到無法啟動:不恐慌、不亂重啟、先 Live USB 保留現場、分層診斷、逐層修復。