我的嵌入式 linux 设备使用 SD 卡来保存某些诊断数据,对于内部闪存来说太多了。
问题是如果设备意外关闭,卡上的文件系统 (FAT32) 就会损坏。
没有办法防止意外断电或用户那样关闭它,并且该设备应该是相对免维护的。更糟糕的是,数据是连续写入的,因此损坏非常频繁,Linux 在检测到故障 FS 后会静默地将其重新挂载为只读。
您建议采用哪些方法来缓解这种情况?在启动时自动运行 fsck.vfat 是否足够?
更多信息:
- 该卡不应被用户认为是可移动的。它被认为是内部磁盘。存储在其中的任何数据都可以通过网络下载或下载到 USB 驱动器,系统会自动清除最旧的条目。这意味着它不需要在普通 PC 上可读。
- 系统目前支持FAT、yaffs和jffs2。向内核添加其他文件系统是可能的,但如果存在其他途径,我们会优先选择它们。
- 写入可以按需暂停甚至几分钟而不会丢失数据。
- 部分数据丢失或轻微损坏是可以接受的。完全停止日志记录不是。
- 大多数情况下,断电事件是完全不可预测的。
- 该系统在 ARM9、200MHZ、64MB RAM、32MB 内部闪存上运行,并耗尽了大部分 CPU 能力来发挥其主要作用。在考虑奇特的资源密集型解决方案时,请考虑到这一点。