Ich habe gerade ein Backup einer ganzen Festplatte (50 GB) über folgende Adresse erstellt ssh
:
dd if=/dev/hda | buffer -s 64k -S 10m | ssh myuser@myhost "cat > ~/image.img"
Was ist jetzt der beste Weg, um die Integrität der Datei image.img
zu überprüfen, dh wie man überprüft, ob alles korrekt kopiert wurde?
Antworten:
Wenn der Befehl erfolgreich beendet wurde, ist die Sicherung korrekt, mit Ausnahme eines Hardwarefehlers (der sich auch auf die von Ihnen durchgeführte Überprüfung auswirken kann). Es kann später falsch werden, wenn die Hardware fehlerhaft ist, aber die meisten Speicherhardware erkennt Beschädigungen.
Hier gibt es eine Einschränkung: In einer Pipeline meldet die Shell keine Fehler von der linken Seite. (Dies liegt an einem ziemlich häufigen Szenario, in dem die rechte Seite nicht alle Daten lesen muss, z. B.
some_command | head
und die linke Seite stirbt, weil ihre Ausgabe nicht mehr gewünscht wird.) Hier also ein Lesefehler vondd
würde ignoriert werden. Legen Sie in bash diepipefail
Option fest, Fehler aus allen Teilen der Pipeline zu melden.Achten Sie auch darauf, dass
dd bs=…
einige Fehler ignoriert werden unddd
häufig langsamer als bei Alternativen sind . Ich empfehle, überhaupt nicht zu verwendendd
: Es hat keine Vorteile, nur eine ganze Datei zu kopieren. Im Gegensatz zu dem, was Sie vielleicht irgendwo gelesen haben,dd
handelt es sich nicht um einen einfachen Festplattenzugriffsbefehl mit speziellen Eigenschaften, es ist absolut keine Magie indd
, die Magie ist in/dev/hda
.Wenn Sie jedoch die Sicherung überprüfen möchten, ist es am besten, auf jeder Seite eine kryptografische Prüfsumme zu erstellen und diese zu vergleichen. Beispielsweise:
Überprüfen Sie, ob die beiden Prüfsummen identisch sind.
Beachten Sie, dass hierdurch geprüft wird, ob das Backup und das Original zum Zeitpunkt der Überprüfung identisch sind. Alles, was Sie ändern
/dev/hda
, einschließlich des Ein- und Aushängens eines Dateisystems, auch ohne Änderungen vorzunehmen (wodurch bei vielen Dateisystemen das Datum der letzten Bereitstellung aktualisiert wird), ändert die Prüfsumme. Wenn Sie die Integrität später überprüfen möchten, notieren Sie sich die Prüfsumme der Festplatte zum Zeitpunkt der Sicherung irgendwo.quelle
/dev/hda
geändert hat , seit die Sicherung die Hashes übereinstimmen , werden nicht gemacht wurde.Wie von darnir & Giles erwähnt, ist es am besten, kryptografische Hashes unmittelbar nach dem Backup auszuführen, bevor Änderungen an Ihrer Quellfestplatte vorgenommen wurden. Wenn Sie die Festplatte jedoch seitdem verwendet haben, stimmen die Hashes höchstwahrscheinlich nicht überein. Selbst das Ändern eines Bytes auf der Festplatte führt zu einem völlig anderen Hash.
Obwohl es weit weniger als ideal ist, können Sie das Bild vor Ort überprüfen, indem Sie es montieren. Führen Sie auf dem System, auf dem sich das Disk-Image befindet, Folgendes aus (erstellen
/mnt/disk
Sie , wenn es nicht vorhanden ist, oder einen alternativen Speicherort):Sie können sich dann in
/mnt/disk
allen Dateien umsehen . Überprüfen Sie die sha1-Hashes kritischer Dateien im Bild mit den Originalen, um deren Integrität zu überprüfen.quelle
Verwenden Sie den Befehl qemu-img
quelle