Ich habe eine ISO-Datei, die ich auf eine CD gebrannt habe. Wie kann ich nun überprüfen, ob die CD korrekt erstellt wurde? Ich hätte gerne einen Befehl, der die Hash-Summe berechnet, mit der ich die Hash-Summe überprüfen kann, die ich in der ISO-Datei berechnet habe. Idealerweise sollte der Befehl:
- Arbeite unabhängig von der ISO-Datei:Das heißt, ich möchte keine Liste mit Hash-Summen für jede Datei auf der Disc führen oder mich an die Anzahl der Blöcke erinnern
- Sei relativ kurz:Ein einzeiliger Befehl ist großartig, eine zweizeilige Befehlskette ist in Ordnung, ein Skript, das sich über eine Seite erstreckt, nicht
- Sei ziemlich effizient:zum Beispiel
dd
die Disc zurück in eine Datei und führen Sie dannmd5sum
aus in der Datei ist nicht akzeptabel
Wenn es keine Antwort gibt, die nicht alle befriedigen kann, werde ich auch die nächste Übereinstimmung zu schätzen wissen. Noch besser, wenn Sie mir sagen können, warum es nicht so einfach ist.
Akzeptierte Antwort:
Das grundlegende Problem ist, dass wir die md5-Summe der exakt gleichen Informationen nehmen wollen, die ursprünglich auf der ISO waren. Wenn Sie die ISO auf eine CD schreiben, befindet sich am Ende der Platte wahrscheinlich ein leerer Bereich, der die md5-Summe unweigerlich ändert. Also der allerkürzeste Weg:
md5sum /dev/cdrom
funktioniert nicht . Was funktioniert (und in der Online-Dokumentation üblich ist), liest nur die genaue Anzahl von Bytes vom Gerät und macht dann die md5sum
. Wenn Sie die Anzahl der Bytes kennen, können Sie Folgendes tun:
dd if=/dev/cdrom bs=1 count=xxxxxxxx | md5sum
wobei „xxxxx“ die Größe der ISO in Byte ist.
Wenn Sie die Anzahl der Bytes nicht sofort kennen, aber die ISO-Datei noch auf Ihrer Festplatte haben, können Sie sie mit ls abrufen, indem Sie Folgendes tun (von hier entnommen):
dd if=/dev/cdrom | head -c `stat --format=%s file.iso` | md5sum
Es gibt viele andere einzeilige Konstruktionen, die funktionieren sollten. Beachten Sie, dass wir in jedem Fall dd
verwenden um die Bytes von der Festplatte zu lesen, aber wir leiten diese nicht in eine Datei, sondern übergeben sie direkt an md5sum.
Mögliche Geschwindigkeitsverbesserungen können vorgenommen werden, indem einige Berechnungen durchgeführt werden, um eine größere Blockgröße zu verwenden (die bs=
im dd
Befehl).