Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 测试闪存驱动器的健壮性:dd';在驱动器出现故障之前停止驱动?_Flash_Md5 - Fatal编程技术网

Flash 测试闪存驱动器的健壮性:dd';在驱动器出现故障之前停止驱动?

Flash 测试闪存驱动器的健壮性:dd';在驱动器出现故障之前停止驱动?,flash,md5,Flash,Md5,我得到了一个便宜、无品牌的2GB闪存驱动器。由于我有一个更大的闪存驱动器,我决定用它来测试闪存技术的健壮性 我计划在整个驱动器上写1,检查正确性,写0,检查等等。我将记录结果,稍后查找失败 我正在寻找最节省资源的技术。我目前的策略包括使用LinuxDD命令进行写入和读取,并将结果与一个包含1和0的文件进行比较。另一种方法是将1和0写入驱动器,并计算其内容的md5。这是大量IO读取和高CPU使用率之间的简单折衷;我想我将简单地测量每个方法的运行时间并做出决定 有更好、更优雅的方法吗?选择一个随机的

我得到了一个便宜、无品牌的2GB闪存驱动器。由于我有一个更大的闪存驱动器,我决定用它来测试闪存技术的健壮性

我计划在整个驱动器上写1,检查正确性,写0,检查等等。我将记录结果,稍后查找失败

我正在寻找最节省资源的技术。我目前的策略包括使用LinuxDD命令进行写入和读取,并将结果与一个包含1和0的文件进行比较。另一种方法是将1和0写入驱动器,并计算其内容的md5。这是大量IO读取和高CPU使用率之间的简单折衷;我想我将简单地测量每个方法的运行时间并做出决定


有更好、更优雅的方法吗?

选择一个随机的32位数字。把它写在每一块上。从每个街区读一读。新的32位数字。再次运行驱动器。像MD5这样的散列算法是CPU密集型的。由于您确切地知道模式,并且正在测试驱动器是否会损坏位,因此简单的直接比较是最好的方法。不要使用DD。。。直接从C或Perl之类的语言编写(如果有苹果站在橙子旁边…)


也不需要有比较文件。。。这种模式适合记忆。事实上,如果做得很好,整个测试可能适合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.

您还可以使用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.

是否有一种不使用文件直接写入设备的标准方法?打开块设备文件句柄/dev/usb/001或您系统上的任何等效文件。非常感谢,我将研究它。是否有一种不使用文件直接写入设备的标准方法?打开块设备文件句柄/dev/usb/001或您的系统上的任何等价物。非常感谢,我将研究它。太棒了!但我真的很想自己写,而不是使用现成的工具。太棒了!但我真的想自己写,而不是使用现成的工具。