使ext4安全
ext4对此并不是很理想;最糟糕的情况是,当你的分区是RW并破坏文件系统时,电源会出现故障.
尽管它们是为原始NAND设备设计的,但像jffs2或yaffs这样的日志文件系统可能仍然有用.它们具有有用的特性,即它们的磁盘格式看起来更像是列表而不是树,因此更新的数据往往更紧密地打包,因此不太可能丢弃文件系统的相对静态部分.
在这种情况下,我无法评论如何使ext4’安全’;文件系统结构和fsck都不知道闪存设备的常见故障模式(特别是,在任何写入期间,整个数据块无效的时间很长.)这种行为当然是特定于控制器上的CF卡,所以无论如何它都不是很可预测的.
我能想到的最安全,最可预测的方法是在较小的嵌入式设备中使用相同的翻转缓冲数据布局.也就是说,您有两个可写区域(两个分区).在任何给定时间,它们中至少有一个必须一致.当你想写时,选择两者中较老的一个.如果启动并检测缓冲区A中的不一致,请复制缓冲区B的内容(同时不允许对B进行任何写入.)
管理mount / remount
我会写一个代表系统上所有进程管理unmount / remount的守护进程.这有许多优点:
>你将umount / remount逻辑分开,只需实现一次>想要写入的进程不需要root权限>你可以构建某种看门狗,以确保分区不会长时间留在RW.如果是,您可以终止违规流程(可能会回滚)和重新安装RO.>您可以测量您安装RW的时间长度,这可以让您了解每次更新所涉及的风险
本文探讨了在嵌入式环境中使用ext4文件系统时的安全挑战,尤其是面对闪存设备的不稳定性。作者建议使用日志文件系统如jffs2或yaffs,通过翻转缓冲策略提高数据一致性,并提出通过守护进程管理umount/remount以降低风险。

被折叠的 条评论
为什么被折叠?



