GRUB引导失败需按报错分类处理:grub>或grub rescue>表明GRUB未正确安装;Error 15为内核或initrd路径错误;Error 17系根分区UUID变更或文件系统不识别;黑屏多因显卡驱动冲突或initramfs损坏。

如果您在启动Linux系统时遭遇GRUB引导失败,屏幕停留在grub>、grub rescue>、Error 15、Error 17或黑屏等状态,则说明引导链在GRUB阶段中断。以下是覆盖多种典型故障场景的完整排查与修复流程:
一、依据报错信息快速分类故障类型
启动时出现的提示是首要诊断线索,不同报错指向不同层级的问题: “grub>”或“grub rescue>”表明GRUB主程序损坏或未正确安装到MBR/EFI分区;“Error 15: File not found”说明grub.cfg中指定的内核(vmlinuz)或initrd路径错误或文件缺失;“Error 17: Cannot mount selected partition”反映root=参数指向的根分区UUID变更、文件系统不被识别或/boot未挂载;黑屏/光标闪烁/无限重启常由显卡驱动冲突、initramfs损坏或内核panic导致。
二、临时编辑启动项进入系统
该方法适用于GRUB菜单仍可显示但默认项无法启动的情形,通过最小干预绕过当前错误,争取进入已安装系统完成后续修复。
1、在GRUB启动菜单界面按e键进入编辑模式。
2、定位以linux开头的行,检查其后root=参数值是否匹配当前根分区的实际UUID;若不确定,可在Live环境执行sudo blkid确认。
3、核对initrd行所列镜像文件名(如/boot/initrd.img-6.8.0-xx-generic)是否真实存在于/boot目录下;若路径错误或文件不存在,可临时删除整行再尝试启动。
4、若怀疑显卡驱动引发问题,在linux行末尾追加nomodeset(禁用GPU内核模式设置)或acpi=off(关闭ACPI支持,适用于老旧硬件)。
5、编辑完成后按Ctrl+X或F10启动;成功进入系统后立即执行sudo update-grub或sudo grub2-mkconfig -o /boot/grub2/grub.cfg更新配置。
三、使用GRUB命令行手动引导
当仅显示grub>或grub rescue>提示符且无菜单时,需依赖GRUB内置命令逐层加载组件,前提是/boot分区可被识别且关键文件完好。
1、输入ls列出所有磁盘与分区,例如输出(hd0) (hd0,gpt1) (hd0,gpt2)。
2、依次执行ls (hd0,gpt1)/、ls (hd0,gpt2)/等,寻找包含vmlinuz-、initramfs-及grub/或grub2/目录的分区,记下该分区标识(如(hd0,gpt2))。
3、执行set root=(hd0,gpt2)设定/boot所在分区为根设备。
4、执行insmod normal加载正常模块;若提示unknown filesystem,尝试先加载对应文件系统模块,如insmod xfs或insmod ext2。
5、执行linux /vmlinuz-xxxx root=/dev/mapper/centos-root ro(LVM环境)或linux /vmlinuz-xxxx root=/dev/sda2 ro(普通分区),其中xxxx可用Tab键自动补全内核版本号。
6、执行initrd /initramfs-xxxx.img加载初始内存盘镜像。
7、执行boot启动系统。
四、通过Live环境重装GRUB引导程序
当无法通过命令行临时引导时,必须借助外部Live USB/CD环境重建GRUB安装,此操作将恢复MBR或EFI引导扇区及必要模块。
1、启动Live系统,打开终端,运行lsblk -f或sudo fdisk -l识别目标硬盘(如/dev/sda)及根分区(如/dev/sda2)。
2、挂载根分区:sudo mount /dev/sda2 /mnt。
3、若/boot或/boot/efi为独立分区,需分别挂载:sudo mount /dev/sda1 /mnt/boot、sudo mount /dev/sda3 /mnt/boot/efi(根据实际分区调整)。
4、绑定虚拟文件系统:sudo mount -t proc proc /mnt/proc、sudo mount -t sysfs sys /mnt/sys、sudo mount -o bind /dev /mnt/dev。
5、切换至原系统环境:sudo chroot /mnt。
6、根据固件类型执行重装:BIOS模式运行grub-install /dev/sda;UEFI模式运行grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB。
7、更新GRUB配置:update-grub或grub2-mkconfig -o /boot/grub2/grub.cfg。
8、退出chroot并重启:exit两次,拔出Live介质后重启。
五、验证底层硬件与文件系统健康状态
即使GRUB恢复启动,若磁盘存在物理缺陷或文件系统损坏,仍可能再次触发引导异常,因此需同步检查基础支撑层。
1、在Live环境或已启动系统中运行sudo smartctl -a /dev/sda,重点观察Reallocated_Sector_Ct与Current_Pending_Sector两项数值,非零即表示磁盘存在不可逆坏道风险。
2、若怀疑文件系统异常,先卸载目标分区:sudo umount /dev/sda2。
3、对ext4/ext3分区执行强制修复:sudo fsck -y /dev/sda2。
4、对XFS分区执行修复:sudo xfs_repair /dev/sda2。
5、修复完成后重新挂载:sudo mount -a,并检查/boot目录下是否存在vmlinuz-、initramfs-及grub2/grub.cfg等关键文件。

















