Linuxgrub损坏修复_grub引导恢复流程

11次阅读

grub 损坏后需通过 live 环境修复:先确认 bios/uefi 模式(查 /sys/firmware/efi/efivars),再挂载根分区及必要虚拟文件系统,uefi 还需挂载 efi 分区;然后 chroot 并执行 grub-install(bios 装 mbr、uefi 指定 –efi-directory)和 update-grub;最后卸载重启验证。

Linuxgrub 损坏修复_grub 引导恢复流程

GRUB 损坏后系统无法启动,需通过 Live 环境修复。核心是重新安装 GRUB 并更新配置,关键在于确认目标磁盘、挂载正确分区、指定 BIOS/UEFI 模式。

确认当前启动模式(BIOS 或 UEFI)

启动 Live 系统后先判断原系统安装模式,决定后续操作路径:

  • 运行 ls /sys/firmware/efi/efivars:若提示“No such file or directory”,说明是传统 BIOS 模式;若列出大量文件,则为 UEFI 模式
  • 执行 sudo fdisk -l 查看磁盘,UEFI 系统通常有 FAT32 格式的 EFI 系统分区(标有 EFI System
  • BIOS 模式下 GRUB 安装到 MBR(如 /dev/sda),UEFI 模式下需挂载 EFI 分区并安装到对应目录

挂载原系统根分区和必要虚拟文件系统

在 Live 环境中定位并挂载原 Linux 系统所在分区(如 /dev/sda2):

  • sudo fdisk -llsblk 找出根分区(通常是 ext4,挂载点为 /
  • 创建挂载点并挂载:sudo mkdir /mnt && sudo mount /dev/sda2 /mnt
  • 挂载其他必需目录(否则 chroot 后无法正常识别设备或网络):
    sudo mount /dev/sda1 /mnt/boot(如有独立 /boot)
    sudo mount –bind /dev /mnt/dev && sudo mount –bind /proc /mnt/proc && sudo mount –bind /sys /mnt/sys
    UEFI 还需挂载 EFI 分区:sudo mount /dev/sda1 /mnt/boot/efi(假设 sda1 是 EFI 分区)

重装 GRUB 并更新配置

进入 chroot 环境后执行安装与更新:

  • 切换到原系统:sudo chroot /mnt
  • BIOS 模式:安装 GRUB 到磁盘 MBR(不是分区)
    grub-install /dev/sda(注意是 /dev/sda,非 /dev/sda1
  • UEFI 模式:确保已挂载 EFI 分区,再执行
    grub-install –target=x86_64-efi –efi-directory=/boot/efi –bootloader-id=ubuntu(ID 可自定义)
  • 无论哪种模式,都需更新配置:update-grub(Debian/Ubuntu)或 grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS/Fedora)

重启验证与常见问题处理

退出 chroot,卸载分区,重启测试:

  • 执行 exit 退出 chroot,再依次运行:
    sudo umount -R /mnt
    sudo reboot
  • 若仍进不了系统,检查是否遗漏 EFI 分区挂载(UEFI)、是否装错设备(如把 GRUB 装到分区而非磁盘)、或 /boot 内文件损坏(可尝试在 chroot 中重新安装 linux-image 和 grub-pc 包)
  • 部分主板需进 UEFI 设置关闭 Secure Boot,否则 GRUB 可能被拦截
text=ZqhQzanResources