前言
GRUB 是 Linux 系统的核心引导程序,当出现磁盘空间耗尽、分区调整、意外断电等情况时,可能导致 GRUB 损坏,系统无法正常启动。
本文基于实际运维场景,详细讲解如何通过 Debian 救援模式修复 GRUB 引导问题,并结合根分区扩容的完整流程,帮助你快速恢复系统。
Ⅰ 适用场景
- 系统启动时直接进入
grub>命令行,无法加载系统 - 根分区
/dev/sda1占满导致文件系统损坏,进而引发 GRUB 故障 - 调整磁盘分区后,GRUB 引导配置失效
- 虚拟机环境下的 Debian 13 系统引导修复

Ⅱ 准备工作
- Debian 安装 ISO 镜像:下载对应版本的安装镜像(如 Debian 13)
- 虚拟机/物理机设置:将 ISO 镜像挂载到虚拟机,或制作成启动 U 盘(物理机)
- BIOS 启动顺序调整:确保系统从 CD-ROM/USB 优先启动
Ⅲ 详细修复步骤
1. 进入 Debian 救援模式
- 重启系统,在 BIOS 中设置从 CD-ROM/USB 启动
- 找到 Boot Device Priority 或类似选项,按 Enter 进入。
- 将 1st Boot Device 设置为 CD-ROM Drive。

- 从 Debian ISO 启动后,选择
Advanced options→Rescue mode进入救援模式 - 在"选择根文件系统"界面,选择
Do not use a root file system,进入最小化命令行环境
这样会进入一个最小化的命令行环境,让你直接操作 /dev/sda1,而不依赖挂载。

2. 修复根分区文件系统
根分区满或意外断电可能导致文件系统损坏,需先修复:
bash
# 强制检查并修复 /dev/sda1 的 ext4 文件系统
e2fsck -f -y /dev/sda1

-
若出现
Bad magic number in super-block错误,需使用备份超级块修复:bash# 查看备份超级块位置 dumpe2fs /dev/sda1 | grep -i superblock # 使用备份超级块修复(替换 <备份超级块位置> 为实际值,如 32768) e2fsck -b 32768 -f -y /dev/sda1
3. 挂载根分区并进入 chroot 环境
bash
# 创建挂载点并挂载根分区
mkdir -p /target
mount /dev/sda1 /target
# 绑定系统虚拟文件系统(必须执行,否则 chroot 环境不完整)
mount --bind /dev /target/dev
mount --bind /proc /target/proc
mount --bind /sys /target/sys
# 进入根分区的 chroot 环境
chroot /target
- 执行
chroot /target后,命令行提示符变为root@(none):/#表示成功进入
4. 重新安装并更新 GRUB
bash
# 重新安装 GRUB 到磁盘 MBR(注意是 /dev/sda 整个磁盘,不是分区)
grub-install /dev/sda
# 更新 GRUB 配置(扫描系统内核并生成新的启动菜单)
update-grub

- 若
grub-install提示Installation finished. No error reported.,说明安装成功 update-grub会输出扫描到的内核信息,确保生成完整的启动配置
5. 退出并重启系统

bash
# 退出 chroot 环境
exit
# 重启系统
reboot
⚠️ 重启前务必在 VM 设置中移除 Debian ISO 镜像,或在 BIOS 中改回硬盘优先启动
如果是VM的话,就是F2进入BOOS,然后调整启动优先