背景:
我有一个带有闪存和 SD 存储的嵌入式系统。
目前我仅使用闪存来启动(uBoot、内核、initramfs)。
根文件系统 ( /
) 位于 SD 上 (ext3
上/dev/mmcblk0p2
)。
当电源突然断电时,我(有时)会遇到 SD 故障(不幸的是,我无法阻止这种情况)。
我想将根文件系统分为两个覆盖层,以便系统的大部分是“较低”的只读/只读,存储在闪存中(可能是替换initramfs),而应用程序相关的“上部”覆盖位于ext3/4
SD 上的另一个读/写分区上。
完全启动所需的所有部件都应位于“lower”上,以便在“upper”(暂时)丢失时系统可以正常工作。
/tmp
,/var
并且其他需要读/写的地方已经打开tmpfs
,因此系统可以以只读/只读方式启动/
。
如果出现故障,“lower”可以尝试恢复,并作为最后的手段完全mkfs.ext4 /dev/mmcblk0p3
重新初始化它。
问题:
如何挂载overlay
分区/
?
我阅读了文档,但我有点困惑,因为所有示例似乎都适用于不同于/
;的目录。我可以做类似的事情吗:
mount /dev/mmcblk0p3 /ovr
mount -t overlay -o lowerdir=/,upperdir=/ovr,workdir=/ovr overlayfs-root /
启动后早期(最好是在 中/etc/inittab
,因为我正在使用 Busybox init
)?
答案1
是的,请参阅:https://askubuntu.com/questions/109413/how-do-i-use-overlayfs
简而言之,/
在挂载overlayfs之前,您必须挂载到其他地方,或者将其绑定挂载到那里。