Überprüfen von CDs/DVDs mit Prüfsummen

Das Überprüfen ist nicht trivial, denn CDs/DVDs sind, wie auch die meisten anderen Datenträger, etwas mehr als nur Dateisysteme, die sich innerhalb einer Datei (device file) befinden. Bei Festplatten ist die Ursache das die Dateisysteme meist einen kleinen Teil am oberen/hinteren Ende ungenutzt lassen, aber beim kompletten Auslesen wird auch dessen mehr oder minder zufälliger Inhalt ausgelesen. Bei CDs/DVDs wird meist aufgefüllt um immer vollständige Blöcke von 2048 Bytes sicherzustellen, die auf CDs/DVDs verwendet werden.
Dieses Auffüllen, Padding genannt, erfolgt mal mit Nullen, mal mit zufälligen Bytes und es kann auch länger als unbedingt nötig sein, also größer als ein Block und damit hinter dem Ende des Dateisystems. Bei von Herstellern zur Verfügung gestellten ISO-Abbbildern/ISO-Images sollte es das Problem nicht geben, aber beim Brennen werden zusätzlich zum Padding noch Medien-Informationen angehängt und damit wird das ISO-Image durch das Brennen auch noch abhängig vom Medium modifziert.
Im einfachsten Fall hat man ein Image als Datei, z. B. für eine Knoppix-CD, und dazu eine Prüfsumme, die man simpel überprüfen kann.
Allgemein ist es wie oben erwähnt nicht so einfach; man benötigt als ersten Schritt beim Vergleichen die Bestimmung der Größe vom ISO-Dateisystem, um anschließend den Vergleich nur bis zu dieser Größe durchzuführen, also ohne Padding hinter dem Dateisystem und ohne Medien-Informationen. Zu diesem Zweck gibt es Programme wie isosize.
Dazu habe ich dieses Skript gemacht, das man auch direkt auf CDs/DVDs anwenden kann: image_check.sh

Beispiel:

image_check.sh /dev/sr0 beispiel.iso sha1

überprüft die CD/DVD im SATA-Brenner und hierbei muß die Prüfsummen-Datei beispiel.iso.sha1 im aktuellen Verzeichnis sein. Weil nur mit Prüfsummen überprüft wird, wird die Datei beispiel.iso nicht benötigt; das Skript benötigt den Namen nur für den Namen der Prüfsummendatei.
Weil das Skript isosize verwendet und direkt auf den Datenträger (falls einer als Option angegeben wird) zugreift, kann man es nur als root benutzen.

Für detaillierte Informationen, z. B. wie viele Fehler wo gefunden wurden, kann man für jede Datei in dem ISO-Image eine Prüfsumme berechnen und überprüfen. Bei vielen DVDs, z. B. Linux-Installations-DVDs, ist so eine Überprüfung, meist eingebaut und per Menü auswählbar. Diese Überprüfungen verwenden aber nur Hash-Werte so das nur festgestellt werden kann ob eine Datei unbeschädigt oder beschädigt ist.
Für genauere Informationen benötigt man spezielle und von der Hardware abhängige Programme, welche die Fehlerkorrektur auf den CDs/DVDs, die im Hintergrund und schon im CD/DVD-Laufwerk durchgeführt wird, auswerten und z. B. als farbige Karte darstellen.


Strippen von ISO-Images (ISO-Abbilder)

Das Strippen ISO-Images/ISO-Abbildern schneidet das überflüssige Padding am Ende ab. Bei offiziellen ISO-Images, z. B. vom Knoppix, ist es praktisch immer überflüssig (weil es mangels Padding nichts bewirkt), aber bei Images von Brenn-Programmen (K3B, Nero, etc.) schneidet es das Padding weg. Damit spart man etwas Speicherplatz und damit erleichtert man auch die Berechnung von Prüfsummen. Statt selber so ein Skrip zu machen und damit sozusagen das Rad zum dröfzigtausendsten Male zu erfinden, habe ich einfach ein vorhandenes Skript genommen, das wahlweise auch ein Padding anhängt, und nach erfolgreichem Testen hier hin gestellt: isopad.sh.

Damit kann man ISO-Images verkleinern ohne Daten zu verlieren und nebenbei leichter vergleichen. Beispiel:

isopad - beispiel.iso



Homepage


Sitemap