initrd和initramfs有什么区别?


12

我想知道,initrd和之间有什么区别initramfs

Answers:


12

不推荐使用Initrd,而用Initramfs代替,它没有initrd的某些弱点:

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

我认为就这些。


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

它将必要的文件转换为cpio 存档文件,该文件是二进制存档格式(非常类似于tar,在Linux中未广泛使用),然后使用gzip 压缩该存档。Gzip不是存档本身,只是压缩(这就是为什么获得.tar.gz存档文件的原因)。

在启动时,压缩文件将被解压缩解压缩到    ram-disk上

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


“ Initrd至少需要将一个文件系统驱动程序编译到内核中。”。我对此有很多想法。您能解释一下吗?
森,

通常,文件系统驱动程序可以随意连接到操作系统上,因为某些事情它们必须直接编译到内核中。令人痛苦的是,由于必须自定义所有内核版本,将其变得更大,引入其他依赖关系等等。(至少我认为是这种情况,很可能是错误的,我对文件系统没有特别的了解)
Stefano Palazzo

就像initramfs不需要一开始就安装吗?
森,

必须先挂载所有文件系统,然后才能使用它们。如果您想深入了解initramfs,请访问en.wikipedia.org/wiki/Initrd-那里有更详细的解释。
Stefano Palazzo

此update-initramfs命令如何生成/boot/initrd.img?
森2010年

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

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


您能否解释一下从开始到加载和读取initramfs的步骤?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.