HCRM博客

CentOS GRUB引导故障救援模式实战指南

CentOS grub引导失败:救援模式修复实例

机器重启后只停在一行粗体白字:grub>,硬盘灯不闪,系统菜单消失,业务全瘫。别急着重装,九成情况是引导扇区或配置文件被踩坏,用官方镜像进救援模式,十分钟就能拽回来。下面把刚踩过的坑完整记下,照着敲命令,基本都能活。

CentOS GRUB引导故障救援模式实战指南-图1

先判断到底是不是grub坏了

屏幕若出现error: file '/grub2/i386-pc/normal.mod' not foundunknown filesystem,基本可以确定grub核心文件失踪;如果连grub rescue字样都没有,直接提示no such partition,那多半是分区表被改写过,先拿LiveCD把数据备份再谈修复。本文只解决“grub程序在,但找不到配置”的场景。

准备CentOS安装镜像

下载与当前系统同大版本的最小ISO,比如机器原来是CentOS 7.9,就别拿8的镜像,防止库版本差异。写到U盘后插到故障机,BIOS选U盘启动,出现安装界面时别回车,先选Troubleshooting → Rescue a CentOS system,等提示符变成123选项,直接敲1回车,系统会把原根分区挂到/mnt/sysimage,接着给提示符bash-4.2#

切根环境,装缺失文件

执行chroot /mnt/sysimage,此时提示符变回熟悉的[root@localhost ~]#,相当于进了原系统。先确认/boot还在不在:ls /boot/grub2,若目录空空,用rpm -Va grub2-common grub2-pc校验包完整性,十有八九会报缺文件,直接重装一遍:yum reinstall grub2-common grub2-pc grub2-tools -y,公网不通就挂载本地ISO做仓库,两分钟就能把缺失的模块全补回来。

CentOS GRUB引导故障救援模式实战指南-图2

重写引导扇区,别让BIOS找不到入口

传统BIOS机器要重新把stage2写进MBR,命令一条就够:grub2-install /dev/sda,注意是整盘不是分区。若返回Installation finished. No error reported.才算成功;出现this GPT partition label contains no BIOS Boot Partition,说明你当初用GPT却忘了建1M的biosboot分区,得先gdisk /dev/sda新建类型代码EF02的小分区,再执行grub2-install。UEFI机器则不用这条,往下看。

UEFI模式修复EFI启动项

UEFI主板不读MBR,而是找FAT32的ESP分区。救援模式下先挂载EFI分区:mount /dev/sda1 /boot/efi,再grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=centos,如果提示efibootmgr: No such file or directory,先装包yum install efibootmgr -y。写完后用efibootmgr -v查看是否多出一行Centos的启动项,且指向\EFI\centos\shimx64.efi,确认无误再继续。

重新生成grub.cfg

很多教程漏掉这步,结果重启还是进grub>。原因是grub2-install只写二进制,菜单要靠配置文件。执行:grub2-mkconfig -o /boot/grub2/grub.cfg,看到Found linux image: /boot/vmlinuz-xxx.el7.x86_64且列出所有内核,说明扫描成功。若机器用UEFI,输出路径应是/boot/efi/EFI/centos/grub.cfg,两条命令都要跑,一个给BIOS一个给UEFI,互不干扰。

CentOS GRUB引导故障救援模式实战指南-图3

特殊场景:RAID、LVM、加密盘

根分区若在LVM里,救援模式通常已自动激活,若提示找不到卷组,手动vgchange -ay即可;软RAID1用户先mdadm -As,确保/dev/md126这类设备出现;用了LUKS加密,需要cryptsetup luksOpen /dev/sda2 root解锁后再挂载。grub2-mkconfig会识别到映射后的设备,菜单项里出现linux16 /vmlinuz root=/dev/mapper/root就算齐活。

退出救援环境并验证

依次敲:exit回到救援Shell,再reboot。记得拔掉U盘,让硬盘优先。重启后若看到CentOS启动菜单,光标停在第一个内核,回车能进系统,说明修复成功;如果仍停在grub>,说明配置文件路径不对,当场用set查看prefix指向,手动configfile /boot/grub2/grub.cfg能引导的话,回系统后再次grub2-install即可。

把悲剧挡在门外的小建议

1. 升级内核前先用cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak,一条命令秒级备份;

2. 别把/boot单独分在移动硬盘,拔线必挂;

3. 每月跑一遍grub2-mkconfig,让新内核及时进菜单;

4. 若机器在异地机房,提前配好带外管理,省得半夜打车去机房敲键盘。

整套流程走下来,最慢二十分钟,系统就能重新上线。grub看似黑屏吓人,其实就是文件缺失或配置错位,只要手边有镜像、懂挂载、会chroot,就能把“重装系统”从待办列表里划掉。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41694.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~