initramfs.cpio 和 rootfs.cpio 之间的区别

initramfs.cpio 和 rootfs.cpio 之间的区别

两者有什么区别?

我可以只使用 initramfs.cpio 还是需要同时使用两者?

实际上我的 rootfs.cpio 文件有 7 Mb 而 initramfs.cpio 只有 0.5mb,所以我在想是否可以只使用 initramfs.cpio

答案1

这完全取决于您想要实现的目标。

Rootfs 是 ramfs(或 tmpfs,如果启用的话)的一个特殊实例。大多数系统只是在 rootfs 上挂载另一个文件系统并忽略它。 ramfs 的空实例占用的空间量很小。

Linux 内核包含一个 gzip 压缩的“cpio”格式存档,该存档在内核启动时被提取到 rootfs 中。解压后,内核检查 rootfs 是否包含文件“init”,如果包含,则将其作为 PID 1 执行。如果找到,则该 init 进程负责完成系统的其余部分,包括定位和挂载真正的根设备(如果有)。如果在将嵌入式 cpio 存档解压到 rootfs 后,rootfs 不包含 init 程序,则内核将使用旧代码来定位并挂载根分区,然后从中执行 /sbin/init 的某些变体。

相关内容