cool tool

This commit is contained in:
rusefi 2020-05-31 23:18:55 -04:00
parent eb199c69ff
commit 44e63dcf58
3 changed files with 340 additions and 0 deletions

BIN
h2testw_1.4/h2testw.exe Normal file

Binary file not shown.

180
h2testw_1.4/liesmich.txt Normal file
View File

@ -0,0 +1,180 @@
H2testw -- by Harald Bögeholz / c't Magazin für Computertechnik
Integritätstest für USB-Sticks und andere Datenträger
Version 1.4, Copyright (C) 2008 Heise Zeitschriften Verlag GmbH & Co. KG
========================================================================
H2testw wurde entwickelt, um USB-Sticks auf einwandfreie Funktion zu
testen. Es eignet sich aber auch für beliebige andere Datenträger wie
Speicherkarten, interne und externe Festplatten und sogar
Netzwerklaufwerke.
Die Exe-Datei H2testw.exe ist ohne Installation direkt lauffähig. Das
Programm wurde entwickelt für Windows XP und Vista; unter Windows 2000
sollte es auch funktionieren, wurde jedoch nicht getestet. Windows
9x/ME wird nicht unterstützt; als Alternative bietet sich das ältere
Kommandozeilenprogramm H2test an.
Das Funktionsprinzip von H2testw ist einfach: Es füllt den gewählten
Speicherort mit Testdateien, liest diese anschließend wieder ein und
überprüft, ob die gelesenen Daten mit den ursprünglich geschriebenen
übereinstimmen.
H2testw überschreibt oder löscht grundsätzlich keine bestehenden
Dateien. Es greift nicht tief ins System ein, sondern legt als
gewöhnliches Anwendungsprogramm Dateien an; Administratorrechte sind
daher nicht erforderlich. Wenn die Hardware korrekt arbeitet, wird
H2testw also keine bestehenden Daten gefährden.
ABER: _Wenn_ ein Hardwarefehler vorliegt, dann kann H2testw diesen zum
Vorschein bringen und dadurch eventuell auch bestehende Daten
beschädigen. Daher der Rat: WENN SIE EINEN USB-STICK ODER SONSTIGEN
DATENTRÄGER IM VERDACHT HABEN, NICHT RICHTIG ZU ARBEITEN, LEEREN SIE
IHN ZUNÄCHST UND TESTEN IHN DANN VOLLSTÄNDIG MIT H2TESTW. Nur wenn ein
Datenträger leer ist, kann H2testw ihn vollständig testen. Für
reproduzierbare Ergebnisse empfehlen wir, den Datenträger frisch zu
formatieren (Schnellformatierung genügt) und dann zu testen.
H2testw schreibt an den gewählten Speicherort jeweils bis zu 1 GByte
große Dateien mit den fortlaufenden Namen 1.h2w, 2.h2w, 3.h2w usw.
Wenn am Zielort bereits ein gültig aussehender Satz solcher Dateien
vorliegt, bietet H2testw an, diese zu prüfen; existieren irgendwelche
anderen Dateien mit Namen *.h2w, verweigert es die Arbeit. Löschen Sie
in diesem Falle alle Dateien *.h2w und drücken Sie den Knopf
"Aktualisieren".
Nach getaner Arbeit bleiben die Testdateien auf dem Datenträger
liegen. Sie können sie nach Belieben löschen oder -- im Falle eines
USB-Sticks zum Beispiel an einem anderen Rechner -- nochmals
überprüfen.
Die Checkbox "Prüfen als Dauertest" versetzt H2testw in eine
Endlosschleife, in der es die Testdateien immer wieder einliest und
überprüft, bis ein Fehler auftritt. Diese Option ist dafür gedacht,
sporadisch auftretende Übertragungsfehler zu entdecken.
Eine Anmerkung zur Restzeitschätzung: Bei intakten
Flash-Speichermedien sollte die Schätzung sehr genau stimmen, weil die
Datenrate konstant ist. Bei defekten Flash-Medien haben wir starke
Einbrüche in der Übertragungsrate beobachtet, die dazu führen, dass
die Schätzung ständig nach oben korrigiert wird. Festplatten erzielen
grundsätzlich im Innenbereich eine niedrigere Datenrate als außen,
daher ist die Schätzung prinzipbedingt ungenau.
Bei Fragen oder Anregungen zu H2testw wenden Sie sich bitte per E-Mail
an Harald Bögeholz <hwb@heise.de> (in Deutsch oder Englisch).
Was tun im Fehlerfall?
----------------------
Wenn H2testw beim Überprüfen Datenfehler meldet, dann heißt das, dass
das Speichermedium nicht alle Daten so zurückgeliefert hat, wie sie
geschrieben wurden. Wahrscheinlich handelt es sich um ein defektes
Speichermedium, es kommen aber auch andere Fehlerquellen in Betracht.
Sie sollten daher im Fehlerfalle den Test wiederholen und dabei
Folgendes beachten:
* Medium nach Möglichkeit frisch formatieren
* Keine USB-Verlängerungskabel oder USB-Hubs verwenden
* USB- oder FireWire-Geräte versuchsweise an einem anderen Anschluss
testen (manchmal sind die USB-Ports an der ATX-Blende besser als die
Front-Anschlüsse).
* Bei externen Platten auch mal ein anderes Kabel probieren, falls
möglich.
Ausgabe im Fehlerfall
---------------------
Wenn beim Überprüfen Fehler auftreten, schlüsselt H2testw die Anzahl
der fehlerhaften Sektoren auf in
* solche, die durch andere überschrieben wurden (siehe oben unter
Adressierungsfehler),
* solche, die nur leicht verfälscht wurden (weniger als 8 abweichende
Bits pro Sektor)
* komplett fehlerhafte bzw. stärker verfälschte ("Datenmüll").
Im Falle überschriebener Sektoren versucht H2testw herauszufinden, wie
viel Speicher in dem betroffenen Bereich real vorhanden ist und weist
diese Datenmenge als "mehrfach genutzt" aus (ohne Gewähr!).
Für den ersten gefundenen Fehler gibt das Programm schließlich den
Offset innerhalb des Datenbestands, den dort erwarteten (Soll) und den
tatsächlich vorgefundenen Wert (Ist) aus.
Tipp: Der Text der Fehlermeldung lässt sich markieren und mit
Kopieren und Einfügen zum Beispiel in eine E-Mail übernehmen.
Typische Fehlerbilder
---------------------
Die Testdaten von H2testw sind so konstruiert, dass man typische
Fehler voneinander unterscheiden kann. Sie fallen in drei Kategorien:
* Adressierungsfehler: Beim Schreiben eines Sektors landet der Inhalt
nicht an der gewünschten Adresse, sondern an einer anderen,
überschreibt also einen anderen Sektor. Dieser Fehler tritt bei
einigen manipulierten USB-Sticks auf. Weiteres prominentes Beispiel:
Eine Festplatte über 128 GByte an einem Rechner, dessen BIOS
und/oder Betriebssystem noch nicht die dafür nötige Adressierungsart
beherrscht. Dann erfolgen alle Zugriffe modulo 128 GByte: Daten, die
man an der 128-GByte-Grenze schreibt, überschreiben also wieder den
Anfang der Festplatte.
* Daten werden gar nicht gespeichert: Diesen Fehler haben wir im
Zusammenhang mit fehlerhaften USB-Sticks beobachtet. Statt der
geschriebenen Daten liefert ein Sektor beim Lesen nur Nullen oder
Einsen zurück -- ein typisches Anzeichen dafür, dass auf nicht
bestückten Speicher zugegriffen wurde.
* Einzelne Bits werden verfälscht: Das deutet auf
Übertragungsstörungen auf dem Signalweg vom Prozessor zum
Speichermedium hin. Ebenfalls denkbar, aber noch nicht beobachtet:
Theoretisch könnte in einem Flash-Speicher auch mal ein Bit
"umkippen".
Aufbau der Testdaten
--------------------
H2testw schreibt und liest die Testdaten megabyteweise. Auch wenn man
die Option wählt, den Datenträger ganz zu füllen, bleibt daher am Ende
bis zu 1 MByte Verschnitt übrig, wobei mit 1 MByte 1048576 Byte
gemeint sind (1024 KByte). Um auch mit FAT-Dateisystemen zu
funktionieren, hält H2testw einen respektvollen Abstand von der
4-GByte-Grenze und fängt nach jeweils einem Gigabyte (1024 MByte) eine
neue Datei an.
Innerhalb einer Datei beginnt jeder 512-Byte-Sektor mit einem
64-Bit-Wort (8 Byte), in dem der Offset innerhalb der gesamten
Testdaten (nicht nur innerhalb der Datei) abgelegt ist, und zwar
Intel-typisch im Format Little-Endian, also niederwertiges Byte
zuerst.
Die Datei 1.h2w beginnt also mit der Bytefolge
00 00 00 00 00 00 00 00,
der nächste Sektor mit
00 02 00 00 00 00 00 00,
der nächste mit
00 04 00 00 00 00 00 00
und so weiter. Die Datei 2.h2w beginnt mit der Bytefolge
00 00 00 40 00 00 00 00
(Offset 1 GByte = 0x40000000).
Der Rest eines jeden Sektors ist mit einer Pseudo-Zufallszahlenfolge
aufgefüllt.

160
h2testw_1.4/readme.txt Normal file
View File

@ -0,0 +1,160 @@
H2testw -- by Harald Bögeholz / c't Magazin für Computertechnik
Data integrity test for USB sticks and other media
Version 1.4, Copyright (C) 2008 Heise Zeitschriften Verlag GmbH & Co. KG
========================================================================
H2testw was developed to test USB sticks for various kinds of errors.
It can also be used for any other storage media like memory cards,
internal and external hard drives and even network volumes.
The executable file H2testw.exe needs no installation and can be
directly run. It was developed for Windows XP and Vista. It should
also work under Windows 2000 but was only tested on XP and Vista.
Windows 9x/ME is not supported. You can use the older command line
program H2test under these operating systems.
The function of H2testw is quite simple: It fills the chosen target
directory with test data and then reads it back and verifies it.
H2testw does not overwrite or erase any existing data. It doesn't
do any low-level tricks so administrator privileges are not required.
If your hardware is working properly H2testw will not harm any
existing data.
BUT: _If_ the hardware is defective then H2testw is designed to find
that defect and might as a side effect damage existing files.
Therefore: IF YOU SUSPECT A USB STICK OR OTHER STORAGE MEDIA TO BE
DEFECTIVE, EMPTY IT AND TEST IT COMPLETELY WITH H2TESTW. Only empty
media can be fully tested with H2testw. In order to be able to
reproduce the results we recommend to format the media (quick format
will do) and then test it.
H2testw writes files of up to 1 GByte to the chosen destination and
names them 1.h2w, 2.h2w, 3.h2w and so on. If the target directory
alread contains such a set of files H2testw will offer to verify them.
If there are any other files named *.h2w it will refuse to work. In
that case please erase all files *.h2w and hit the Refresh button.
After it is done the software leaves its test files on the medium.
You can erase them if you like or verify them again -- if it's a USB
stick for instance with another PC.
The check box "endless verify" does just that: It puts the verify
routine in an endless loop that stops only if an error is found. This
is meant to be used as a long-time test to find sporadic data transfer
errors.
A remark on the estimated time remaining: For intact flash memory the
estimate should be pretty exact since it has a constant data rate.
With defective media we have seen massive drops in the transfer rate
resulting in the estimate increasing instead of decreasing. Hard
drives are slower on the inner tracks than on the outer tracks so when
testing a hard drive the estimate is never precise.
If you have any questions or suggestions for H2testw please send an
email to Harald Bögeholz <hwb@heise.de> (in German or English).
What to do in case of errors
----------------------------
If H2benchw finds errors while verifying the data it means that the
media has not returned all data exactly as it was written. It is
likely that the media is defective, but there are other possible
causes for data corruption. In case of error you should therefore
repeat the test and
* Format the media immediately before testing
* Don't use USB extension cords
* If testing USB or FireWire devices, try a different port (sometimes
USB ports at the back of the PC are better than those at the front)
* For exteral drives try another cable if possible
Error messages
--------------
When the verifying process detects any errors it outputs some
statistics differentiating the various error types:
* sectors that have been overwritten by others due to addressing
errors (see above)
* sectors that have been altered only slightly (less than 8 differing
bits per sector)
* completely corrupted sectors.
In the case of overwritten sectors H2testw tries to find out how much
real memory exists in the overwritten area and outputs that amount as
"aliased memory" (no guarantee here).
Finally it outputs the offset of the first error with regard to the
total amount of test data along with the expected and found value at
that offset.
Hint: You can copy&paste the error message, for instance to send it in
an email.
Typical errors
--------------
The test data of H2testw is made up so as to be able to discern
certain typical errors. There are three types:
* Addressing errors: When writing a sector its contents are not
written to the correct address but overwrite another sector. We have
seen this error on certain manipulated USB sticks. It also happens
if you use a hard drive larger than 128 GByte on a machine whose
BIOS or OS doesn't know about 48-bit addressing. In this case all
addresses are taken modulo 128 GByte. When crossing the 128 GByte
boundary you overwrite data at the beginning of the drive.
* Data is not saved at all. We have encountered this with defective
USB sticks. Instead of the data written to it a sector returns only
ones or zeroes when reading it. This is typical when accessing
nonexisting memory.
* Only few bits of data are changed. That might happen if the
connection between the PC and the storage media is faulty.
Technical details about the test data
-------------------------------------
H2testw writes data in chunks of 1 megabyte. So even if you choose to
completely fill the media you will end up with up to 1 megabyte of
free space. Although technically not correct H2testw uses the
Windows convention that 1 MByte equals 1024 KByte or 1,048,576 Byte.
In order to avoid problems with the 4 GByte limitation of the FAT file
system, H2testw begins a new data file after each gigabyte (1024
MByte).
Inside a data file each 512-byte sector begins with a 64-bit word (8
byte) containing the offset with regard to the whole data set. It is
stored in little-endian format, least significant byte first.
So the file 1.h2w begins with
00 00 00 00 00 00 00 00,
the next sector with
00 02 00 00 00 00 00 00,
the next with
00 04 00 00 00 00 00 00
and so on. The file 2.h2w begins with
00 00 00 40 00 00 00 00
(offset 1 GByte = 0x40000000).
The rest of each sector is filled with a pseudo random number
sequence using the offset word as a seed.