7. 如何在没有磁盘设备驱动程序的情况下启动

对于大多数系统,ATA 磁盘设备驱动程序必须绑定到基本内核中,因为根文件系统位于 ATA 磁盘上 [1] 并且如果没有 ATA 磁盘驱动程序,内核就无法挂载根文件系统,更不用说从中读取任何 LKM。 但是,如果您真的希望根文件系统的设备驱动程序是一个 LKM,那么这就是使用 Initrd 的方法

“Initrd” 是 Linux 的“初始内存盘”功能的名称。 有了这个,您可以使用引导程序(可能是 LILO 或 Grub)在启动内核之前将文件系统加载到内存中(作为内存盘)。 当它启动内核时,它会告诉内核将内存盘挂载为根文件系统。 您可以将真实根文件系统的磁盘设备驱动程序以及加载它所需的所有软件放在该内存盘文件系统中。 您的启动程序(位于内存盘中)最终将真实(磁盘)文件系统挂载为根文件系统。 请注意,内存盘不需要任何设备驱动程序。

然而,这并不能让您免于必须将以下内容绑定到基本内核中:1) 内存盘中文件系统的文件系统驱动程序,以及 2) 内存盘中程序的可执行文件解释器。

注释

[1]

您可能将这种类型的磁盘称为“IDE”。 严格来说,IDE 是一个不正确的称谓。 IDE 指的是“集成驱动电子”技术,所有现代磁盘驱动器,特别是包括所有 SCSI 磁盘驱动器,都使用该技术。 最早普遍使用的 IDE 驱动器是 ATA,并且名称有点混淆。 ATA,像 SCSI 一样,是对电信号、命令等的精确规范。