Automatisieren Sie den Vergleich beschädigter Dateien

338
GabrielB

Nach einer unglücklichen CHKDSK-Analyse, die viele Dateien auf einer 3-TB-HDD beschädigt hat (irrtümlich als 746 GB erkannt, wahrscheinlich weil ein USB2-Controller mit Kapazitäten über 2 TB nicht kompatibel ist), möchte ich einen genauen Vergleich dieser Dateien (mit ihren korrekten Gegenstücken) vornehmen auf einer Backup-Festplatte), und extrahieren Sie die beschädigten Bereiche für weitere Untersuchungen, bevor Sie sie löschen.
Bisher bin ich so vorgegangen:

  • Öffnen Sie beide Versionen der Datei in WinHex. Aktivieren Sie die Anzeige „Synchronize & Compare“.
  • Führen Sie einen Vergleich bei Offset 0 durch, speichern Sie einen Bericht (zwingend erforderlich mit dieser Software, keine Möglichkeit, den nächsten Unterschied direkt zu finden) mit dem Namen der Datei. Geben Sie ein Limit von 10000 Fehlern an (um zu große Berichte zu vermeiden).
  • Öffnen Sie den TXT-Bericht, nachdem er angehalten wurde (das Ende der Datei oder das Limit von 10000 verschiedenen Bytes erreicht), und kopieren Sie den Offset der ersten Differenz in das Menü "Gehe zu Offset" von WinHex. Markieren Sie den ersten Fehler (der sich immer an einer Sektorengrenze befindet) als Beginn eines Blocks.
  • Suchen Sie nach dem Ende des beschädigten Bereichs, indem Sie nach unten scrollen oder wenn es zu lange dauert, indem Sie 1 MB oder 100 KB hinzufügen, bis ich aus bin und dann nach oben scrolle (ich habe keine Möglichkeit gefunden, dies in WinHex einfacher zu machen). Markieren Sie das Ende des letzten Sektors des beschädigten Bereichs als Ende des Blocks.
  • Extrahieren Sie den Block als neue Datei mit dem Muster "Name_of_the_file [1111-2222]", wobei "1111-2222" die Anfangsende-Offsets sind.
  • Setzen Sie den Vergleich am Ende des zuvor identifizierten beschädigten Bereichs fort, um nach anderen zu suchen, bis das Ende der Datei erreicht ist ...

Gibt es nun eine Möglichkeit, diesen mühsamen und zeitaufwändigen Prozess zu automatisieren? Gibt es andere Hexadezimal-Editoren, die für Dateivergleiche besser geeignet sind? Oder könnte ich ein Skript verwenden, um dies auf einmal zu erledigen? Ich habe ein brillantes kleines Befehlszeilentool namens dsfok (DS File Ops Kit) gefunden, das einen Datenblock zwischen zwei Versatzwerten extrahieren kann (unter anderen Funktionen, die ich noch nicht getestet habe). Ich würde also ein anderes Befehlszeilentool benötigen, um den Vergleich durchzuführen und diese Versatzwerte zu erhalten, und Tipps, um ein Skript zu schreiben, damit diese Tools zusammenarbeiten. Vielen Dank.

0
Warum ist es Ihnen wichtig, wenn Sie Backups haben? harrymc vor 6 Jahren 1
Abgesehen von der Frage, warum Sie sich für ein Backup interessieren würden. Entweder Sie finden ein Tool, das diesen manuellen Prozess nicht erfordert, oder Sie können so etwas wie ein AutoIt / AHK-Skript einrichten, um es für Sie auszuführen. Seth vor 6 Jahren 0
Nun, gute Frage ... Aus Neugierde, denke ich. Ich versuche zu verstehen, wie ein "Heftklammer" -Tool wie CHKDSK Daten vermasseln kann, was völlig in Ordnung war, und wie es auf Dateisystemebene funktioniert. Ich mache Datenwiederherstellung als gelegentliche, halb professionelle Tätigkeit und versuche, neue Fähigkeiten zu erwerben, wenn ich mit unvorhergesehenen Problemen konfrontiert werde. Ich frage mich: Was hätte getan werden können, wenn ich keine Sicherung gehabt hätte oder wenn mir jemand in diesem Zustand eine Festplatte mitgebracht hätte, die mich aufforderte, so viele der beschädigten Dateien wie möglich zu reparieren? Vielleicht ist es ein wertloses Unterfangen, aber ich würde es gerne versuchen ... GabrielB vor 6 Jahren 0
Ich habe angefangen, mich mit AutoIt zu beschäftigen, aber bis jetzt weiß ich nicht, wie und ob ich das tun könnte, was ich so will. Wie kann ich beispielsweise jede Datei in einer Schleife von beiden Festplatten laden lassen? Wie kann ich den Anfangsoffset (aus der TXT-Datei lesen) und den Endoffset des zu extrahierenden Blocks definieren (es müsste WinHex mindestens 5 gleiche Bytes finden und das vorherige auswählen)? Ich frage mich, ob ich Zeit und Mühe sparen würde, wenn ich etwas Automatisiertes, aber völlig Neues probiere, anstatt es manuell durch einen Prozess zu machen, den ich jetzt gut kenne und sehr effizient machen kann. GabrielB vor 6 Jahren 0

0 Antworten auf die Frage