initramfs,initrd和内核如何在Centos 7的启动中发挥作用?

nish

如果它们是同一件事,我对initramfs和initrd不会感到困惑。首先将initramfs加载到内存中,然后将内核加载到内存中,然后内核从initramfs映像文件(包括systemd进程)中加载驱动程序。

或两个grub都将initramfs和内核同时加载到内存中。然后内核提取initramfs上的内容以进一步进行systemd启动

我的/ boot的内容:

在此处输入图片说明

锯末

如果它们是同一件事,我对initramfs和initrd不会感到困惑。

他们不是“同一件事”这就是为什么他们使用不同的名称。
但是,它们可以达到相同的目的,即初始的根文件系统。
它们的实现方法不同,即它们在内存中的存在方式。

initrd是初始虚拟磁盘。与使用大容量存储的块设备相反,虚拟磁盘是存在于内存中的块设备,通常在主内存中分配。不赞成在Linux中使用initrd,而推荐使用initramfs。

initramfs是初始ramfs。ramfs利用现有的文件系统缓存作为存储介质。ramfs可以存储与可用内存一样多的数据。

首先将initramfs加载到内存中,然后将内核加载到内存中,然后内核从initramfs映像文件(包括systemd进程)中加载驱动程序。

不可以,因为您的描述没有任何意义(例如,“ initramfs加载到内存中”)。
引导程序(例如Grub,U-Boot)必须将内核从引导设备加载到主存储器中。
如果存在initrd,则引导程序还必须加载该映像文件。

或两个grub都将initramfs和内核同时加载到内存中。然后内核提取initramfs上的内容以进一步进行systemd启动

关闭。
如果有一个initramfs而不是initrd,则cpio归档文件将链接到内核映像中。在启动过程中,内核会创建一个空的initramfs。然后提取附件的cpio存档以填充初始ramf。


官方Linux文档在这里有更多详细信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章