补充说明
update-initramfs 是 Debian/Ubuntu 提供的脚本,封装 mkinitramfs,用于创建、更新或删除 /boot/initrd.img-*。initramfs 是内核启动时先加载的最小根文件系统,包含挂载真实根分区所需的驱动与脚本(如 LVM、加密、RAID、网络启动)。
安装新内核、修改 /etc/initramfs-tools/ 下的配置、添加存储驱动或更改 /etc/crypttab 后,都需要重新生成对应内核的 initramfs,否则可能开机卡在 “Waiting for root device”。最常用的是 -u(更新已有镜像)和 -u -k all(更新所有内核)。
操作需要 root 权限,生成过程会读取 /etc/initramfs-tools/initramfs.conf 和 modules、conf.d/ 等配置。删除旧内核对应镜像用 -d -k 版本。RHEL 系没有该命令,对应机制是 dracut -f。
语法
update-initramfs -c|-u|-d [-k 版本] [选项]
选项
-c:为指定内核创建新的 initramfs-u:更新已有的 initramfs-d:删除指定内核的 initramfs-k 版本:指定内核版本,all表示全部-t:只测试,不实际写入-v:显示详细过程-b 目录:指定输出目录,默认为/boot
实例
# 更新当前内核的 initramfs
sudo update-initramfs -u
# 更新所有已安装内核的 initramfs
sudo update-initramfs -u -k all
# 为指定内核创建新镜像
sudo update-initramfs -c -k 6.1.0-18-amd64
# 删除旧内核对应的镜像
sudo update-initramfs -d -k 6.1.0-16-amd64
# 修改配置后重新生成并查看结果
sudo update-initramfs -u -v
ls -lh /boot/initrd.img-$(uname -r)