需要 shell 脚本/bash 命令来验证本地硬盘、USB 驱动器的数据完整性,ETC, ...
就像著名的www.heise.de/download/h2testw;或者至少在存储库中常见的内容。 (h2testw 将特定的数据字符串反复写入介质,然后再次读取以验证写入是否正确,并显示写入/读取时间/速度。)
请不
dd if=/dev/random of=/dev/sdx bs=1k && dd if=/dev/sdx of=/dev/null bs=1k
因为它不会验证是否所有内容都已正确写入。它仅测试设备是否成功读取/写入。
到目前为止,我不太满意
badblocks -w -v /dev/sdx1
因为它似乎相当慢,而且我不知道它到底写了什么,以及它是否考虑了闪存介质上的磨损均衡。
还有一个名为 F3 的程序http://oss.digirati.com.br/f3/需要编译。设计为 h2testw,这个概念听起来很有趣,我更希望它成为一个随时可用的 bash 脚本。
答案1
这不是 bash,但却badblocks
是 *nix 下测试硬盘的相当流行的工具,并且和 一样普遍dd
。
从手册页:
-w 使用写入模式测试。使用此选项,badblocks 通过在设备的每个块上写入一些模式(0xaa、0x55、0xff、0x00)、读取每个块并比较内容来扫描坏块。此选项不能与 -n 选项结合使用,因为它们是互斥的。
您还可以运行非破坏性(-n
)读写测试。