grub 启动故障通常无需重装系统,关键在定位配置、引导程序、内核路径或硬件识别问题;依据报错类型(如 grub>、error 15/17、黑屏)快速判断,并通过编辑启动项、live 环境重装 grub 或检查磁盘 / 文件系统修复。

GRUB 启动故障是 Linux 系统无法进入的第一道关卡,多数情况不用重装系统,关键在快速定位是配置、引导程序、内核路径还是硬件识别出了问题。
看报错信息,先分清类型
启动时出现的提示是重要线索:
- “grub>”或“grub rescue>”:GRUB 主程序损坏或丢失,MBR/EFI 分区未正确安装
- “Error 15: File not found”:配置里指定的内核(vmlinuz)或 initrd 路径错误,常见于手动改过
/boot/grub/grub.cfg或/etc/grub.d/脚本后 - “Error 17: Cannot mount selected partition”:root= 参数指向的分区不存在、UUID 变化、文件系统类型不识别,或 /boot 单独分区未挂载
- 黑屏 / 卡在光标闪烁 / 无限重启:可能是显卡驱动冲突(尤其 NVIDIA)、initramfs 缺失、或内核 panic 但没显示出来
临时绕过,进系统再修复
在 GRUB 菜单界面按 e 编辑当前启动项,做最小干预:
- 找到以
linux开头的行,检查root=后面是否为当前根分区的正确 UUID(可用blkid命令确认),不是则改成root=UUID=xxxx-xxxx或root=/dev/sda2 - 确认
initrd行中镜像文件名存在(如/boot/initrd.img-6.8.0-xx-generic),若路径不对或文件缺失,临时删掉整行试试 - 显卡问题可追加内核参数:
nomodeset(禁用 GPU 驱动)或acpi=off(关闭 ACPI,老硬件常用) - 编辑完按
Ctrl+X或F10启动;成功进系统后立即执行sudo update-grub
用 Live 环境彻底重装 GRUB
当无法临时启动时,需借助 Live USB/CD 操作:
- 启动 Live 系统,打开终端,识别硬盘和分区:
lsblk -f或sudo fdisk -l - 挂载根分区(假设为
/dev/sda2):sudo mount /dev/sda2 /mnt - 若
/boot或/boot/efi是独立分区,一并挂载:sudo mount /dev/sda1 /mnt/boot,sudo mount /dev/sda3 /mnt/boot/efi - 绑定必要虚拟文件系统:
sudo mount -t proc proc /mnt/proc,sudo mount -t sysfs sys /mnt/sys,sudo mount -o bind /dev /mnt/dev - 切换到原系统环境:
sudo chroot /mnt - 重新安装 GRUB:
• BIOS 传统模式:grub-install /dev/sda
• UEFI 模式:grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
• 最后更新配置:update-grub - 退出 chroot,重启
检查底层支撑是否完好
GRUB 能跑起来,不代表底层没问题:
- 运行
sudo smartctl -a /dev/sda查看磁盘 SMART 健康状态,重点看Reallocated_Sector_Ct和Current_Pending_Sector - 强制检查文件系统:
sudo fsck -y /dev/sda2(ext 系列)或sudo xfs_repair -L /dev/sda2(xfs,- L 会清空日志,慎用) - 确认 initramfs 是否完整:
ls /boot/initrd.img*,对比uname -r输出,缺失则重建:sudo update-initramfs -u -k all(Debian 系)或sudo dracut -f(RHEL 系) - 检查
/etc/fstab中所有挂载项是否真实存在且格式正确,错误条目会导致启动卡在“Started File System Check on Root Device”






























