Automatisieren Sie den Vergleich beschädigter Dateien
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 Antworten auf die Frage
Verwandte Probleme
-
6
Welche zsh-Funktionen verwenden Sie?
-
5
Mit Updates auf dem Laufenden bleiben?
-
5
Transparente Eingabeaufforderung in Vista?
-
4
Verwenden Sie den Windows-Aktenkoffer von der Befehlszeile aus
-
4
Warum sind einige Befehle nicht vorhanden?
-
11
Gibt es eine einfache Möglichkeit, MP3-Dateien zu teilen?
-
3
Automatisierte Bulk-Screencaps von Videos
-
2
Wie kann ich OSX Terminal.app dazu bringen, den Vollbildmodus zu öffnen und nicht zu kaskadieren?
-
4
Remote-Ordner unter Linux synchronisieren
-
6
Vollbild-Vista-Eingabeaufforderung oder Ersatz