Langhofer CRC Error Ignorer
Der Langhofer CRC Error Ignorer ist eine Software, mit der man unter Windows die funktionsfähigen Teile einer CRC-beschädigten Datei kopieren kann.
CRC Error
Vor dem Schreibvorgang eines Datenblockes auf eine Festplatte oder eine DVD wird eine eine Prüfsumme (CRC-Wert) berechnet. Dieser CRC-Wert wird gemeinsam mit dem Datenblock auf das Medium geschrieben.
Nach dem darauffolgenden Lesevorgang wird mit dem selben Verfahren der CRC-Wert berechnet und mit dem auf dem Medium verglichen. Stimmen sie nicht überein, spricht man von einem CRC Fehler (CRC Error).
CRC ist also ein Verfahren, um Fehler bei der Übertragung erkennen zu können.
CRC Recovery
Da CRC nur ein Verfahren zur Fehlererkennung ist, aber keine Möglichkeit bietet, die Fehler zu reparieren, ist eine CRC-Reparatur (CRC-Recovery) nicht möglich.
Datenfehler (CRC-Prüfung)
Die Dateimanager moderner Betriebssysteme (z.B. Apple's Finder, Konqueror und Microsoft's Explorer) sind in der Lage, CRC Fehler zu erkennen. Das Problem an der Stelle ist, dass sie nach erkanntem CRC Fehler den Kopiervorgang abbrechen und die bereits kopierten Blöcke löschen.
Screenshot: Windows XP's Explorer beim Kopieren einer Datei, dessen CRC nicht übereinstimmt
Aber auch cp und dd unter Linux brechen den Kopiervorgang nach einem CRC error ab:
# dd if=/dev/sde1 of=/tmp/sde1.backup dd: reading `/dev/sde1': Input/output error 80405968+0 records in 80405968+0 records out 41167855616 bytes (41 GB) copied, 40291.4 s, 1.0 MB/s
Im Syslog meldet der Kernel: Buffer I/O error on device sde1, logical block 40202989 Buffer I/O error on device sde1, logical block 40202990 ...
Langhofer CRC Error Ignorer: Das Verfahren
Mit dem Langhofer CRC Error Ignorer können Dateien trotz CRC Fehlers kopiert werden. Die defekten Blöcke werden je nach Betriebsart durch Nullbytes ersetzt oder ausgelassen. Eine Wiederherstellung oder Reparatur der verlorengegangen Daten ist aufgrund der Eigenschaften des CRC Verfahrens nicht möglich. Für viele Anwendungen ist der Verlust einer gesamten Datei viel schlimmer als der Verlust der defekten Blöcke. Viele Multimediaformaten sind gegen fehlende oder falsche Blöcke robust. Das Video, der Ton oder das Bild kann oft trotzdem (mehr oder weniger gut) angezeigt werden.
Voraussetzung- .net kompatible Laufzeitumgebung
Windows
Microsoft .net Framework [kostenloser Download]
andere Betriebssysteme
Der Langhofer CRC Error Ignorer sollte unter Mono laufen, wurde aber nicht intensiv getestet. Sollten Sie Interesse an einer Mac OS oder Linux-Variante des Langhofer CRC Error Ignorers haben, geben Sie uns bitte Bescheid.
Parameter / Optionen
Der Langhofer CRC Error Ignorer kann Quelldateien lesen. Wahlweise, können die lesbaren Blöcke auch wieder geschrieben werden. Existiert die Zieldatei bereits oder wurde kein Zielordner angegeben wird die defekte Datei zwar eingelesen, die gelesenen Blöcke jedoch nicht geschrieben. Da man davon ausgehen kann, dass das Quell-Laufwerk defekt ist, sollte die Zieldatei auf einem anderen Datenträger kopiert werden.
Mit "overwrite existing destination file" kann festgelegt werden, ob eine eventuell existierende Datei überschreiben werden soll, sofern dies möglich ist. Ist ein Haken gesetzt, wird die Datei unter Umständen überschrieben, ist es nicht gesetzt, wird die Datei im Zielverzeichnis nicht verändert.
Die Einstellmöglichkeit "just read, don't copy" ermöglicht es, einen Trockenlauf durchzuführen. Es wird die Quelldatei zwar gelesen, aber keine Zieldatei geschrieben. Ist der Haken gesetzt, wird der Trockenlauf durchgeführt. Bei nicht gesetztem Haken wird die Zieldatei geschrieben, sofern dies möglich ist.
Der "corrupt file offset" kann angegeben werden, wenn man den Anfang der Datei überspringen möchte. Der Offset wird in Megabytes (1024*1024=1048576 Bytes) angegeben. Bitte beachten Sie, dass im Falle eines Kopiervorganges die übersprungenen Bytes in der Quelldatei unabhängig vom Betriebsmodus in der Zieldatei tatsächlich übersprungen und nicht mit 0-Bytes ausgefüllt werden.
"Read with blockSize" gibt an, mit welcher Blockgröße die Originaldatei kopiert werden soll. Eine kleine Blockgröße kann oft lange dauern, wogegen eine große Blockgröße viel Arbeitsspeicher benötigt. Standard Festplatten (P-ATA, S-ATA, ..) lesen mit einem Durchsatz zwischen 10 und 30 MB/s (Stand: Juli 2007), daher wird aus Performancegründen eine Blockgröße von etwa 20MB empfohlen. Möglicherweise bietet die nächste Version einen automatischen Blockgrößen-Vorschlag an, der aufgrund von Testläufen ermittelt wird.
"Bypass Blocksize" gibt die Größe des Blockes an, der im Falle eines CRC-Errors übersprungen wird. Beispiel: Wird an Position 1400 MB ein CRC Error festgestellt, so werden bei einer Bypass Blocksize von 1MB bei Position 1401 MB weitergelesen. Die Bytes zwischen 1400MB und 1401MB werden durch 0-Bytes ersetzt.
Je größer die Bypass Blocksize desto mehr Daten gehen verloren aber desto schneller ist der Vorgang abgeschlossen. Jeder Leseversuch, der mit einem CRC-Error endet, benötigt ca. 16 Sekunden, daher würde die Laufzeit bei 1MB defekten Bytes und einem Byte Bypass Blocksize 1024*16/60/24=11,3 Tage in Anspruch nehmen. Bei einer Bypass Blocksize von 1MB und ebnfalls 1MB defekten Bytes dauert dieselb Überbrückung der CRC-Fehler statt 11,3 Tage nur 16Sekunden.
Es gibt keine Formel, anhand derer man die Bypass Blocksize berechnen könnte, man muss sich an einen optimalen Wert herantasten. Die Bypass Blocksize ist abhängig vom Grad des Defektes, von der Dateigröße und davon, wie sehr die Anwendung unter marginalen Verlustunterschieden leidet.
Man kann folgendermaßen vorgehen: Zunächst wählt man eine Bypass-Blocksize, die ca. 1/10 der Dateigröße ist. So muss man im schlechtesten Fall (wenn alle Bytes defekt sind) ca. 10*16 Sekunden, also gute 2 Minuten warten. Sollte hingegen nur eine Stelle defekt sein, muss nur 1*16Sekunden gewartet werden. Im Anschluss daran halbiert man den Wert auf etwa 1/100 der Dateigröße und fährt solange mit diesem Schema fort, bis man die Größe des defekten Blockes abschätzen kann. Die Bypass Blocksize wird ebenfalls in Bytes angegeben. 1MB entspricht also 1048576 Bytes.
Die Position in der Quelldatei wird unter dem Fortschrittsbalken angezeigt.
Eine gemittelte Gesamtgeschwindigkeit über die Laufzeit des Kopiervorganges und die Anzahl kopierter Bytes findet sich im Textfeld: Total Speed. Ein zusätzlicher Schreibvorgang kann den Total Speed im Vergleich zu einer Read-Only Operation ggf. verlangsamen.
Der Knopf copy startet den Kopiervorgang, wogegen abort den Kopiervorgang abbricht. Es ist uns bekannt, dass diese Funktionalität manchmal Fehler verursacht, daher empfehlen wir Ihnen, derzeit das Programm komplett zu schließen und neu zu starten, bevor Sie mit einer zweiten Datei fortfahren. Sie würden aber im Falle eines Fehleres eine Benachrichtigung erhalten.
Im Reiter "Deal with CRC Errors" kann der Betriebsmodus eingestellt werden. Hier kann festgelegt werden, wie der Error Ignorer im Falle eines CRC Fehlers vorgehen soll:
Wird ein CRC-Fehler (allg: E/A Fehler) in der Quelldatei festgestellt, springt die Datei um die Bypass Blocksize in der Quelldatei weiter. - zero bytes
In der Zieldatei werden ab der selben Position 0-Bytes eingefügt, sodass die resultierende Zieldatei die selbe Größe hat, wie die Quelldatei. Die Quelldatei unterscheidet sich also nach Abschluss des Kopiervorganges von der Zieldatei nicht in der Größe sondern nur an der Stelle des CRC Fehlers. - eliminate bytes
In der Zieldatei wird an der Stelle des CRC-Fehlers nichts eingefügt, sodass die resultierende Datei kleiner sein wird, als die Quelldatei. Die Zieldatei ist (je nach Anzahl und Position der CRC Fehler) um ein Vielfaches der Bypass Blocksize kleiner als die Quelldatei.
DownloadInstallation- Download
- Starten Sie setup.exe oder das MSI Package
- Wählen Sie ein Zielverzeichnis aus
- Sie erhalten nach erfolgter Installation einen Link im Startmenu, einen Link am Destkop und die Programmdateien in dem Verzeichnis, das Sie unter 3. ausgewählt haben
De-Installation- Download
- Starten Sie setup.exe oder das MSI Package
- Setup sollte erkennen, dass die Software bereits installiert wurde
- Wählen Sie aus, dass Sie den CRC Error Ignorer entfernen möchen
Lizenz
Diese Software steht unter der GNU GPL. Haftung ausgeschlossen.
|