initrd 和 squashfs 有什么关系?

initrd 和 squashfs 有什么关系?

如果我们在实时 USB 中使用 initrd,为什么还需要 squashfs?

答案1

Initrd 已被弃用并由 Initramfs(以及某种程度上的 upstart)取代。

initrd 和 initramfs 有什么区别?

initramfs 更像是启动过程的一部分,是一个用于引导内核和初始化硬件的最小文件系统。

suqashfs 是一个压缩工具,它可以将大型(5 Gb)文件系统压缩成更小的尺寸,但它是 ro。

因此,squashfs 用于整个文件系统,/以及 Ubuntu 运行所需的所有二进制文件和库。

也可以看看:

https://help.ubuntu.com/community/LiveCDCustomizationFromScratch

https://wiki.ubuntu.com/Initramfs

Initramfs 是您的机器可以访问的第一个根文件系统。它用于挂载包含所有数据的真实 rootfs。initramfs 包含挂载 rootfs 所需的模块。

这是我构建的 initramfshttp://blog.bodhizazen.com/linux/initramfs/

http://squashfs.sourceforge.net/

Squashfs 是 Linux 的压缩只读文件系统。Squashfs 适用于一般只读文件系统、存档(即可以使用 .tar.gz 文件的情况)以及需要低开销的受限块设备/内存系统(例如嵌入式系统)。

答案2

squashfs 与压缩的 initramfs

值得注意的是,initramfs 也可以被压缩:https://unix.stackexchange.com/questions/2221/can-the-initramfs-image-use-a-compression-format-other-than-gzip/429880#429880

我认为 squashfs 的优点在于您不必在每次启动时对巨大的图像进行完全解压缩,这会很慢。

这就是 initramfs 所做的,因为它只是一个压缩的 .cpio。

相反,squashfs 允许您在进行过程中仅解压缩文件,因为它必须分别压缩单个文件和磁盘数据结构。

相关内容