You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修改CentOS 7的dracut-initqueue超时时间?

解决CentOS 7开机dracut-initqueue超时进入命令行的问题

我之前帮不少用户处理过这个CentOS 7上的dracut超时问题,确实挺头疼的——远程重启后卡在紧急shell,还得手动输入exit才能完成开机,完全没法自动化运维。核心问题就是dracut在初始化阶段等待存储设备的时间不够,触发了超时机制。要让系统自动等存储加载完成,你可以从调整超时时间和优化dracut配置两方面入手:

一、延长dracut的超时时间

  1. 优先推荐用自定义配置文件修改(避免覆盖系统默认的dracut.conf):

    • 先创建自定义配置目录(如果不存在的话):mkdir -p /etc/dracut.conf.d/
    • 新建一个超时配置文件:vi /etc/dracut.conf.d/timeout.conf
    • 在文件里添加超时设置,比如设为300秒(5分钟,你可以根据自己存储的实际加载时间调整):
      timeout=300
      
      这个参数会让dracut在触发超时进入紧急shell前,先等待指定的秒数。
  2. 重新生成initramfs镜像,让配置生效:

    dracut -f
    

    如果你的系统有多个内核版本,最好指定当前内核对应的initramfs,避免影响其他版本:

    dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
    

二、优化dracut对存储设备的识别(可选但推荐)

如果你的存储是iSCSI、SAN或者其他网络存储,可能dracut默认没加载对应的驱动模块,导致识别速度慢,进而触发超时。可以添加相关模块来加速设备识别:

  1. 还是在刚才的/etc/dracut.conf.d/timeout.conf里,添加对应的模块(根据你的存储类型调整):

    add_dracutmodules+=" iscsi lvm dm-multipath "
    

    比如用iSCSI存储就加iscsi,用LVM逻辑卷就加lvm,多路复用存储就加dm-multipath

  2. 再次重新生成initramfs:

    dracut -f
    

三、验证效果

完成配置后重启系统,dracut就会按照你设置的时间等待存储设备加载,直到设备就绪后自动进入系统,不会再跳转到紧急shell。如果还是有问题,可以查看/var/log/dmesg/var/log/messages里的日志,看看存储设备的加载细节,再针对性调整超时时间或者模块配置。

内容的提问来源于stack exchange,提问作者Pascal

火山引擎 最新活动