一周前,我开始在已 root 的 Evo 4g 上访问 SD 卡时出现间歇性 IO 错误。我最终将其插入 Windows 计算机并尝试对其进行格式化。它似乎有效,但当我卸载并重新安装卡时,所有文件都回来了。我尝试在手机上格式化,结果相同,并让同事尝试使用 Mac diskutils 套件。所有格式都声称有效,但重新安装卡后文件又回来了。最后我运行了dd if=/dev/zero of=/dev/block/mmcblk0
;它完成了,同样的事情再次发生。
但事情就是从这里开始变得疯狂。我将一个新的恢复文件放在 SD 卡上 — — 并且它毫无问题地添加了该文件。但现在它无法删除,就像其他所有东西一样。所以我可以写入 SD 卡,但无法删除任何东西。
我该如何修复这个问题?或者如果我不能修复,至少能告诉我为什么会发生这种情况吗?
答案1
最终我更换了卡,现在一切都正常了。多次尝试通过不同的系统删除文件都失败了。经过进一步研究,我发现一些 SD 卡/闪存能够将卡的故障部分更改为只读,这允许可写部分仍然接受更改,同时不允许更改任何旧项目。由于设备已经满了,它除了作为永久备份之外几乎毫无用处。感谢大家的建议。
答案2
我建议你尝试使用 GNU/Linux 机器(Live CD 应该可以)和shred
所有文件。查找错误kernel.log
,然后dmesg
执行此操作 - 如果设备以只读方式安装,则 FS 已损坏,请重新分区。