13Aug
Die "Verify Disc" -Funktion ist ideal, um sicherzustellen, dass Ihre frisch gebrannte Disc gut gelaufen ist, aber wie genau funktioniert sie? Der heutige SuperUser Q & A Post hat die Antwort auf die Frage eines neugierigen Lesers.
Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.
Foto mit freundlicher Genehmigung von cobalt123( Flickr).
Die Frage
SuperUser reader user1301428 möchte wissen, wie Disks nach dem Brennen verifiziert werden:
Was macht die Überprüfung nach dem Brennen tatsächlich, um die Daten zu verifizieren? Ich stelle mir vor, es ist eine Art Vergleich zwischen den Originaldateien und den Dateien, die auf der Disc gebrannt wurden, aber weiß jemand, wie es wirklich auf einem niedrigen Level gemacht wird?
Ich meine, erstellt es einen Hash des Quell- und Zielinhalts und vergleicht sie dann? Wenn ja, speichert es den Hash des verbrannten Inhalts im RAM?Oder speichert es es in einer temporären Datei auf der Festplatte? Gibt es eine Protokolldatei mit dem, was vor sich geht?
Nur neugierig, genau zu wissen, wie diese Funktion funktioniert. Und ich beziehe mich auf Windows Image Burner.
Wie funktioniert der Disc-Verifizierungsprozess?
Die Antwort
SuperUser Mitwirkende Frank Thomas und Synetech haben die Antwort für uns. Zuerst, Frank Thomas:
Überprüfen Sie diese MSDN-Seiten auf Windows-API für die IBurnVerification-Schnittstelle und die IMAPI_BURN_VERIFICATION_LEVEL-Enumeration.
Für Datendiscs sieht es so aus, als ob es im Schnellmodus nicht die gesamte CD checkt, sondern nur eine Auswahl von Sektoren. Es stellt dann sicher, dass die API-Aufrufe READ_DISC_INFO und READ_TRACK_INFO für die neue CD erfolgreich sind.
Zur vollständigen Verifizierung führt es die obigen Überprüfungen durch und führt dann eine vollständige Prüfsumme für die letzte Sitzung auf der neuen Platte mit einer Prüfsumme aus, die für den verbrannten Speicherstrom berechnet wurde. Die Prüfsummen müssen in RAM gespeichert werden, aber sie sind wahrscheinlich kurzlebige Werte. Beachten Sie, dass der Vergleich mit dem Disk-Image im RAM und nicht mit dem Quellmedium selbst erfolgt. Wenn also die Quelldaten nicht korrekt gelesen wurden, werden sie falsch geschrieben. Die Überprüfung wird dies nicht erkennen.
Bei Musik-CDs konzentriert sich das Programm auf die Überprüfung von READ_TRACK_INFO und der Disc-Tabelle des Inhalts, führt jedoch keine Prüfsummenberechnung durch. Es gibt keinen vollständigen Bestätigungsmodus für Musik.
Gefolgt von der Antwort von Synetech:
Frank hat die Windows-spezifische Verifikation schön erklärt. Ich werde eine allgemeinere Antwort geben.
- Was bewirkt eine Überprüfung nach dem Brennen, um die Daten zu verifizieren?
- Ich meine, erstellt es einen Hash des Quell- und Zielinhalts und vergleicht sie dann? Wenn ja, speichert es den Hash des verbrannten Inhalts im RAM?Oder speichert es es in einer temporären Datei auf der Festplatte? Gibt es eine Protokolldatei mit dem, was vor sich geht?
Dies ist sicherlich eine Möglichkeit, wie ein Vergleich implementiert werden kann: Hash-Datei( hoffentlich mit einem ausreichend großen Lese-Low-Chance-of-Collision-Algorithmus), Wiederholung für die andere, und vergleichen Sie Hashes. Wenn so eine Überprüfung durchgeführt wird, können Sie die Drive-LED für einige Zeit sehen, dann blinkt die CD / DVD-LED eine Weile.
Eine andere Möglichkeit, die Verifizierung zu implementieren, besteht darin, einen Block aus einer Datei zu lesen, dann den gleichen Block aus der anderen Datei, diese zu vergleichen und dann zu wiederholen, bis das Ende der Datei erreicht ist. In diesem Fall sehen Sie die LEDs der beiden Laufwerke abwechselnd vor und zurück.
Natürlich, wenn die Festplatte und das optische Laufwerk keine LEDs haben, dann wird es nicht so offensichtlich sein. Aber Sie können es immer noch mit etwas wie ProcessMonitor sehen, weil es eine Reihe von Lesevorgängen von einem, dann den anderen entweder in einem einzigen, großen Burst oder abwechselnd kleinen Bursts protokolliert.
- Ich denke, es ist eine Art Vergleich zwischen den Originaldateien und den Dateien, die auf der Disc gebrannt wurden, aber weiß jemand, wie es wirklich auf einem niedrigen Level gemacht wird?
Tatsächlich wird nur der Laufwerks-Cache geleert, so dass die Vergleichsfunktion die Daten von der eigentlichen CD statt vom Speicher-Cache liest. Offensichtlich ist dies ein kritischer Schritt, denn wenn die Verifizierung aus dem Cache erfolgt, stellt sie nicht dar, was sich tatsächlich auf der Disk befindet, so dass Korruption leicht durchbrechen kann.
Sie können sehen, ob ein Vergleich vom Laufwerk oder vom Cache im RAM durchgeführt wird, je nachdem, wie schnell es auftritt. Wenn Sie manuell einen einfachen Vergleich durchführen( z. B. mit WinDiff, WinMerge oder indem Sie sie mit einem Hash-Werkzeug hashen), werden Sie feststellen, dass der Vergleich viel schneller als erwartet erfolgt, weil er die Dateien aus dem Speicher-Cache liest. Sie müssen den Cache leeren, damit er von der aktuellen Disc gelesen wird. Bei optischen Laufwerken( und anderen Wechseldatenträgern wie Flash-Laufwerken und Speicherkarten) ist das Auswerfen des Laufwerks ausreichend, um den Cache zu leeren, bei Festplatten ist es jedoch nicht so einfach( obwohl dies normalerweise nicht so wichtig ist, weil dasEine neue Kopie ist diejenige, die Sie testen möchten.
Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.