GRUB2修复需先确认BIOS/MBR或UEFI/GPT启动模式,再通过Live USB挂载根、/boot、/boot/efi(UEFI)分区及虚拟文件系统,chroot后依启动模式执行grub-install并更新配置,最后卸载重启。

遇到 grub rescue> 提示,说明 GRUB2 的核心模块无法加载或找不到配置文件,但硬盘数据通常完好。用 Live USB 修复是最稳妥、最常用的方法,2025 年主流发行版(Ubuntu 24.04、Debian 12、Fedora 39 等)操作逻辑一致,关键在分区识别准确、挂载完整、安装目标匹配启动模式。
确认启动模式与磁盘分区
先别急着装 GRUB——得知道系统是 BIOS/MBR 还是 UEFI/GPT 启动,否则装错位置会白忙一场。
- 开机进 Live 环境后,打开终端,运行 lsblk -f 或 sudo fdisk -l,重点看三类分区:
- /boot 或 /boot/efi:若有独立 /boot/efi 分区(FAT32 格式、LABEL 为 EFI 或 ESP),基本可确定是 UEFI 模式;若只有 /boot(ext4/xfs),且无 EFI 分区,则大概率是 BIOS 模式
- 根分区(/):找挂载点标为 root 或 linux 的 ext4/xfs 分区(如 /dev/nvme0n1p2 或 /dev/sda3),注意 NVMe 盘设备名是 nvme0n1pX,不是 sdaX
- 加密卷需先解密:若看到 LUKS 加密标识(如 crypto_LUKS),需先执行 sudo cryptsetup luksOpen /dev/sdXn myroot,再挂载 /dev/mapper/myroot
挂载原系统并进入 chroot 环境
挂载必须完整,缺一不可,否则 grub-install 会报“cannot find a device for /boot”之类错误。
- 创建挂载点:sudo mkdir -p /mnt/{boot,boot/efi,dev,proc,sys,run}
- 挂载根分区:sudo mount /dev/sdXn /mnt(例如 /dev/sda2)
- 如有独立 /boot 分区:sudo mount /dev/sdYm /mnt/boot(如 /dev/sda1)
- 如有 /boot/efi 分区(UEFI 必做):sudo mount /dev/sdZk /mnt/boot/efi(如 /dev/sda1)
- 绑定虚拟文件系统(5 行不能少):
sudo mount --bind /dev /mnt/dev && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys && sudo mount --bind /run /mnt/run && sudo mount --bind /dev/pts /mnt/dev/pts - 进入原系统:sudo chroot /mnt
重装 GRUB2 并更新配置
chroot 进去后,所有命令都针对原系统执行,路径和设备名按原系统环境理解。
- BIOS/MBR 系统:运行 grub-install /dev/sdX(注意是磁盘,如 /dev/sda,不是分区 /dev/sda1)
- UEFI 系统:运行 grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck(bootloader-id 可改为 centos 或 fedora,匹配你的发行版)
- 更新 GRUB 配置:
• Debian/Ubuntu 系:update-grub
• RHEL/CentOS/Fedora 系:grub2-mkconfig -o /boot/grub2/grub.cfg - 验证是否成功:ls /boot/grub/grub.cfg 应存在且非空;ls /boot/efi/EFI/ubuntu/(UEFI)应有 grubx64.efi 等文件
退出并重启
退出 chroot、卸载分区、重启即可。操作要干净,避免残留挂载导致下次启动异常。










