我已经从stackoverflow阅读了两者之间的差异。但是我仍然很难理解tmpfs以及 initramfs 相对于 initrd 的真正优势。
我发现在 RedHat EL 5 或 Ubuntu 12.04 上,/boot 中只有 initrd 文件。但是 RedHat EL 6 同时具有 intird 和 intramfs 文件。这是否意味着只有 Redhat 6 实现了 intiramfs 而我们仍然有 initrd 映像?
我已经从stackoverflow阅读了两者之间的差异。但是我仍然很难理解tmpfs以及 initramfs 相对于 initrd 的真正优势。
我发现在 RedHat EL 5 或 Ubuntu 12.04 上,/boot 中只有 initrd 文件。但是 RedHat EL 6 同时具有 intird 和 intramfs 文件。这是否意味着只有 Redhat 6 实现了 intiramfs 而我们仍然有 initrd 映像?
如果您所说的 Redhat 指的是十年前停止的发行版,那么它可能是真的,它只支持
initrd
而不支持initramfs
. 但是在较新的发行版中,出于历史原因,其中的initrd
名称/boot
只是这样命名的。有一段时间,发行版同时支持两者。内核知道其中的差异,并且可以在引导时分辨出差异。但是为了简化生成引导配置的工具,两种格式都使用了相同的文件名。
实际
initrd
已被弃用很长时间。您必须创建一个文件系统,该文件系统需要具有固定大小,并且需要那么多内存。内存使用initramfs
量会根据实际文件的大小进行调整,并且更容易生成,当您不需要在将文件放入文件之前弄清楚文件系统的大小时。