当 Linux 无法正常启动时,原因之一可能是 GRUB(引导加载程序)损坏。
如果 GRUB 出现问题,系统可能会停在 grub rescue、黑屏,或者根本无法进入操作系统。
本文将说明 GRUB 损坏时常见的症状、可能原因,以及从 Live USB 进行修复的基本方法。
1. GRUB 损坏时会出现哪些症状?
- 开机后只显示
grub rescue - 出现 “no such partition” 等错误
- 系统无法进入 Linux,只停留在黑屏
- 更新后突然无法启动
如果出现这些现象,GRUB 本身或启动相关分区可能已经损坏。
2. 常见原因
- 系统更新中断
- 硬盘分区结构被修改
- Windows 与 Linux 双系统改写了启动信息
- EFI 分区或 /boot 分区损坏
- 磁盘故障导致引导文件丢失
特别是在调整分区、重装系统或更新内核之后,更容易出现这类问题。
3. 先使用 Live USB 启动
当系统无法正常启动时,最稳妥的方法是先使用 Linux Live USB 启动电脑。 启动后打开终端,确认分区情况。
lsblk -f
请确认 Linux 根分区以及 EFI 分区分别是哪一个设备。
4. 挂载系统并修复 GRUB
以下是常见的修复步骤示例。设备名请根据你的环境替换。
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi # 仅 UEFI 环境需要
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
进入 chroot 后,重新安装 GRUB。
grub-install /dev/sda
如果是 UEFI 环境,也可以使用如下形式。
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
然后重新生成启动配置。
update-grub
完成后退出并重启。
exit
sudo reboot
5. 如果 update-grub 不可用
在 Fedora 等发行版中,可能需要使用 grub2-mkconfig。
例如:
grub2-mkconfig -o /boot/grub2/grub.cfg
UEFI 环境下输出文件路径可能不同,请根据发行版确认。
总结
GRUB 损坏是 Linux 无法启动的常见原因之一。 出现问题时,不必急于重装系统,通常可以按以下顺序尝试恢复:
- 使用 Live USB 启动
- 确认 Linux 分区与 EFI 分区
- 挂载系统并进入 chroot
- 重新安装 GRUB
- 重新生成启动配置
只要磁盘本身没有严重损坏,很多情况下都可以通过上述步骤恢复启动。