ubifs没有fsck程序,那么在使用ubifs时如何检查文件系统完整性呢?

我的目标系统是 ARM,Linux 3.2.58。

最佳答案

从我目前在 UBIFS' web page 上发现的内容来看:



如果您需要检查文件系统是否损坏

如果您的 UBIFS 文件系统是使用 chk_data_crc 选项挂载的,那么简单的 cat $FILES > /dev/null 就足够了。如果没有,您只能检测和恢复元数据损坏。文件体的损坏将被忽视。

我使用了类似 find / -type f -print -exec cat {} + > /dev/null 的东西

如果您需要恢复损坏的文件

再次来自 overview 部分:



虽然理论上可行,但您只能靠自己。

备份闪存内容,用 UBIFS 数据结构(可能是源代码)和十六进制编辑器武装自己,祝你好运。

编辑 :正如我所想的,Linux 的 MTD 驱动程序已经将 ECC(纠错码)应用于 MTD 设备。

我相信,如果每个 /sys/class/mtd/mtd*/ecc_strength 闪存块有超过 /sys/class/mtd/mtd*/ecc_step_size 错误,则数据丢失的标准。在这种情况下,mtd_read()(它是比 UBIFS 低一级的 MTD API)will return EUCLEAN 。不知道是否存在使用它来检查错误的工具。

The "bit flipped" warnings we get do not mean that there was a data loss yet 。您可以写入 /sys/class/mtd/mtd*/bitflip_threshold 以控制收到的警告数量。

关于linux - 如何检查 ubifs 文件系统?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32960034/

10-09 04:09