Debian 系统 GRUB 引导故障修复全流程教程

前言

GRUB 是 Linux 系统的核心引导程序,当出现磁盘空间耗尽、分区调整、意外断电等情况时,可能导致 GRUB 损坏,系统无法正常启动。

本文基于实际运维场景,详细讲解如何通过 Debian 救援模式修复 GRUB 引导问题,并结合根分区扩容的完整流程,帮助你快速恢复系统。


Ⅰ 适用场景

  • 系统启动时直接进入 grub> 命令行,无法加载系统
  • 根分区 /dev/sda1 占满导致文件系统损坏,进而引发 GRUB 故障
  • 调整磁盘分区后,GRUB 引导配置失效
  • 虚拟机环境下的 Debian 13 系统引导修复

Ⅱ 准备工作

  1. Debian 安装 ISO 镜像:下载对应版本的安装镜像(如 Debian 13)
  2. 虚拟机/物理机设置:将 ISO 镜像挂载到虚拟机,或制作成启动 U 盘(物理机)
  3. BIOS 启动顺序调整:确保系统从 CD-ROM/USB 优先启动

Ⅲ 详细修复步骤

1. 进入 Debian 救援模式

  • 重启系统,在 BIOS 中设置从 CD-ROM/USB 启动
  • 找到 Boot Device Priority 或类似选项,按 Enter 进入。
  • 将 1st Boot Device 设置为 CD-ROM Drive。
  1. 从 Debian ISO 启动后,选择 Advanced optionsRescue mode 进入救援模式
  2. 在"选择根文件系统"界面,选择 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,然后调整启动优先

相关推荐
碳基沙盒6 小时前
OpenClaw 多 Agent 配置实战指南
运维
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅4 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒4 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
欧云服务器4 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
zhangfeng11334 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透4 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦4 天前
nginx
运维·nginx
Gofarlic_oms14 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab