grub损坏后需通过live环境修复:先确认bios/uefi模式(查/sys/firmware/efi/efivars),再挂载根分区及必要虚拟文件系统,uefi还需挂载efi分区;然后chroot并执行grub-install(bios装mbr、uefi指定--efi-directory)和update-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 -l 或 lsblk 找出根分区(通常是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可能被拦截










