HCRM博客

CentOS内核升级后重启卡死,成功回退并重生成initramfs解决方法

CentOS升级内核后重启卡死,回退dracut生成initramfs

机器重启后只看见光标闪,键盘灯死活不亮,心里咯噔一下:完了,新内核栽了。别急着重装,九成是initramfs没把新驱动塞进去,系统找不到根分区,直接躺平。下面把踩坑全过程摊开,照着做,半小时内能让老系统重新蹦跶。

CentOS内核升级后重启卡死,成功回退并重生成initramfs解决方法-图1

一、先别慌,确认卡死位置

重启按Esc或者把quiet去掉,看滚屏。如果停在Loading initial ramdisk之后无响应,十有八九initramfs缺模块。记下最后几行,比如dracut-initqueue timeout,后面要用。

二、用旧内核先爬进去

开机进GRUB,选第二行旧内核,回车。能进系统就直接跳到第三步;如果GRUB被新内核挤掉,用CentOS安装盘选Troubleshooting—Rescue,一路回车,最后选3拿到shell。

三、把新内核拉进黑名单

旧内核启动后,先保命:

CentOS内核升级后重启卡死,成功回退并重生成initramfs解决方法-图2

dnf remove kernel-5.xx.xx

或者干脆:

grub2-set-default 0

让旧内核当默认,省得二次翻车。

四、回退dracut,重新打包initramfs

重点来了,别用系统默认的hostonly模式,那玩意儿只认当前硬件,换张卡就抓瞎。手动全量重建:

CentOS内核升级后重启卡死,成功回退并重生成initramfs解决方法-图3

dracut -f -v --regenerate-all --add-drivers "mpt3sas nvme xfs" /boot/initramfs-$(uname -r).img $(uname -r)

解释:

-f 强制覆盖,-v 看过程,--regenerate-all 把现存内核全扫一遍,--add-drivers 把SAS卡、NVMe、文件系统驱动硬塞进去。缺啥补啥,lsmod抄现成列表最稳。

五、GRUB配置顺手改

重建完再刷一次引导:

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

如果用的是UEFI,路径换:

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

别偷懒,两条都跑一遍,省得BIOS/UEFI各唱各的调。

六、重启验证

reboot后盯着屏幕,看到/dev/mapper/centos-root挂载成功,登录界面蹦出来,才算落地。再跑一圈:

uname -r

确认是旧内核,但initramfs时间戳是新的,说明回退成功。

七、想再升新内核?先留后门

下次升级前,把当前能用的initramfs备份一份:

cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

再装新内核,装完别急着重启,手动dracut跑一次,确认无error再reboot。万一翻车,GRUB里选旧条目,三十秒原地复活。

八、常见坑汇总

1. 只删kernel不删kernel-core:dnf会留尾巴,空间占满/boot,新initramfs写不进去,结果两头堵。

2. 忘记关Secure Boot:自编译驱动没签名,initramfs里就算塞了也加载失败,记得mokutil --disable-validation。

3. 用LVM+加密:缺dm-crypt模块,dracut要加--add-drivers "dm-crypt xfs",否则提示Give up waiting for root device

4. 云主机热插拔盘:virtioblk驱动没打包,卡在dracut-initqueue timeout,--add-drivers里补virtioblk virtio_pci即可。

九、一条命令检查initramfs内容

lsinitrd /boot/initramfs-$(uname -r).img | grep ko.xz | grep -E "mpt3sas|nvme|virtio"

能看到驱动才算真进去,别被体积忽悠,100 M的initramfs也可能缺关键ko。

十、生产环境建议

1. 升级内核挑周五下午,留两天缓冲;

开台虚拟机先跑一遍,脚本化dracut参数,确认OK再推到实体机;

/boot单独分区且给1 G,防止大内核+大initramfs挤爆;

定期rpm -q --scripts kernel看postinstall钩子,别让第三方软件偷偷改grub。

照上面撸完,CentOS升级内核后重启卡死基本能原地复活。回退dracut生成initramfs这招,比重装系统省十倍时间,数据零丢失,老板也挑不出毛病。

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

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

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