8.3. 修改和重新生成 initrd
默认容器镜像在 /usr/lib/modules/$kver/initramfs.img 中包含预生成的初始 RAM 磁盘(initrd)。要重新生成 initrd,例如要添加 dracut 模块,请按照以下步骤执行:
流程
编写 drop-in 配置文件。例如:
dracutmodules = "module"
dracutmodules = "module"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将置入配置文件放在
dracut通常使用的位置:/usr。例如:/usr/lib/dracut/dracut.conf.d/50-custom-added-modules.conf
/usr/lib/dracut/dracut.conf.d/50-custom-added-modules.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为容器构建的一部分,重新生成
initrd。您必须将内核版本明确传递给dracut,因为它会尝试拉取运行的内核版本,这会导致错误。以下是一个示例:FROM <baseimage> COPY 50-custom-added-modules.conf /usr/lib/dracut/dracut.conf.d RUN set -x; kver=$(cd /usr/lib/modules && echo *); dracut -vf /usr/lib/modules/$kver/initramfs.img $kver
FROM <baseimage> COPY 50-custom-added-modules.conf /usr/lib/dracut/dracut.conf.d RUN set -x; kver=$(cd /usr/lib/modules && echo *); dracut -vf /usr/lib/modules/$kver/initramfs.img $kverCopy to Clipboard Copied! Toggle word wrap Toggle overflow