如果 initramfs 驻留在要解锁的文件系统上,则如何加载它?

如果 initramfs 驻留在要解锁的文件系统上,则如何加载它?

我有一个鸡和蛋类型的难题,我想弄清楚:

第一点:

如果 initramfs 的目的之一是通过提供一些必要的驱动程序(例如 RAID)来加载主文件系统,并且 initramfs 存在于所述文件系统上,那么它到底是如何工作的呢?

第二点:

有些消息来源似乎说内核是加载 initramfs 的。在这种情况下,如果内核驻留在 initramfs 最初应该提供访问的文件系统上,那么首先如何访问内核?

答案1

在 Linux 上,initramfs 由引导加载程序加载到内存中,而不是内核;引导加载程序还会加载内核,并告诉内核 initramfs 在哪里,以便内核引导时可以在内存中找到 initramfs 并使用它来引导系统。 (这遵循多重引导规范.)

引导加载程序,GRUB在许多系统上,包括允许它访问包含 initramfs(和内核)的文件系统的驱动程序。这包括 RAID 模块、文件系统驱动程序、LVM 模块、解密模块等。(一些更简单的引导加载程序不提供如此广泛的支持,因此限制了内核和 initramfs 的存储可能性。)

相关内容