我最近阅读了很多有关假MicroSD卡和USB拇指驱动器的信息,这些驱动器声称具有很大的空间(即使您要求使用计算机),但实际提供的空间却更少。我最近购买了SanDisk USB驱动器(声称有128 GB),并想测试其大小。它不是通过ebay或其他方式购买的,但我真的想在实际使用前测试其实际尺寸。
我可以在上面复制内容,再复制回来,看看文件是否还可以。我还可以使用哈希和其他东西实现自动化。但我希望有一个更准确的解决方案。我读过Windows,H2testw可以解决问题。有没有一种简单的方法可以在Ubuntu / Linux上进行测试?专门的,运作良好的工具吗?
更新:明确地说,这个想法是要验证控制器告诉Linux系统的大小是正确的(这样就不会丢失任何数据)。这并不是我想查看是否获得128 GB而不是127.3 GB。我想测试我写的所有数据是否都可以再次读取。不幸的是,我只能在英语技术网站上找到一些有关此的信息。不过,德国有很多资料来源。我实际上是在寻找类似的应用程序,但对于Ubuntu / Linux:https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from -ebay-with-h2testw /
Update2:我尝试收集一些英语来源。由于缺少时间,我没有详细阅读所有内容。
- https://www.ebay.com/gds/All-About-Fake-Flash-Drives-2013-/10000000177553258/g.html
- https://zh.wikipedia.org/wiki/USB_flash_drive#Counterfeit_products
- https://www.heise.de/newsticker/meldung/Verdaechtige-USB-Sticks-mit-2-Terabyte-bei-Amazon-Faelschungen-entlarven-Datenverluste-vermeiden-3915202.html
- http://www.pcgameshardware.de/USB-Stick-Hardware-255579/News/falsche-Speicherkapazitaet-bei-Amazon-1245682/
Update3:说明
由于下面的怪异评论家,一些解释。
这是什么问题,为什么仅dd不能解决问题?
这是对
“清楚地弄清楚您要解决的问题是什么,“假驱动器”的定义是什么。”
似乎有些人不了解问题。因此,尽管我认为这对我的问题很重要,但我尝试尽我所能详细解释。
您的操作系统或UNIX工具为您提供的USB设备的容量可能是错误的。这是致命的,因为您的操作系统会调整您可以发送到的数据量。发送超出其实际容量的数据,您将丢失数据。这是个问题。那么,为什么会发生这种情况?
您无需非常了解USB协议即可理解该问题。串行接口具有共同的属性,即客户端设备(USB驱动器)将需要通过此串行接口告知其自身容量。这意味着客户端设备需要它自己的控制器,并且需要有关设备用途以及在这种情况下的容量方面的一些知识。当它收到存储内容的命令时,它也决定要做什么。如果以这种方式对控制器进行编程,则可以忽略该命令或用数据覆盖某些内容。
这是什么意思?无论您使用什么Unix工具告诉您驱动器的容量:都是工具询问驱动器的内容,仅此而已。这就是发明h2testw的目的:它使用稍后介绍的方法测试实际大小,并将其与驱动器上的内容进行比较。如果不一致,则可能会丢失数据,因为所有用于存储数据的常用操作都依赖于操作系统的信息,而操作系统的信息只是询问控制器。为什么要问?测试需要时间并覆盖驱动器上的所有数据。因此,操作系统自然需要依赖此信息。
要检查像h2testw这样的实际容量,您确实可以使用dd
将数据写入驱动器,再次读取数据,然后查看是否与您写入的数据相同。完全合法。硬件和驱动器的性质使其更加复杂。例如,考虑写缓存。您需要确保不从缓存中读取。这只是为什么它看起来不那么简单的一个例子。还认为仅写零意味着信息的熵低,可以在读取时进行重构。细节上并不是那么容易。当然,您仍然可以手动进行操作。
但是为什么,什么时候可以自动化呢?为什么要工作?如下面我的答案所建议,f3实现了许多贡献者的大量想法(考虑到它是对h2testw的扩展),并且还实现了几种取舍不同的方法。开发人员想出了手头上不同的假驱动器(也称为假驱动器)的技巧。因此,尽管我理解了理论和问题(似乎是因为问题在德国技术媒体中得到了很好的解释,而在英语媒体中却未得到很好的解释),但我并没有假装理解所有内容,这就是我在上面提到它的原因。这只是我了解的理论,我更像是一个软件专家。但是作为一名信息学的学生,我对它的理解已经足够了解问题。
“尝试了解基本的Unix实用程序”
实际上,我已经回答了这个问题,但要明确地说:Unix工具只使用USB协议(当然,仅适用于USB设备)来收集信息。做更多的事情没有任何意义。
仅从信托供应商那里购买有帮助吗?
tl; dr:没有。
“在购买商品时,就像涉及任何形式的安全性一样,请考虑寻找可信赖的卖家,并仅从他们那里购买驱动器。”
安全(和安全)与信任无关!这是关于验证和确认!抱歉,但这在很多方面都是错误的。
假设您通过受信任的卖家购买。几个问题:
供应商是否测试了硬件以确保没有数据丢失?当他购买并出售假驱动器时,他会认出吗?不必要。
他是否有可能购买他不知道是假货的东西?完全,看看最近ryzen假货:https://www.pcgamer.com/beware-of-fake-ryzen-processors-selling-on-amazon/,https://www.heise.de/newsticker/meldung/ Direkt-von-Amazon-Faelschungen-von-AMDs-Ryzen-Prozessoren-im-Umlauf-3772757.html
如果我松开驱动器中的演示文稿并弄乱了演示文稿,我值得信赖的供应商会回到过去并救我吗?自从上一次长时间旅行的DeLorean于1885年被摧毁以来,它可能会取代驱动器。
其他的东西
“这个问题实际上似乎更像是OP所喜欢的”促销”,而且OP对实际测试驱动器的兴趣不大。”
这是荒唐的。我专门在寻找与h2testw类似的工具,该工具也可以在linux上运行。是的,这就是我想要的,有用的答案,很抱歉。我不知道英语出版社还不了解这些问题,因此很幸运以后能找到类似的东西。这不是促销活动,但实际上您可以使用其中一个。
df --block-size=M
。4GB的限制将表明这只是FAT32文件大小的限制,而不是驱动器的容量。您将永远无法获得所陈述的全部容量,这只是对它进行分类的平均值。