HCRM博客

CentOS黑屏光标故障?轻松修复grub.cfg恢复系统!

CentOS开机只剩黑底光标?别慌,手撕grub.cfg让它满血复活

CentOS grub界面丢失:重建grub.cfg笔记

CentOS黑屏光标故障?轻松修复grub.cfg恢复系统!-图1

服务器重启后屏幕一黑,只剩左上角小光标在闪,连熟悉的系统选择菜单都不见?别急着重装,九成是grub.cfg跑路。把这篇笔记啃完,半小时内让机器重新唱歌。

先别砸键盘,三分钟判断是不是grub.cfg失踪

开机无菜单、直接掉进grub rescue模式,或提示“error: file '/grub2/grub.cfg' not found”,基本就能定罪。若还能看到内核选项但进系统报错,那是另一码事,别混为一谈。

手边常备:一只CentOS镜像U盘+一根冷静的神经

镜像版本最好与系统同大版,小版可向下兼容。插上U盘,BIOS选U盘启动,选“Troubleshooting—Rescue a CentOS system”,等它滚完码,进shell后输入1回车,把原系统挂到/mnt/sysimage,再敲chroot /mnt/sysimage,此时你就相当于坐在原系统里发号施令。

找到“失踪人口”存放路径

CentOS黑屏光标故障?轻松修复grub.cfg恢复系统!-图2

grub2的配置默认躺在/boot/grub2/grub.cfg,UEFI机型则在/boot/efi/EFI/centos/grub.cfg。先确认分区表格式:ls /sys/firmware/efi有输出就是UEFI,反之为Legacy。路径别搞错,否则后面全白搭。

重建第一步:让grub2重新扫描磁盘

在chroot环境里执行:

grub2-mkconfig -o /boot/grub2/grub.cfg

UEFI机型加条尾巴:

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

CentOS黑屏光标故障?轻松修复grub.cfg恢复系统!-图3

命令跑完会打印“Found linux image …”,看到内核版本号就算成功一半。

Legacy BIOS:把引导扇区也刷一遍

仅重建cfg不够,还要把stage2写进MBR。假设/boot在/dev/sda1,系统盘是/dev/sda:

grub2-install /dev/sda

若提示“cannot find EFI directory”直接无视,那是grub2-install误把BIOS当UEFI,加参数强制:

grub2-install --target=i386-pc /dev/sda

出现“Installation finished. No error reported.”才算踏实。

UEFI机型:把efi文件注册回NVRAM

部分主板在丢失cfg后会把CentOS启动项一并清掉,需重新登记:

efibootmgr -c -d /dev/sda -p 1 -L "CentOS" -l '\EFI\centos\shimx64.efi'

命令里单引号中的反斜杠别改成斜杠,否则主板不认。回显“Boot000* CentOS”即写入成功。

多系统共存?先别急着退出chroot

如果机器原本Windows+CentOS双启,重建cfg后Windows选项消失,再跑一遍:

os-prober

grub2-mkconfig -o /boot/grub2/grub.cfg

第二条命令会把Windows捡回来。没有os-prober就装:

yum install -y os-prober

特殊坑:LVM、软RAID、加密盘

/boot被LVM吞掉的情况极少,但若真遇上,先vgchange -ay激活卷组,再挂载/boot分区。软RAID同理,确保md设备已组装。加密盘/boot没加密可照常操作;如果/boot也在LUKS里,那就得先解密:

cryptsetup luksOpen /dev/sda2 boot_crypt

挂载后再走重建流程,记得更新initramfs:

dracut -f

最后检查:重启前必做的三条命令

1. 核对cfg时间戳

ls -l /boot/grub2/grub.cfg看时间是否刚刷新。

2. 确认内核链完整

grep vmlinuz /boot/grub2/grub.cfg能搜到版本号即可。

3. 退出chroot并同步缓存

exit

sync

然后输入reboot,拔掉U盘,眼瞅着熟悉的启动菜单蹦出来,收工。

如果还是进不去?三步回滚方案

1. 重启再进U盘,切chroot,把刚生成的cfg改名备份,拷回之前的老cfg试试,排除手误。

检查磁盘UUID是否变动:blkid对比grub.cfg里的UUID,若不同,改/etc/fstab与grub.cfg对应项。

主板关闭Secure Boot,部分老旧主板在NVRAM掉电后会瞎保护,关之立竿见影。

预防下次掉坑:写个定时快照

在/etc/cron.daily下放个脚本,每天把/boot/grub2/grub.cfg与/etc/grub.d/打包丢到/root/grub_backup.tgz,真再丢文件直接解压覆盖,三十秒搞定。脚本三行就够,别懒。

常见疑问快答

Q:能直接拷贝别的机器cfg用吗?

A:UUID与分区名不同,100%翻车,别图省事。

Q:grub2-install提示“cannot find a device for /boot”?

A:/boot没挂载或挂载错路径,先df -h /boot确认。

Q:为什么菜单出来了但一进系统就kernel panic?

A:initramfs缺失或版本不匹配,dracut -f重新生成,再重建cfg。

把这份笔记丢进收藏夹,下次CentOS grub界面丢失,五分钟自己就能重建grub.cfg,再也不用半夜抓耳挠腮。

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

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

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