Bre*_*man 83
无法在 USB 记忆棒中查询类似 SMART 的参数;我不知道有任何记忆棒支持这样做,即使是通过公开可用的专有软件。您能做的最好的事情是检查您是否可以使用 badblocks.
https://en.wikipedia.org/wiki/Badblocks
您想指定其中一个写入测试,它将擦除棒上的所有数据;先备份。
dmesg插入U盘后通过查看找到设备;您将看到设备名称(最有可能是 sd_,即 sdc、sdd 等)和制造商信息。确保您使用的是正确的设备!
如果棒是用有效的文件系统格式化的,您可能必须先使用unmount它。
示例语法,对于枚举为 /dev/sdz 的 U 盘,输出进度信息,数据破坏性写入测试和错误日志写入 usbstick.log:
sudo badblocks -w -s -o usbstick.log /dev/sdz
Run Code Online (Sandbox Code Playgroud)
假设它通过了,您需要在之后重新分区和重新格式化棒;此测试将擦除棒上的所有内容。任何故障都表明设备的内存控制器出现故障,或者它已用完备用块以重新映射故障块。在这种情况下,设备的任何区域都不可信。
sda*_*aau 24
通过[ubuntu] Error Check USB Flash Drive,我最终找到了这个,这可能会有所帮助:
我访问了博客 Fight Flash Fraud 和 SOSFakeFlash,它们推荐了软件 H2testw(请参阅此处或此处)来测试闪存。我下载了 H2testw 并发现它有两个问题:(1)它仅适用于 Windows,以及(2)它不是开源的。然而,它的作者很友好地包含了一个文本文件来解释它的作用;这个页面是关于我对该算法的 GPLv3 实现。
我的实现既简单又可靠,我不知道 F3 与 H2testw 相比究竟如何,因为我从未运行过 H2testw。我将我的实现称为 F3,它是 Fight Flash Fraud 或 Fight Fake Flash 的缩写。
@pbhj 的附录:F3 位于 Ubuntu 存储库中。它有两部分,f3write 将 1GB 文件写入设备,f3read 尝试在之后读取它们。通过这种方式测试写入和有效读取数据的容量和能力。
Mat*_*ons 14
我想这取决于故障模式。它们便宜是有原因的。
作为 USB 设备,通过 Windows 中的设备管理器或 Linux 中的 dmesg 输出观察总线会告诉您该设备是否被识别为已插入。如果不是,则是板上的控制器或物理连接坏了。
如果设备被识别为已插入,但没有被识别为磁盘控制器(我不知道这是怎么发生的,但是......)那么控制器就会被击中。
如果它被识别为磁盘驱动器,但您无法挂载它,则可以通过 fdisk 修复它并重写分区表,然后创建另一个文件系统。
如果您正在寻找SMART的等价物,那么您将找不到它。拇指驱动器控制器很便宜。它们是商品存储,并不意味着具有现代驱动器所具有的正常故障保护和智能。
一路走到今天,这个线程提出了一些问题。
-这需要多长时间(暗示让它在一夜之间运行的讨论)。
我目前正在使用 测试 USB 3.0 128G Sandisk sudo badblocks -w -s -o,它连接到我在较旧的 Athlon 64x2 中的 USB 3/USBC PCIe 卡。因此,在 PCIe 上将 USB3 转换为 USB3 应该相当快。
这是我完成 33% 时的控制台命令行:
Testing with pattern 0xaa: 33.35% done, 49:47 elapsed. (0/0/0 errors)
再后来:
Testing with pattern 0xaa: 54.10% done, 1:17:04 elapsed. (0/0/0 errors)
接下来是这个部分:
Reading and comparing: 43.42% done, 2:23:44 elapsed. (0/0/0 errors)
这个过程重复 oxaa,然后是 0x55、0xff,最后是 0x00。
ArchLinux 给出了一个不合格的声明:
For some devices this will take a couple of days to complete.
注意:测试是在晚上8:30左右开始的,测试在第二天早上8:45之前完成,我的情况大约在12小时内完成。
-破坏性测试不是唯一可能的方法。
维基百科提供了这样的声明:
badblocks -nvs /dev/sdb
This would check the drive "sdb" in non-destructive read-write mode and display progress by writing out the block numbers as they are checked.
我当前的发行版手册页确认 -n 是非破坏性的。
-n Use non-destructive read-write mode. By default only a non-
destructive read-only test is done.
最后, 这是不值得的。陈述。
总结一下,基于一个闪存芯片中数十亿个存储站点的情况,故障是一个单元已经被写入和擦除了数万次,现在正在发生故障。当一项测试显示一个单元出现故障时,请记住您添加和删除的每个文件都在运行这些周期。
这里的想法是,当 1 个单元发生故障时,更多的单元也会达到相同的故障点。今天有一个单元发生故障,但您正常使用它一段时间后,又有 3 个单元发生故障,然后又有 24 个单元发生故障,然后是 183 个,不知不觉中,内存阵列布满了坏点。在您的可用容量开始下降并最终迅速下降之前,只有这么多细胞会死亡。你怎么知道更多的细胞失败了?所以,这里的帖子通过说一旦你有一个坏的单元,你就完成了值得信赖的存储,从而保护你的数据。您的使用时间可能仍会持续数月。
这是你的数据。
HTH
| 归档时间: |
|
| 查看次数: |
107095 次 |
| 最近记录: |