Skip to Content
文档参考命令速查initramfs (Dracut) 命令

initramfs (Dracut) 命令速查

从 Ubuntu 26.04 起,initramfs 的生成工具由 initramfs-tools 切换为 Dracut。日常维护命令也随之变化:原先的 update-initramfs、lsinitramfs 应改用 dracut、lsinitrd,配置目录改为 /etc/dracut.conf.d/。

Note

在升级到 26.04 的旧系统上可能仍保留 initramfs-tools,此时旧命令依然可用。新装系统默认使用 Dracut。可用 which dracut / dracut --version 确认。

命令对照表

旧(initramfs-tools)新(Dracut)说明
sudo update-initramfs -usudo dracut -f为当前内核重新生成 initramfs(-f 覆盖已存在文件)
sudo update-initramfs -u -k allsudo dracut -f --regenerate-all为所有已安装内核重新生成
sudo update-initramfs -u -k $(uname -r)sudo dracut -f --kver $(uname -r)为指定内核版本生成
lsinitramfs /boot/initrd.img-$(uname -r)lsinitrd列出 initramfs 中包含的文件
lsinitramfs … | grep xxxlsinitrd | grep xxx检查某模块/文件是否被打包
/etc/initramfs-tools//etc/dracut.conf.d/配置目录
/etc/initramfs-tools/modulesforce_drivers+=" 模块名 "(写入 conf.d)强制加入内核模块

常用操作

# 为当前内核重新生成 initramfs sudo dracut -f # 为所有已安装内核重新生成(更新驱动、加密、resume 等配置后常用) sudo dracut -f --regenerate-all # 为指定内核版本生成到指定路径 sudo dracut -f /boot/initrd.img-7.0.0-10-generic 7.0.0-10-generic

查看 initramfs 内容

# 查看当前内核 initramfs 的内容(默认即为当前内核) lsinitrd # 查看指定文件 lsinitrd /boot/initrd.img-$(uname -r) # 确认某个内核模块是否已打包(如 resume、加密、网卡驱动) lsinitrd | grep -i resume lsinitrd | grep -i nvme

配置 Dracut

Dracut 的配置位于 /etc/dracut.conf.d/ 下的 *.conf 文件,修改后需重新生成 initramfs 才会生效。

# 示例:强制把某些驱动打包进 initramfs echo 'force_drivers+=" nvme nvme_core "' | sudo tee /etc/dracut.conf.d/90-nvme.conf sudo dracut -f --regenerate-all

常用配置项:

# /etc/dracut.conf.d/zz-local.conf # 仅打包当前主机所需的模块(体积更小,默认行为) hostonly="yes" # 强制加入指定内核驱动 force_drivers+=" 模块名 " # 额外加入指定 dracut 模块(如 crypt、lvm、network) add_dracutmodules+=" crypt lvm " # 在 initramfs 中额外包含某些可执行文件 install_items+=" /usr/bin/vi "
Tip

修改 resume(休眠)、磁盘加密、根文件系统所在控制器驱动后,记得运行 sudo dracut -f --regenerate-all,否则可能导致系统无法启动。

相关文章

Last updated on