最近参与的一个项目涉及到读写SD卡,在读写过程中,如果忽然发生断电行为,有一定概率性导致sd卡的文件系统损坏(本人采用ext2文件系统),试想过两种方案:
1、当系统启动时,检测mount失败,重新格式化分区,命令如下
mkfs.ext2 /dev/分区名(对应的硬件存储设备)
然后再重新执行mount指令
2、mount失败时选择修复SD卡的文件系统(第一种方式会导致SD卡之前存储的内容失效),这时我们就需要fsck相关镞修复指令,可是之前文件系统的工具是由BusyBox编译copy而来的,经md5sum校验发现fsck和fsck.mini的md5值是一致的,再看BusyBox中Utilities源码发现并没有fsck相关的.c和.h;于是想到直接编译e2fsprogs源码,直接生成fsck相关工具镞!
ex2fsprogs:The Ext2 Filesystem Utilities (e2fsprogs) contain all of the standard utilities for creating, fixing, configuring , and debugging ext2 filesystems.
上面是对ex2fsprogs工具包的描述。
接下来下载源码:
https://sourceforge.net/projects/e2fsprogs/
具体的版本信息可从http://e2fsprogs.