最近,我买了一个设计很酷的U盘。
卖家说它是256GB,但是我已经知道容量是假的。不管怎样,我买它是因为它的设计很酷,无论如何都想使用这个 USB 闪存驱动器。
我该怎么办?我试图找到一个合适的工具(vid 1908 / pid 1320)但找不到。我可以通过低级格式修复它吗?或者通过 Linux 进行分区?
格式化既不会告诉您驱动器的真实容量,也不会将其报告的容量设置为实际容量。写入所有报告的扇区显然会成功,因此 /P 选项无济于事。
正如 Bob 在之前的评论中所说,这些驱动器一次又一次地重复使用相同的块。它们不会完全环绕,因为这会很快损坏块 0 中的 MBR 和分区表,导致 Windows 抱怨驱动器需要格式化。但是它们确实允许成功写入不存在的空间。如果你读回你刚写的数据,那也行,因为对不存在空间的读取被映射到与写入相同的实际块。但是,如果您还尝试读取之前写入的数据,您将获得稍后写入的数据,即使您认为它们被写入不同的扇区。
在正常使用中,症状是当您在驱动器上放置“太多”数据时,文件系统元数据会损坏。(但通常不是分区表,因为制作这些东西的人渣足够聪明,不会重用前几个块。)
抱歉,您不能“低级格式化”USB 驱动器。USB 大容量存储类中没有任何命令来请求低级格式。顺便说一句,您也不能对 SATA 或 PATA(“IDE”)驱动器进行“低级格式化”。ST506 和 ESDI 驱动器而不是 SCSI 或 ATA 可以实现消费者的“低级格式化”。同样,在 SCSI 或 ATA 命令集中没有任何命令可以让您这样做。在将盘片组装到最终驱动器之前,低级格式化实际上是在工厂完成和测试的。
要让您的假 USB 驱动器报告其实际容量(假设您即使在那时也想信任它;我不会),您必须重写设备的固件。从 USB 接口几乎可以肯定这也是不可能的。
要了解真正的存储量是多少,heise.de 有一个名为 h2testw 的工具。它为每个块写入一个独特的模式,并在每次写入后检查一些最早写入的块,以查看它们是否仍然包含它最初写入的模式。这可以非常快速地检测到假驱动器。(而且,RPL,这将提供您要求的“参考”。)
您可能会发现驱动器的真实容量如此之小,以至于不值得费心。
您可以尝试用于 Linux 的f3(Fight Flash Fraud)工具集。
f3probe首先运行以检查实际驱动器大小,然后f3fix创建一个与可用大小一样大的分区。然后测试分区(f3write/ f3read)。
| 归档时间: |
|
| 查看次数: |
28392 次 |
| 最近记录: |