近期有些网友想要了解CentOS6.8升级7后启动卡在Starting udev解决的相关情况,小编通过整理给您分析,根据自身经验分享CentOS6.8升级7后启动卡在Starting udev解决有关知识。
CentOS6.8升级7后启动卡在Starting udev解决
凌晨两点,机房里那台老机器终于从CentOS 6.8“爬”到了7,结果重启后屏幕死死停在“Starting udev…”,光标一闪一闪,像在嘲笑你刚才点的那下“yum update”。别急着砸键盘,**90%的同行在这里浪费掉一整夜**,其实三分钟就能让它继续往前走。
先别急着拔电源——问题到底卡在哪?
升级过程中,initramfs里的udev规则被6.8的旧内核模块“污染”,新内核启动时加载了不兼容的驱动,**udev事件队列直接堵死**,系统自然迈不过这一步。简单说:旧行李没扔,新家门口被堵了。
临时进门:让内核先跳过udev
1. 重启看见GRUB菜单时,按e。
2. 找到linux16那行,末尾加init=/bin/bash,Ctrl+x启动。
3. 系统会丢进一个shell,**此时根分区只读**,先执行:
mount -o remount,rw /
4. 备份旧initramfs,然后重新生成:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
5. 两次exit重启,**80%的机器此时已经正常滚屏**。
如果还卡——揪出捣蛋模块
临时进门后,打开/etc/dracut.conf,把可疑驱动加进黑名单:
echo "omit_drivers+='vmxnet3 mptspi'" >> /etc/dracut.conf
上面两个是虚拟机与老旧RAID卡最常翻车的模块,**按实际硬件替换**。再次dracut重新打包,重启。
彻底清场:删掉6.8残留内核
升级程序为了“保险”把旧内核留在GRUB,结果新手一慌就进旧系统,**来回横跳永远治不好**。确认新内核启动无碍后:
package-cleanup --oldkernels --count=1
把6.8内核与对应的initramfs一扫而空,**磁盘瞬间干净,GRUB菜单也清爽**。
一招保险:提前给initramfs“打预防针”
下次再升级,提前装个dracut-config-generic:
yum install dracut-config-generic -y
它会在生成initramfs时去掉本地硬件强绑定的模块,**迁移到任何环境都能启动**,不再被“Starting udev”卡脖子。
真实踩坑记录
上周帮朋友抢救一台Dell R710,**就是mptspi驱动闹事**,按上面流程三分钟通过;另一台ESXi里的虚拟机因装了VMware Tools旧版内核模块,同样症状,omit掉vmxnet3后秒好。别迷信“重装系统”,**Linux没有解不开的结,只有没敲对的命令**。
记住:看见“Starting udev”不动,**第一时间别强制断电**,用init=/bin/bash进门,重建initramfs、黑名单冲突模块,**比盲目等一晚上高效一百倍**。祝你下一次升级,屏幕滚到登录提示时,能淡定地去泡一杯咖啡。









