我已经拥有一个便宜,brandless 2GB的闪存驱动器。正如我有一个更大的闪存驱动器,我已决定使用它用于测试闪存技术的鲁棒性。

我打算写1的遍布驱动,检查正确性,写入0的,检查等。我将记录结果,并寻求失败后。

我要寻找这样做,最节约资源的技术。我目前的策略包括使用Linux DD命令写入和读出,结果比较一和零的文件。另一种方法是编写一和零到驱动器,并计算其内容的MD5。这是大量的IO之间的简单折衷的读取和高CPU使用率;我想我会简单地测量每个方法的运行时间而定。

是否有这样做的更好,更优雅的方式?

有帮助吗?

解决方案

选择一个随机的32位数字。写在每个块。阅读从每一个块。新的32位数字。再次运行的驱动器。如MD5哈希算法是CPU密集型的。既然你知道确切的模式,只是要测试的驱动器不搞砸了位,简单直接的比较是最好的办法。不要使用DD ...从像C或Perl语言编写直接(如果有过的苹果站在旁边的橙子......)

没有需要有一个比较文件要么...的图案在存储器配合。事实上,如果做整齐,但闪存盘显然是一个瓶颈,反正整个测试可能适合在CPU缓存。找到一个数字,是不正确的,你知道你有你的坏块。

其他提示

您也可以使用Linux的“badblocks”命令来为你做的测试。当与-w选项一起使用它会做一个写模式测试你使用各种图案,写块和回读,以检查它成功了。

可以直接在设备上,而无需安装它太,以测试物理设备的每个块运行它。

   -w     Use  write-mode  test. With this option, badblocks scans for bad
          blocks by writing some patterns  (0xaa,  0x55,  0xff,  0x00)  on
          every block of the device, reading every block and comparing the
          contents.  This option may not be combined with the  -n  option,
          as they are mutually exclusive.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top