我有一个闪存盘,可能带有 bas 扇区。当我尝试将数据复制到其中时,它工作正常,直到大约 460Mb,然后文件开始损坏。损坏仅在我卸载并移除驱动器时发生,在卸载之前,文件完好无损。Linux 程序“badblocks”未找到任何坏块。我尝试格式化它,但没有任何效果。我使用了 Fat 16 和 32,两者都有同样的问题。有没有办法在卸载后测试坏块,我该如何修复它们?
答案1
sync
我猜你有同步问题...卸载之前通过命令进行同步。
如果此解决方案不能解决你的问题,你可以尝试通过“dd”命令硬格式化你的 USB 记忆棒
sudo dd if=/dev/zero of=/dev/sd?
然后创建分区并进行格式化。
这些解决方案都不起作用,所以请和你的棍子说再见吧。
答案2
你不能。
根据我的经验,USB 闪存不会像硬盘那样重新映射坏块。一旦出现写入或读取错误,驱动器就几乎成了垃圾,因为您不能再信任它来存储任何数据。许多驱动器似乎可以毫无问题地执行写入操作,但在读取过程中会给您损坏的数据。
使用以下方式进行测试f3
http://oss.digirati.com.br/f3/
F3代表打击假闪光或者打击 Flash 欺诈 它是一种用于对闪存(或其他介质)执行写入/读取测试的工具,用于区分正常、故障和假闪存。
要使用以下命令测试您的驱动器f3
:
- 安装F3工具:
apt install f3
- 格式化并安装要测试的驱动器
- 在驱动器的根目录中打开终端
- 执行此命令:
f3write .; f3read .;
- 这将首先创建测试文件,然后将其读回并与预期输出进行比较。您将获得有关写入/读取速度和读取数据时遇到的错误的详细报告。- 测试结束后,你可以删除所有测试文件
rm *.h2w
- 测试结束后,你可以删除所有测试文件
如果测试报告错误 - 我的建议是扔掉驱动器并从信誉良好的供应商处购买一些产品(例如:金士顿、pqi、Verbatim、Silicon Power)。廉价的无名产品往往质量参差不齐,有时甚至令人讨厌。我时不时会处理一批闪存驱动器,其中 50% 的单元都是垃圾。
附言:我在工作中处理了数千个 U 盘,并且我开发了一个基于该 U 盘的内部工具,f3
可以方便地测试大量 U 盘。