什么时候需要重建 initrd(Linux 初始 ramdisk)?

When is it necessary to rebuild the initrd (Linux initial ramdisk)?

背景:我正在为我的内核模块开发一个 DKMS 包。 DKMS manpage 包含以下句子:

REMAKE_INITRD = This directive specifies whether your initrd should be remade after the module is installed onto the kernel.

问题:什么时候需要remake initrd?我如何确定在将我的模块安装到内核后是否需要重新制作 initrd?

一般情况下,只有在需要添加或更新挂载根文件系统所需的模块时才需要重新制作initrd。一旦安装了根文件系统,内核就可以使用正常机制动态加载其他模块。

initrd 中通常包括磁盘设备驱动程序(scsi、sata、光纤通道等)、文件系统驱动程序(如 ext4、xfs、btrfs 等)和更高级别的块设备驱动程序,如 LUKS(用于加密设备)、LVM 等等。

如果您的模块不属于此类驱动程序,那么它就不需要在 initrd 上,您也不需要重建 initrd。