linux – 使SD卡防止腐败

我的嵌入式 linux设备使用SD卡来保存某些诊断数据,这对内部闪存来说太多了.

问题是如果设备意外关闭,卡上的文件系统(fat32)已损坏.

没有办法防止意外断电或用户将其关闭,并且该设备应该相对免维护.更糟糕的是,数据是连续写入的,因此损坏是非常频繁的,并且Linux在检测到有故障的FS时会以静方式重新读取它.

您建议采取哪些方法来缓解这种情况?将在启动时自动运行fsck.vfat吗?

更多信息:

>该卡不被用户视为可移动.它被认为是内部磁盘.存储在其上的任何数据都可以通过网络或USB驱动器下载,系统会自动清除最旧的条目.这意味着它不需要在普通PC中可读.
>系统目前支持FAT,yaffs和jffs2.将其他文件系统添加到内核是可能的,但如果存在其他途径,我们首先会更喜欢它们.
>即使在几分钟内也可以根据需要暂停写入而不会丢失数据.
>部分数据丢失或轻微腐败是可以接受的.完全停止记录不是.
>大多数时候,断电事件完全不可预测.
>系统在ARM9,200MHZ,64MB RAM,32M​​B内部闪存上运行,并占用大部分cpu功率作为其主要角色.在考虑花哨的资源密集型解决方案时考虑到这一点.

解决方法

您可以使用block2mtd驱动程序来使用您在其他地方用于SD卡的事务性jffs2或yaffs(2)文件系统,这将解决您在断电时数据丢失或文件系统损坏的问题.

但是,这样做可能会引发其他问题.由于SD卡可能有自己的磨损均衡和扇区重新映射的机制,这些可能会干扰jffs2和yaffs的实现方式,从而降低SD卡的使用寿命或性能.如果这不是问题,那么值得尝试.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...