我从以下文章中了解到了两者之间的区别堆栈溢出但我还是觉得难以理解临时文件以及 initramfs 相对于 initrd 的真正优势。
我发现在 RedHat EL 5 或 Ubuntu 12.04 上,/boot 中只有 initrd 文件。但是 RedHat EL 6 有 intird 和 intramfs 文件。这是否意味着只有 Redhat 6 实现了 intiramfs,而我们仍然在那里有 initrd 映像?
答案1
如果你所说的 Redhat 是指分配,该版本十年前就已停产,那么它确实只支持initrd
和而不支持initramfs
。但在较新的发行版中,initrd
中的名称/boot
只是出于历史原因而这样命名的。
有一段时间,发行版同时支持这两种格式。内核知道其中的区别,并且可以在启动时分辨出区别。但为了简化生成启动配置的工具,两种格式都使用了相同的文件名。
实际情况initrd
已经被弃用很长时间了。您必须创建一个文件系统,它需要具有固定的大小,并且您需要那么多内存。initramfs
内存使用量将根据实际文件的大小进行调整,并且当您不需要在将文件放入文件系统之前确定文件系统的大小时,它更容易生成。