为什么 Linux 在启动时使用初始 Ram 磁盘?

Bah*_*ïka 5 linux boot

我想知道 :

initrd在引导过程的第一部分使用 an然后pivot_root将根放在真实磁盘上的目的是什么?为什么不只使用磁盘上的内容?

gol*_*cks 5

为什么不只使用磁盘上的内容呢?

你可以。您不必使用 initrd(或 initramfs,自内核 2.6.13 以来更新且更广泛的版本)。

使用它们的原因是发行版内核是通用的,并且必须支持各种开箱即用的硬件。对于安装根文件系统至关重要的不同硬件的一些驱动程序可能是互斥的(我不确定),但无论如何,构建所有可能性 - 这是你必须做的 - 将使对于一个非常大的内核。

因此,驱动程序不是内置在内核中,而是位于单独的二进制模块中。这是 initramdfs/initrd 的主要有效负载;它允许内核加载适当的硬件驱动程序,以便可以正确安装根文件系统。