initrd 和 initramfs 混淆

initrd 和 initramfs 混淆

我从 arch wiki 上读到:

如果您的根文件系统位于 LVM 上,您将需要启用适当的 mkinitcpio 挂钩,否则您的系统可能无法启动。

但是,我的 initrd 和 initramfs 都位于我的根文件系统上。如果内核没有从lvm读取的模块,它如何加载这些文件?这不是先有鸡还是先有蛋的问题吗?另外,内核是否同时使用 initrd 和 initramfs 方案,还是只使用其中一种?如果两者都有,它们如何协同工作?

答案1

这不是先有鸡还是先有蛋的问题吗?

在某种程度上,当然。

内核是如何加载这些文件的

事实并非如此。 (完全模块化的)内核确实无法做到这一点,事实上根本无法访问任何磁盘,直到您加载适当的模块(ahci、scsi 等)

你还可以问内核如何加载内核......这是不可能的,所以必须有其他的东西。

就像引导加载程序一样,它会为您加载内核和 initrd/initramfs(如果适用 - 可以将两者放入一个文件中。)

相关内容