CentOS 系统启动失败(GRUB rescue)问题排查与修复记录

🚨 问题背景

今日在维护一台 CentOS 8 服务器时,重启后系统无法正常引导,直接进入 grub rescue> 模式,控制台抛出关键错误:

plaintext

error: ../../grub-core/kern/disk.c:258:no such partition.
Entering rescue mode...
grub rescue>

尝试执行 ls 查看磁盘分区时,所有分区均提示 unknown filesystem,无法识别文件系统结构,系统完全不可用。


🔍 问题分析

核心错误解读

表格

错误信息含义
no such partitionGRUB 引导程序无法找到配置中指定的根分区或 /boot 分区
unknown filesystemGRUB 缺少对应文件系统驱动模块,无法读取分区内容

根因定位

  1. 磁盘分区顺序变动或分区被删除 / 格式化,导致 GRUB 配置指向的分区不存在
  2. /boot/grub 模块目录损坏或丢失,GRUB rescue 模式无法加载文件系统驱动
  3. 初步排查发现:bash运行grub rescue> ls (hd0) (hd1) (hd1,msdos1) 所有分区访问均提示文件系统未知,直接加载 ext4/part_msdos 等模块也因找不到路径失败,确认无法在 rescue 模式下完成修复

✅ 解决方案:Live 环境修复 GRUB

步骤 1:准备 CentOS 8 Live 启动盘

  1. 下载 CentOS 8 Live ISO 镜像
  2. 使用 Rufus / Etcher 工具将镜像写入 U 盘,制作成可引导启动盘
  3. 服务器插入 U 盘,重启后按 F12/Del 进入 BIOS,设置从 U 盘启动
  4. 进入 Live 系统后,选择「试用 CentOS Linux 8」(不安装)

步骤 2:挂载系统分区

打开终端,执行以下命令:

# 查看磁盘分区,定位系统根分区
sudo lsblk

# 挂载根分区到 /mnt(示例:系统分区为 /dev/sdb1)
sudo mount /dev/sdb1 /mnt

# 挂载系统必需目录(为 chroot 做准备)
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

⚠️ 若存在独立 /boot 分区,需额外执行:

sudo mount /dev/sdb2 /mnt/boot

步骤 3:切换到系统环境并修复 GRUB

# 切换到本机系统环境
sudo chroot /mnt

# 重新安装 GRUB 到磁盘(⚠️ 必须指定磁盘,如 /dev/sdb,而非分区 /dev/sdb1)
grub2-install /dev/sdb

# 重新生成 GRUB 配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg

# 退出 chroot 环境
exit

# 卸载所有挂载分区
sudo umount -R /mnt

# 重启服务器
reboot

步骤 4:验证修复结果

重启后拔掉 U 盘,系统正常进入 GRUB 启动菜单,选择默认内核后成功启动 CentOS 8 系统,服务恢复正常。


💡 避坑总结

  1. GRUB rescue 局限性:rescue 模式本身不包含完整文件系统驱动,必须依赖 /boot/grub 目录加载模块,若分区无法读取则无法继续,需通过 Live 环境修复
  2. 命令细节grub2-install 必须指定磁盘(如 /dev/sdb)而非分区(如 /dev/sdb1),否则会安装失败
  3. 预防建议
    • 避免随意修改磁盘分区顺序或删除分区
    • 定期备份 /boot 目录和 /etc/default/grub 配置文件
    • 系统内核升级后,执行 grub2-mkconfig 同步引导配置

📌 结语

CentOS 8 系统启动故障多与 GRUB 引导配置相关,遇到 grub rescue> 模式时不必慌张,通过 Live 环境挂载系统并重建 GRUB 是最可靠的修复方案。日常运维中做好备份和规范操作,能有效避免此类问题发生。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇