首页/系统/信创系统运维速查/initramfs 重建(dracut)
系统与安装65 条

initramfs 重建(dracut)

改内核参数、调换存储控制器或驱动缺失导致启动卡住时,重建 initramfs:rpm 系用 dracut,deb 系用 update-initramfs。

信创系统运维速查系统更新于 2026-10-13

initramfs 重建是做什么的

initramfs 是内核启动后、真正文件系统挂载之前加载的临时根文件系统,里面放着急需的驱动与脚本。当存储控制器变化、更换磁盘阵列、增加自定义驱动,或内核参数调整后需要新驱动参与引导时,就要重建它。RPM 系(麒麟、UOS 服务器、openEuler)用 dracut,deb 系用 update-initramfs;重建本身很快,但覆盖失败会直接导致系统无法启动,因此必须先备份原文件。

基本信息

RPM 系命令dracut -f 目标文件 内核版本
deb 系命令update-initramfs -u -k all
输出位置/boot 目录下的 initramfs 或 initrd 文件
查看内容lsinitrd 列出镜像内文件
适用场景存储驱动变更、启动早期报错、模块黑名单调整

典型使用场景

  • 更换存储控制器或调整阵列模式后,启动早期找不到根设备,需要把新驱动打进镜像
  • 给系统禁用某些内核模块(如不必要文件系统),需要重建以让策略在引导阶段生效
  • 升级内核后确认 initramfs 与内核版本匹配,避免版本错配导致启动失败
  • 调整内核引导参数后重建,使早期引导阶段生效
  • 排查启动早期报错:列出镜像内容确认所需驱动与模块是否齐全
  • 交付前的标准化操作:把自定义驱动纳入 dracut 配置并固化重建流程

重建与验证

重建与验证
# RPM 系(Kylin/UOS 服务器、openEuler)
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak   # 先备份
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)   # 显式指定输出文件与内核版本
ls -lh /boot/initramfs-$(uname -r).img                  # 确认文件已更新
lsinitrd /boot/initramfs-$(uname -r).img | head -20     # 列出镜像内容
lsinitrd /boot/initramfs-$(uname -r).img | grep -i <驱动名>   # 确认驱动已打入
# deb 系:update-initramfs -u -k all
# 完成后安排一次重启验证,确认系统能正常进入

dracut 关键点

项说明注意
内核版本参数决定为哪个内核生成镜像写错版本会生成无对应内核的文件
-f 覆盖强制覆盖已有文件必须先备份原镜像
add_drivers在配置中声明需要打入的驱动自定义驱动不声明会丢失
hostonly 模式只包含本机硬件所需模块换机还原场景需评估影响
lsinitrd查看镜像内容验证重建后应实际核对而不是想当然
重建后用 lsinitrd 核对关键驱动是否真的打进镜像,比直接重启验证更安全:确认到位再重启,能把风险控制在可回滚范围内。
重建前必须备份原 initramfs 文件;如果重建失败且已经覆盖原文件,系统可能完全无法引导,只能借助救援介质处理。

易错点

  • dracut 不带内核版本参数或版本写错,为不存在的内核生成文件,重启后问题依旧存在
  • 重建前不备份原镜像,重建失败后失去回滚能力,只能上救援介质
  • 自定义存储驱动未在 dracut 配置中声明,重建后驱动丢失,系统卡在引导阶段
  • 重建后不核验镜像内容就直接重启,把风险留到重启窗口,影响范围扩大

数据来源与参考

  • dracut 手册
  • 各发行版内核文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌