SF.*_*SF. 11 linux filesystems embedded corruption sd-card
我的嵌入式 linux 设备使用 SD 卡来保存某些诊断数据,对于内部闪存来说太丰富了。
问题是如果设备意外关闭,卡上的文件系统 (FAT32) 已损坏。
没有办法防止意外断电或用户那样关闭它,并且设备应该是相对免维护的。更糟糕的是,数据是连续写入的,因此损坏非常频繁,Linux 在检测到故障 FS 时会以只读方式静默重新挂载它。
您建议采用哪些方法来缓解这种情况?启动时自动运行 fsck.vfat 就足够了吗?
更多信息:
您可以使用block2mtd
驱动程序来使用您似乎在其他地方为 SD 卡使用的事务性 jffs2 或 yaffs(2) 文件系统,这将解决您在关机时数据丢失或文件系统损坏的问题。
但是,这样做可能会导致其他问题。由于 SD 卡可能有自己的磨损均衡和扇区重新映射机制,这些可能会干扰 jffs2 和 yaffs 的实现,从而降低 SD 卡的使用寿命或性能。如果这不是问题,那么应该值得一试。
检查您使用的内核是否支持 vfat 的刷新和/或同步标志(似乎有些版本忽略了它,小心!)。
或者,如果一切都可以进入一个文件(就像原始日志流的情况一样!)或几个固定大小的文件(使用分区;)