grub2 引导丢失或显示 grub rescue 如何用 livecd 修复(2025最新)

14次阅读

GRUB2引导丢失或卡在grub rescue>提示符时,应使用LiveCD/usb启动并挂载原系统分区,绑定/dev/proc/sys后chroot,再依bios或UEFI模式执行grub-install及update-grub修复。

grub2 引导丢失或显示 grub rescue 如何用 livecd 修复(2025最新)

GRUB2 引导丢失或卡在 grub rescue> 提示符,通常是因为 GRUB 核心镜像损坏、/boot/grub 文件缺失、分区 UUID 变更,或 windows 重装覆盖了 MBR。用 LiveCD/USB 修复是目前最稳定可靠的方式,2025 年主流发行版(ubuntu 24.04+、debian 12+、Fedora 39+)均支持该流程,无需额外工具

确认 linux 分区位置

插入 LiveCD/USB 启动后,打开终端(Ctrl+Alt+T),先查看磁盘分区结构:

  • 运行 sudo fdisk -l:找 ID 为 83 LinuxLinux Filesystem 的分区(如 /dev/nvme0n1p2/dev/sda3
  • /boot 单独分区(常见于 LVM、加密或 UEFI 系统),需一并识别(类型常为 EF02 或仍为 83
  • 快速验证:用 sudo blkid 查看各分区的 UUIDFSTYPE,确认哪个含 ext4xfs 且挂载点应为 /

挂载原系统并进入 chroot 环境

假设根分区是 /dev/sda3/boot 在同一分区(无单独 /boot):

  • 挂载根分区sudo mount /dev/sda3 /mnt
  • 挂载虚拟文件系统(必需,否则 grub-install 会失败):
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
  • 进入原系统环境sudo chroot /mnt

/boot 在独立分区(如 /dev/sda1),在挂载根后加:mount /dev/sda1 /boot(确保 /boot 目录存在且为空)。

重新安装 GRUB2 并更新配置

chroot 环境中执行:

  • BIOS/CSM 模式(传统 MBR):grub-install /dev/sda(目标磁盘,不是分区)
  • UEFI 模式(必须已挂载 EFI 分区,如 /dev/sda1/boot/efi):
    grub-install --target=x86_64-efi --efi-Directory=/boot/efi --bootloader-id=ubuntu
  • 生成最新引导菜单update-grub(Ubuntu/Debian)或 grub2-mkconfig -o /boot/grub/grub.cfg(Fedora/RHEL)
  • 检查输出是否含 Installation finished. No Error reported.Found linux image... 等成功提示

重启前收尾与验证

退出 chroot 并安全卸载:

  • Ctrl+D 或输入 exit 退出 chroot
  • 依次卸载:sudo umount -R /mnt(推荐用 -R 递归卸载所有绑定)
  • 重启:sudo reboot,拔掉 Live 媒介
  • 若仍进 grub rescue,说明分区识别有误或 EFI 分区未正确挂载;可先进入 BIOS/UEFI 设置,确认启动模式(UEFI/Legacy)与安装时一致

不复杂但容易忽略关键点:虚拟文件系统绑定、目标磁盘指定准确、UEFI 下 /boot/efi 是否已挂载且格式为 FAT32。

text=ZqhQzanResources