initrd和initramfs有什么区别?

我想知道, initrdinitramfs什么区别?

不推荐使用Initrd,取而代之的是Initramfs,它没有initrd的一些弱点:

  • Initrd要求至少将一个文件系统驱动程序编译到内核中
  • 由Initrd创建的磁盘必须具有固定大小
  • Initrd上的所有读/写都被冗余地(不必要地)缓冲到主存储器中

我想就是这样。


这个update-initramfs命令如何生成/boot/initrd.img?

它将必要的文件转换为cpio 存档 ,这是一种二进制存档格式(非常类似于tar ,在Linux中没有广泛使用),然后使用gzip 压缩该存档。 Gzip不是归档itsef,只是压缩(这就是为什么你得到.tar.gz归档文件)。

在启动时,存档被解压缩解压缩 ram-disk

另请参阅: 计算机如何启动

  • initrd是基于块的设备,initramfs是文件库。

  • 使用initrd,您创建了一个文件系统映像。 使用initramfs,您可以使用内核提取到tmpfs的文件创建存档。