在安装 CD 中创建 initrd.img

在安装 CD 中创建 initrd.img

如您所知,在 Linux 环境中,每个硬件平台的 initrd 都是不同的,例如在 vm 和实际硬件中。要创建 initrd,必须使用 mkinitrd 命令。

但是在安装 cd 环境中,如何为不同的硬件动态创建 initrd?

换句话说,我的问题是:当您在系统中安装 Linux 时,/boot/initrd.img 会根据您的硬件动态 (可能) 创建。我的问题是,/boot/initrd 是如何创建的,它是动态创建的吗?是预编译的还是其他的。

答案1

initrd 是 ramdisk 的一种旧格式,不再使用。一些发行版仍使用名称 initrd 来表示 initramfs。

initramfs 是一个 cpio 档案,主要通过 gzip 压缩。initramfs 的重要功能是包含驱动程序、内核模块和其他将在系统启动过程中使用的用户空间程序。

因此,如果您配置了 LVM 或 RAID,则 initramfs 将具有可以读取 LVM 和 RAID 的内核模块。这与加密磁盘相同。

initramfs 是使用mkinitramfsdracut命令创建的。/etc/initramfs-tools/initramfs.conf 中有配置文件,它控制在创建期间如何以及需要将哪些模块加载到 initramfs 中。

/etc/initramfs-tools/hooks 下的脚本在创建或更新 initramfs 时执行,这些脚本会添加启动过程中所需的模块和库。例如,cryptsetup 会将包含解密/加密相关模块的脚本添加到 initramfs 中。

如果是实时 DVD 的情况,唯一的选择就是 initramfs 必须拥有几乎所有的模块来支持各种文件系统和设备。

答案2

Linux 安装 CD 上的 initrd 仅包含读取 CD/DVD 本身的驱动程序以及硬盘驱动程序。安装程序本身通常会检测任何附加硬件并加载可能需要的任何附加驱动程序。

相关内容