In den letzten Jahren (seit ca. 2000) habe ich hin und wieder Daten zwischen Festplatten verschoben und kopiert. Dabei handelt es sich um MP3s, Anwendungen, Videos, Backups, E-Mails und so ziemlich alles, und sie wurden zwischen mehreren Festplatten (und Festplatten-Arrays!) und zwischen mehreren Dateisystemen verschoben/kopiert: FAT, NTFS, ReiserFS, Ext3, Ext4, jfs…
Mir ist vor Kurzem aufgefallen, dass einige RAR-Archive, einige ausführbare Dateien (die eigentlich komprimierte Archive sind) und möglicherweise andere Dateien, die mir bisher nicht aufgefallen sind, beschädigt sind. Ich weiß nicht, ob es hier nur bei komprimierten Dateien ein Muster gibt. Ich gehe davon aus, dass es nicht nur dort auftritt.
Zunächst habe ich die Integrität der RAR-Dateien auf meinem Linux-Dateiserver mithilfe von „find“ und dem folgenden Befehl überprüft:
unrar t <rar files>
Das ist schön, aber ich kann auf diese Weise nicht die Integrität aller meiner Archive überprüfen, ganz zu schweigen von all meinen anderen Dateien (Dokumente, Fotos, MP3s, WAVs, ZIPs, die Liste ist natürlich endlos).
Ich möchte alle Dateien auf verschiedene Arten überprüfen.
Eine Dateisystemprüfung ist natürlich sinnvoll, hilft aber nicht wirklich, wenn die Daten bereits vor dem Kopieren auf die Festplatte, auf der sie sich derzeit befinden, beschädigt waren, oder? Das aktuelle Dateisystem ist JFS.
Könnte die 2. Prüfebene MD5-Prüfsummen sein? Ich habe Backups aller meiner Daten und könnte versuchen, die Prüfsummen abzugleichen, aber würden beschädigte Dateien mir unterschiedliche Prüfsummen liefern? Dies löst das Problem immer noch nicht, wenn eine Datei vor der letzten Kopie meiner Daten beschädigt war.
Was könnte ich sonst noch überprüfen, um ein wenig Sicherheit zu erlangen?
Beim Vergleichen meiner Daten mit meinen Backups gibt es einen großen Haken: Wie bei allem Lebendigen haben sich meine Daten im Laufe der Zeit „verändert“ und die Backups sind Momentaufnahmen, die nie geändert wurden. Zum einen hat sich die Verzeichnisstruktur geändert, Dateien wurden offensichtlich gelöscht oder an andere Orte verschoben. Es wird offensichtlich ein Chaos, den Befehl zu verwenden,
find
um eine Datei zwischen dem Backup-Baum und dem aktuellen Baum abzugleichen!
Hat also jemand etwas Ähnliches erlebt und verfügt möglicherweise über Skripte (mit „locate“ oder auf andere Weise), mit denen sich indizierte Einträge der Dateien schnell finden und verwenden lassen?
Antwort1
MD5
/ SHA
Prüfsummen sind heutzutage der Goldstandard für die Überprüfung der Dateiintegrität. Wenn Sie die Originale haben, aus denen Sie die Prüfsummen erstellen können, oder die Prüfsummen bereits haben, wäre das diegründlichsteMöglichkeit, den Inhalt der Dateien zu überprüfen. Dies kann jedoch mühsam sein, wenn Sie so viele Dateien haben, wie Sie andeuten.
Darüber hinaus sollten die Dateiformate RAR
, ZIP
, und 7Z
die CRC32-Prüfsumme aller darin gespeicherten Dateien enthalten. Dies ist schwächer (d. h. es ist wahrscheinlicher, dass beschädigte Daten unentdeckt bleiben) als MD5 oder SHA, kann aber dennoch erkennen, ob beim Extrahieren einer Datei eine Beschädigung vorliegt, d. h., das Archiv ist beschädigt. Diese werden automatisch überprüft, wenn Sie eine Datei aus einem Archiv extrahieren. unrar -t <rar files>
testet im Grunde nur die CRC32-Prüfsummen für jede Datei im Archiv.
Darüber hinaus sollten Archivierungstools Ihnen die Möglichkeit bieten, .sfv
beim Erstellen eines Archivs eine Datei zu generieren, die einen zusätzlichen CRC32 des gesamten Archivs darstellt. Damit können Sie die Integrität eines Archivs weiter überprüfen.
Wenn Sie Dateien von einem Dateisystem in ein anderes kopieren, können Sie ein spezielles Tool verwenden, um zu überprüfen, ob der Kopiervorgang erfolgreich und korrekt war. Für Windows verwende ich eines TeraCopy
: Aktivieren Sie einfach die Option „Überprüfen“, bevor Sie mit dem Kopieren beginnen. TeraCopy liest die kopierten Dateien erneut, um zu überprüfen, ob sie an ihrem neuen Speicherort tatsächlich korrekt auf die Festplatte geschrieben wurden.