参考资料: https://blog.csdn.net/weixin_43269452/article/details/131169725 https://blog.csdn.net/u012787604/article/details/121685547 https://zhuanlan.zhihu.com/p/637951209?utm_id=0 https://blog.csdn.net/m0_71272694/article/details/127028867 https://blog.csdn.net/u012247418/article/details/107727631
initrd和initramfs的基本概念:
initrd(Initial RAM Disk)和initramfs(Initial RAM File System)都是用于在 Linux 系统引导过程中加载临时文件系统的方法,它们的区别如下:- initrd
- initrd 是最早期使用的一种方式,它是一个固定大小的内存磁盘,其中包含用于启动系统所需的程序和驱动程序。在引导过程中,内核会先加载 initrd 到内存中,然后将其挂载为根文件系统。一旦 initrd 加载完成,它的使命就完成了,此后真正的根文件系统会被挂载到系统中。
- initrd 的缺点是固定大小和浪费空间,因为它需要预先分配一个固定大小的内存块。
- initramfs
- initramfs 是 initrd 的进化版本,它是由内核动态生成的临时文件系统,可以根据系统需要加载所需的模块和文件。相比于 initrd,initramfs 更加灵活和高效,因为它只包含引导所需的文件和程序,不会浪费空间。
- 内核会在引导过程中加载 initramfs 到内存中,并将其作为初始根文件系统。之后,initramfs 负责加载必要的驱动程序和文件,最终将真正的根文件系统挂载到系统中