Linux:指定带有后备功能的根文件系统

Linux:指定带有后备功能的根文件系统

我知道我可以使用 initrd/initramfs 来做任何需要做的事情,但如果可能的话,我想避免这个选项。

我需要有一个“正常”工作的 rootfs(如果重要的话,在嵌入式系统的 SD 卡上)。如果出于任何原因,启动无法成功(例如:内核无法干净地安装此系统),它应该尝试从“恢复”rootfs(Flash 上的 SquashFS)启动,它将负责恢复“正常”文件系统并重新启动。

不借助 initramfs 的话能实现这样的功能吗?

我不要 initrd/initramfs 的原因是由于 Flash 大小的限制。

答案1

您可以使用“恢复”系统来实现与 initramfs 相同的目的。它们几乎是一回事。

当然,它不会像 initramfs 那样加载到 RAM 中,但这是唯一的区别,并且它仍然可以用于相同的目的 - 挂载真正的 rootfs,检查它是否正常,将 pivot_root 放入其中,并执行其 /sbin/init。如果挂载失败,它将执行恢复。

(反之亦然,您可以删除 squashfs 文件系统,而将所有恢复工具放入 initramfs 中 – 如果设备有足够的 RAM 来容纳它们。)

相关内容