CentOS7 Grub引导故障恢复全过程

 更新时间:2026年01月27日 08:42:20   作者:ICT董老师  
文章介绍了当CentOS7的/boot/grub2/grub.cfg文件丢失时的恢复步骤,包括手动引导进入系统、永久修复GRUB配置以及使用救援模式进行修复

当CentOS 7的/boot/grub2/grub.cfg文件丢失,重启后进入grub>模式时,可以按照以下步骤恢复系统。

第一步:手动引导进入系统

1. 查找系统分区

grub> ls

你会看到类似输出:(hd0) (hd0,msdos1) (hd0,msdos2)等

2. 找到/boot分区

逐个检查分区,寻找包含内核文件的分区:

grub> ls (hd0,1)/
grub> ls (hd0,2)/

当你看到包含以下文件的分区时,就找到了/boot分区:

  • vmlinuz-3.10.0-xxx.el7.x86_64
  • initramfs-3.10.0-xxx.el7.x86_64.img
  • grub2/目录

记下这个分区位置,比如(hd0,1)

3. 设置根设备并加载内核

# 设置根设备为/boot分区
grub> set root=(hd0,1)
# 加载Linux内核
grub> linux /vmlinuz-3.10.0-1160.el7.x86_64 ro root=/dev/mapper/centos-root
# 加载initramfs
grub> initrd /initramfs-3.10.0-1160.el7.x86_64.img
# 启动系统
grub> boot

重要提示:

  • 如果根分区不是LVM,可能是:root=/dev/sda2
  • 如果不确定根分区,可以尝试:root=/dev/sda2 或 root=/dev/sda3
  • 内核版本号用Tab键自动补全

第二步:永久修复GRUB配置

成功进入系统后,执行以下命令:

1. 重新挂载根分区为读写

# mount -o remount,rw /

2. 重新生成GRUB配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-xxxx
Found initrd image: /boot/initramfs-0-rescue-xxxx.img
done

3. 可选:重新安装GRUB到磁盘(如果必要)

# grub2-install /dev/sda

4. 验证修复

# ls -la /boot/grub2/grub.cfg
-rw-r--r--. 1 root root 6538 Dec  1 10:30 /boot/grub2/grub.cfg

# cat /boot/grub2/grub.cfg | grep menuentry

备选方案:使用救援模式

如果手动引导失败,可以使用CentOS 7安装盘进入救援模式:

1. 启动救援模式

  • 用CentOS 7安装U盘或光盘启动
  • 选择"Troubleshooting" → “Rescue a CentOS system”
  • 选择"1"继续

2. 挂载并修复系统

# 检查磁盘分区
# fdisk -l

# 挂载根分区
# mkdir /mnt/sysimage
# mount /dev/mapper/centos-root /mnt/sysimage

# 挂载boot分区(如果是单独分区)
# mount /dev/sda1 /mnt/sysimage/boot

# 挂载必要的文件系统
# mount --bind /dev /mnt/sysimage/dev
# mount --bind /proc /mnt/sysimage/proc
# mount --bind /sys /mnt/sysimage/sys

# 切换到原系统环境
# chroot /mnt/sysimage

3. 在chroot环境中修复

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

# 重新安装GRUB
# grub2-install /dev/sda

# 退出chroot并重启
# exit
# reboot

预防措施

修复完成后,建议:

# 备份GRUB配置
# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup

# 定期检查系统完整性
# rpm -Va | grep grub2

总结

关键步骤:

  • 手动引导:在grub>提示符下设置root、加载内核和initrd
  • 永久修复:进入系统后执行grub2-mkconfig -o /boot/grub2/grub.cfg
  • 备选方案:使用安装盘的救援模式进行修复

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Centos7环境安装Python3的方法

    Centos7环境安装Python3的方法

    这篇文章主要介绍了Centos7环境安装Python3的方法,简单描述了CentOS环境下安装Python3的具体步骤、命令与相关注意事项,需要的朋友可以参考下
    2018-03-03
  • LNMP下提示File not found问题的解决方法

    LNMP下提示File not found问题的解决方法

    这篇文章主要给介绍了关于在LNMP下提示File not found问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • linux服务器上openssl版本升级方式

    linux服务器上openssl版本升级方式

    文章详细介绍了在Linux服务器上升级OpenSSL版本的步骤,包括查看当前版本、检查yum源、下载源码、编译安装、创建软链、更新动态链接库以及验证版本
    2025-03-03
  • MySQL/MariaDB/Percona数据库升级脚本

    MySQL/MariaDB/Percona数据库升级脚本

    这篇文章主要介绍了MySQL/MariaDB/Percona数据库升级脚本的相关资料,需要的朋友可以参考下
    2016-12-12
  • 使用 bash 倒计时日期的方法

    使用 bash 倒计时日期的方法

    这篇文章主要介绍了用 bash 倒计时日期的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 通过yum升级CentOS/RHEL最小化安装的方法

    通过yum升级CentOS/RHEL最小化安装的方法

    下面小编就为大家带来一篇通过yum升级CentOS/RHEL最小化安装的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 详解Linux中PostgreSQL和PostGIS的安装和使用

    详解Linux中PostgreSQL和PostGIS的安装和使用

    这篇文章主要介绍了详解Linux中PostgreSQL和PostGIS的安装和使用,并把需要注意点做了分析和解释,需要的朋友学习下。
    2018-02-02
  • 如何在Ubuntu系统中有效管理镜像磁盘空间

    如何在Ubuntu系统中有效管理镜像磁盘空间

    在 Ubuntu 服务器上,管理镜像磁盘空间是系统维护中的一项关键任务,尤其是在使用虚拟化技术时,合理管理磁盘空间可以有效防止磁盘空间不足,提升系统的稳定性和性能,本文将为你介绍如何在 Ubuntu 系统中有效管理镜像磁盘空间,需要的朋友可以参考下
    2025-05-05
  • CentOS 6.5上编译安装Apache服务器的方法(最小化安装)

    CentOS 6.5上编译安装Apache服务器的方法(最小化安装)

    这篇文章主要介绍了CentOS 6.5上编译安装Apache服务器的方法(最小化安装),需要的朋友可以参考下
    2017-09-09
  • Linux推荐使用Xfce桌面环境的8个原因

    Linux推荐使用Xfce桌面环境的8个原因

    今天小编就为大家分享一篇关于Linux推荐使用Xfce桌面环境的8个原因,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-09-09

最新评论