Ich habe kürzlich viel über gefälschte MicroSD-Karten und USB-Sticks gelesen, die viel Speicherplatz beanspruchen (auch wenn Sie Ihren Computer fragen) und physisch viel weniger bieten. Ich habe kürzlich ein SanDisk-USB-Laufwerk gekauft (128 GB beansprucht) und möchte dessen Größe testen. Es wird nicht über eBay oder so gekauft, aber ich möchte unbedingt die tatsächliche Größe testen, bevor ich es produktiv nutze.
Ich könnte einfach Sachen darauf kopieren, es zurückkopieren und nachsehen, ob die Dateien in Ordnung sind. Ich könnte es auch mit Hashes und so automatisieren. Aber ich habe gehofft, dass es eine genauere Lösung gibt. Ich habe gelesen, dass H2testw für Windows den Trick macht. Gibt es eine einfache Möglichkeit, dies unter Ubuntu / Linux zu testen? Vielleicht ein spezialisiertes, gut funktionierendes Werkzeug?
Update: Um es klar zu machen, soll überprüft werden, ob die Größe, die der Controller dem Linux-System mitteilt, korrekt ist ( damit keine Daten verloren gehen ). Es ist nicht so, dass ich sehen möchte, ob ich 128 GB statt 127,3 GB bekomme. Ich möchte testen, ob alle Daten, die ich schreibe, wieder lesbar sind. Leider kann ich auf englischen Tech-Sites nur wenige Informationen dazu finden. Es gibt jedoch gute deutsche Quellen. Ich suche tatsächlich nach einer solchen Anwendung, aber für Ubuntu / Linux: https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from -ebay-with-h2testw /
Update2: Ich habe versucht, einige Quellen auf Englisch zusammenzubringen. Ich habe aus Zeitgründen nicht alle ausführlich gelesen.
- https://www.ebay.com/gds/All-About-Fake-Flash-Drives-2013-/10000000177553258/g.html
- https://en.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: Erläuterungen
Aufgrund der unten stehenden seltsamen Kritik einige Erklärungen.
Was ist das Problem und warum löst dd alleine es nicht?
Dies ist eine Reaktion auf
"Finde klar heraus, welches Problem du lösen willst und was die Definition von" Fake Drive "ist."
Es scheint, dass einige Leute das Problem nicht verstehen. Deshalb versuche ich es so kurz wie möglich zu erklären, obwohl ich denke, dass dies sehr weit von meiner Frage entfernt ist.
Die Kapazität der USB-Geräte, die Sie von Ihrem Betriebssystem oder von Unix-Tools erhalten, kann falsch sein. Dies ist fatal, da Ihr Betriebssystem regelt, an wie viele Daten Sie diese senden können. Wenn Sie mehr Daten senden, als es wirklich aufnehmen kann, gehen Daten verloren. Das ist ein Problem. Warum kann das passieren?
Sie müssen das USB-Protokoll nicht genau kennen, um das Problem zu verstehen. Serielle Schnittstellen haben die gemeinsame Eigenschaft, dass das Client-Gerät (das USB-Laufwerk) über diese serielle Schnittstelle seine eigene Kapazität mitteilen muss. Dies bedeutet, dass das Client-Gerät einen eigenen Controller benötigt, der sich mit dem Zweck des Geräts und seiner Kapazität auskennt. Es entscheidet auch, was getan wird, wenn es den Befehl zum Speichern erhält. Wenn die Steuerung auf diese Weise programmiert ist, kann sie den Befehl einfach ignorieren oder etwas mit den Daten überschreiben.
Was bedeutet das? Was auch immer Ihre Unix-Tools über die Kapazität des Laufwerks aussagen: Es ist das, was die Tools vom Laufwerk verlangt haben, nichts weiter. Dafür wurde h2testw erfunden: Es testet die tatsächliche Größe mit einer später erläuterten Methode und vergleicht sie mit den Angaben des Laufwerks. Wenn dies nicht der Fall ist, kann es zu Datenverlusten kommen, da alle gängigen Vorgänge zum Speichern von Daten von den Informationen Ihres Betriebssystems abhängen, die nur den Controller fragen. Warum fragst du nur? Das Testen benötigt Zeit und überschreibt alle Daten auf dem Laufwerk. Daher ist es selbstverständlich, dass sich ein Betriebssystem auf diese Informationen verlassen muss.
Um die tatsächliche Kapazität wie h2testw zu überprüfen, können Sie tatsächlich dd
Daten auf das Laufwerk schreiben, es erneut lesen und prüfen, ob es dasselbe ist, das Sie geschrieben haben. Ganz echt. Die Art der Hardware und das Laufwerk machen es komplizierter. Betrachten Sie beispielsweise Schreibcaches. Sie müssen sicherstellen, dass Sie nicht aus dem Cache lesen. Dies ist nur ein Beispiel dafür, warum es nicht so einfach ist, wie es aussieht. Denken Sie auch, dass nur das Schreiben von Nullen eine geringe Informationsentropie bedeutet, die beim Lesen rekonstruiert werden kann. Im Detail ist es einfach nicht so einfach. Sie können es natürlich immer noch manuell machen.
Aber warum, wenn man es automatisieren kann? Warum zur Arbeit? f3 implementiert, wie in meiner Antwort unten vorgeschlagen, Unmengen von Gedanken vieler Mitwirkender (bedenken Sie, dass es eine Art erweiterter h2testw ist) und implementiert auch mehrere Methoden mit unterschiedlichen Kompromissen. Der Entwickler fand die Tricks der verschiedenen gefälschten Laufwerke heraus, die er zur Hand hatte . Während ich also die Theorie und das Problem verstehe (anscheinend sind die Probleme in deutschen technischen Medien gut erklärt, aber nicht in englischsprachigen Medien), gebe ich nicht vor, alles zu verstehen, weshalb ich es oben erwähnt habe. Es ist nur die Theorie, die ich verstehe, und ich bin eher ein Software-Typ. Aber als Informatikstudent verstehe ich es gut genug, um das Problem zu erkennen.
"Versuchen Sie, grundlegende Unix-Dienstprogramme zu verstehen"
Eigentlich habe ich diesen bereits beantwortet, aber um es klar zu machen: Unix-Tools verwenden nur das USB-Protokoll (natürlich nur für USB-Geräte), um Informationen zu sammeln. Es macht keinen Sinn, mehr als das zu tun.
Hilft es, nur von vertrauenswürdigen Lieferanten einzukaufen?
tl; dr: Das tut es nicht.
"Wenn es um den Kauf von Waren geht, sollten Sie, genau wie bei jeder Art von Sicherheit, einen vertrauenswürdigen Verkäufer finden und Laufwerke nur von diesen kaufen."
Bei Sicherheit geht es NICHT um Vertrauen! Es geht um Verifikation und Validierung! Sorry, aber das ist in vielerlei Hinsicht so falsch.
Angenommen, Sie kaufen über einen vertrauenswürdigen Verkäufer. Ein paar Fragen:
Hat der Lieferant die Hardware getestet, um sicherzustellen, dass keine Daten verloren gehen? Erkennt er, wenn er gefälschte Laufwerke kauft und verkauft? Nicht unbedingt.
Ist es möglich, dass er Sachen kauft, von denen er nicht weiß, dass sie gefälscht sind? Schauen Sie sich die neuesten Ryzen-Fälschungen an: https://www.pcgamer.com/beware-of-fake-ryzen-processors-selling-on-amazon/ , https://www.heise.de/newsticker/meldung/ Direkt-von-Amazon-Fälschungen-von-AMDs-Ryzen-Prozessoren-im-Umlauf-3772757.html
Wenn ich meine Präsentation im Laufwerk verliere und die Präsentation vermassle, wird mein vertrauenswürdiger Lieferant in die Vergangenheit zurückkehren und mich retten? Es wird wahrscheinlich die Festplatte ersetzen, da die letzte Zeitreise DeLorean im Jahre 1885 zerstört wurde.
Andere Sachen
"Diese Frage scheint eher" Promo "für das zu sein, was OP mag, und es scheint, dass OP viel weniger daran interessiert ist, die Laufwerke tatsächlich zu testen."
Das ist lächerlich. Ich habe speziell nach einem ähnlichen Tool wie h2testw gesucht, das auch unter Linux läuft. Und ja, das ist, was ich "möchte", hilfreiche Antwort, so leid. Ich hatte keine Ahnung, dass die englischsprachige Presse sich solcher Probleme nicht so bewusst ist und hatte das Glück, später so etwas zu finden. Dies ist keine Promo, aber es scheint, als könntest du eine verwenden.
df --block-size=M
. Die Beschränkung auf 4 GB würde darauf hindeuten, dass dies nur eine Beschränkung der Dateigröße für FAT32 ist, nicht die Festplattenkapazität. Es wird nie die volle Kapazität angegeben, es ist nur ein Durchschnitt, um es zu klassifizieren.Antworten:
f3 - Blitzbetrug bekämpfen
Es gibt nur eine Alternative, die ich gefunden habe, aber ich denke, dies ist sogar eine bessere als das ursprüngliche
h2testw
Tool für MS Windows. Glücklicherweise ist es sehr einfach zu bedienen, auch über die Befehlszeile. Es gibt jedoch GUIs. Auf der Tools-Website finden Sie außerdem zahlreiche Informationen zur Implementierung und zum Problem mit gefälschten Laufwerken.f3 bietet zwei Methoden an:
Die f3probe Methode (empfohlen)
f3probe
Dies ist eine Möglichkeit, die Laufwerke zu testen, die zwar nicht so genau, aber schneller sind, da nicht auf das gesamte Laufwerk geschrieben wird. Weitere Informationen finden Sie auf der Tools-Website. Wenn Sie 100% sicher sein möchten, verwenden Sie besser die Methode h2testw. Wie der Entwickler auf der Website beschreibt:Und:
Es gibt auch ein Verwendungsbeispiel auf der Website:
Beachten Sie, dass es auch einen Befehl zurückgibt, mit dem Sie das Laufwerk mit seiner tatsächlichen Größe verwenden können
f3fix
.Das f3fix-Tool
Die Methode h2testw / Testen der Leistung mit f3read / f3write
F3 ist eine Sammlung von Tools, die sich mit gefälschten Flash-Laufwerken befassen. Zwei von ihnen implementieren zusammen die
h2testw
-Methode:f3write
fragt nach der Größe der Geräte und füllt sie mit generierten Dateien mit einer Größe von jeweils 1 GB.f3read
Ich werde alle diese Dateien lesen und sehen, ob sie vollständig und nicht kaputt sind. Als Beispiel die Befehle, die ich zum Testen meines ~ 128-GB-USB-Sticks verwendet habe:Testen Sie nun, ob die Dateien korrekt gespeichert sind:
Der Test für ein Laufwerk dieser Größe dauerte mit dieser Methode ungefähr drei Stunden und verursachte manchmal eine hohe Festplattenlast auf meinem Computer, aber es wird mir gesagt, dass dies am genauesten ist.
In Ubuntu installieren
Am Terminal:
Dies bringt Sie:
f3brew
,f3fix
,f3probe
,f3read
,f3write
mit ihrem Mann Seiten.Diese Tools sind Teil des
f3
Pakets, das mindestens unter Ubuntu 15.10 verfügbar ist. Laut der Website gibt es einige weitere Tools, die zur Verfügung stehen. Um sie zu bekommen, werfen Sie einen Blick auf die Website.Das Paket enthält kurze, aber nützliche Hilfeseiten, obwohl sie meiner Meinung nach einige Informationen von der Website über den Unterschied zwischen f3read / write und f3probe vermissen, weshalb diese Antwort etwas länger wurde.
quelle
apt-get
installiert wirdf3read
undfwrite
nur alsf3probe
undf3fix
als experimentell gilt. Wenn Sie sie verwenden möchten, müssen Sie siemake experimental
nach der Installation der Abhängigkeiten aus dem Quellcode erstellensudo apt-get install libudev1 libudev-dev libparted0-dev
. Siehe github.com/AltraMayor/f3#the-extra-applications-for-linuxIch habe ein einfaches Tool dafür geschrieben, es heißt CapacityTester (Screenshot) und es hat eine GUI sowie eine CLI.
Es gibt eine vorkompilierte Binärdatei für Debian 7 , die auf einem modernen Ubuntu-System sehr wahrscheinlich sofort funktioniert.
Ich habe es für meinen persönlichen Gebrauch geschrieben, weil ich für diesen Zweck kein grafisches Werkzeug gefunden habe. Sie müssen lediglich zuerst Ihr leeres USB-Flash-Laufwerk einbinden, es auswählen und den Test starten. Es ist ein sehr dummes Tool, da es nur das Laufwerk mit Dateien füllt und dann überprüft, ob die Daten auf dem Laufwerk korrekt sind. Der Test wird beim ersten Fehler (Schreiben oder Lesen / Überprüfen) abgebrochen. Es wird der Offset des Blocks gemeldet, der nicht erfolgreich geschrieben oder überprüft werden konnte. Dies ist jedoch ein logischer Offset, sodass diese Informationen möglicherweise unbrauchbar sind, da sie vom Dateisystem abhängen, in dem sich die Dateien auf dem Laufwerk befinden. Wenn das Laufwerk jedoch mit Daten gefüllt wurde und alles gelesen und überprüft werden konnte, sollte davon ausgegangen werden können, dass die gemeldete Kapazität des Laufwerks korrekt ist. Als Randnotiz,
Auch hier ist es sehr einfach, da es nur mit Dateien über einem vorhandenen Dateisystem funktioniert. Es gibt also einige KB (+ 1M Puffer), die nicht getestet werden können. Und es ist sehr langsam, weil es wirklich das gesamte Dateisystem ausfüllt. F3 ist sicherlich viel ausgefeilter und auch schneller, hat aber keine GUI. Der einzige Grund, warum CapacityTester vorhanden ist, besteht darin, dass es über eine grafische Benutzeroberfläche verfügt, die von Benutzern verwendet werden kann, die mit der Befehlszeile nicht vertraut sind oder einfach eine grafische Benutzeroberfläche bevorzugen.
Feedback ist erwünscht.
quelle
Das Verhalten von OP und das "falsche Laufwerk" ansprechen
Ich bearbeite die Antwort, um ein paar Punkte richtig anzusprechen, da OP sehr vehement war (und meiner Meinung nach die meisten Kommentare und Antworten ablehnt, außer ihren eigenen, die ich verdächtig finde). Insbesondere gibt es viele Behauptungen, dass es einen "Fake Drive" gibt, aber es gibt keine klare Definition, was auf der Erde das eigentlich bedeutet. OP erklärte:
OP selbst gab zu, dass sie "nur Sachen kopieren" und die Datenintegrität überprüfen konnten, war aber sehr gegen alle anderen Kommentare und Antworten, die etwas anderes vorschlagen, und OP drückte nur F3 als "echten Deal". Die Frage selbst begann zuerst über die Größe des Laufwerks, aber dann prüft OP aus irgendeinem Grund, ob die Dateien in Ordnung sind, als ob es mysteriöse Laufwerke gibt, die eine Größe beanspruchen und Sie diese Größe schreiben lassen, aber dann sind die Daten fehlerhaft. Daher finde ich es sehr verdächtig und würde OP-Werbung für F3 als Spam-Frage und Antwort betrachten.
Wenn ein Laufwerk tatsächlich ein gefälschtes Laufwerk ist
In der Frage ist die offensichtliche Definition von OP
Mit anderen Worten, laut OP gibt der Controller X Datenmengen an, aber USB kann nur etwa 80-90% weniger von dem enthalten , was behauptet wird.
Der Benutzer sudodus schlug in den Kommentaren vor (Hervorhebung hinzugefügt): "Ich habe festgestellt, dass einige USB-Sticks geringfügig kleiner als die Nenngröße sind. Ich nenne sie" zu klein " . Ich denke, die gefälschten Laufwerke sind " wesentlich zu klein " (normalerweise die Hälfte der Nenngröße) oder weniger ) ". Diese Definition ist großartig, aber wenn wir das annehmen, ist Fake Drive auf 50% festgelegt. Ein Laufwerk, das 64 GB beansprucht, aber nur 32 GB speichern kann, verliert technisch die Hälfte seines Werts für den Eigentümer und der Eigentümer kann nur die Hälfte dessen, was er beabsichtigt hat, auf das Laufwerk setzen.
Ich schlage eine einfachere Definition vor: Gefälschtes Speichermedium ist dasjenige, von dem behauptet wird, dass
Claimed Size
es eine Toleranz von weniger als 15% hat (und die Toleranz istClaimed Size ± 15 %
).Das
± 15 %
ist sehr vernünftig. Bedenken Sie auch, dass Benutzer normalerweise zwischen Unix-, IEEE- und IEC-Organisationen verwechselt werden, die ein binäres Präfix anstelle eines Präfixes mit der Potenz 10 für die Datenspeichergröße verwenden. Der Unterschied beträgt 20% auf der Ebene der Yotta-Präfixe, USB-Laufwerke sind jedoch noch nicht vorhanden. Für die nächsten 20 Jahre sind also 15% angemessen. (Siehe askubuntu Frage "Bedeutung von 'i' in 'MiB'" und Binärpräfix )Laufwerk testen
Tatsächlich benötigt der Benutzer keine speziellen Tools, abgesehen von dem, was bereits mit Ubuntu und den meisten POSIX-kompatiblen Unix-Systemen geliefert wird. Lassen Sie uns die Definition noch einmal betonen und umformulieren:
Die einfache Möglichkeit besteht darin
dd
, das Gerät mit Nullen zu überschreiben (und denken Sie natürlich daran, Ihre Dateien zu speichern, bevor Sie dies tun).Beachten Sie die
bs=1
Blockgröße von 1 Byte. Derdd
Befehl gibt normalerweise einen Bericht darüber, wie viel geschrieben wurde.Wir haben es gebeten, 1024 Bytes zu schreiben, es hat 1024 Bytes geschrieben.
Eine genauere Liste der Schritte, die sich an die Definition halten, wäre:
Finden Sie heraus, wie viele Daten das Laufwerk behauptet (vorausgesetzt, Sie vermuten
df
, dass Sie sich "irren"). Angenommen, in diesem Beispiel/dev/sdb1
ist meine Gerätedatei für das USB-Laufwerk:Beachten Sie, dass das
-P
Flag für die POSIX-Portabilität vorgesehen ist. Dies bedeutet, dass die Blockgröße der Daten 1024 Byte beträgt und dass sich auf diesem Laufwerk 115247656 * 1024 Byte befinden.Herauszufinden , was 15% Toleranz unter dem, was Ansprüchen Antrieb (115.247.656), vielleicht Verwendung Dienstprogramm , das Abstützungen Punktberechnungs floating wie
awk
:Erstellen Sie zufällige Daten auf einer Festplatte mit der gleichen Größe wie im vorherigen Schritt, um sie als Benchmark zu verwenden:
dd if=/dev/urandom of=./mytestfile.random bs=1024 count=97960507
Jetzt schreibe Daten
dd if=./mytestfile.random of=/dev/sda1
. Wenn das Laufwerk so viel halten kann, ist es "echt". Sie können auchmd5sum
odersha1sum
von nehmen./mytestfile.random
und mit/dev/sda1
jetzt vergleichen . Eine noch bessere Verbesserung wäre das Schreibenmytestfile.random
des Dateianhängepunkts, wodurch das Dateisystem auf dem Laufwerk bleibt und die Partitionierung des Laufwerks unverändert bleibtFür Integrität kann dann tun Sie einfach jede Hashsummen zu überprüfen, wie
md5sum
,sha1sum
,sha256sum
oder andere. BeispielsweiseEntscheidend dabei ist, dass das Laufwerk wahrscheinlich in Ordnung ist, wenn die Menge der geschriebenen Daten innerhalb der Toleranz liegt und vor und nach dem Schreiben eine korrekte Prüfsumme erzeugt.
All dies kann zur Vereinfachung in ein nettes Skript geschrieben werden, wenn man dies wünscht.
Fazit
Diese Frage scheint eher "Promo" für das zu sein, was OP mag, und es scheint, dass OP viel weniger daran interessiert ist, die Laufwerke tatsächlich zu testen. Darüber hinaus ist das Problem selbst menschlicher als "Laufwerk" -Problem. In den Kommentaren erklärte OP selbst, dass sie das USB-Verhalten nicht wirklich verstehen, aber vehement "den Controller" beschuldigen. Ich werde diese Frage mit 3 Punkten verlassen:
quelle
dd
meldet die Menge der Daten, die es auf das Gerät geschrieben / gegeben hat, ich sehe nicht, wie das gefälscht werden kann.dd
und anschließend die md5sum zu überprüfen, sollte überprüfen, wie viel geschrieben und richtig gelesen werden konnte. (Ich denke, die Spezialwerkzeuge in der Antwort von @ verpfeilt sehen attraktiver aus, aber ich habe sie nicht getestet. Ich habe viele USB-Sticks und Speicherkarten, ich glaube, ich habe noch keine gefälschte gekauft.)