loader

Was bewirkt "Verify Disc" eigentlich nach dem Brennen, um die Daten zu überprüfen?

Anonim

Mit der Funktion "Disc überprüfen" können Sie sicherstellen, dass Ihre frisch gebrannte Disc einwandfrei funktioniert. Wie genau funktioniert das? Der heutige Q & A-Beitrag von SuperUser hat die Antwort auf die Frage eines neugierigen Lesers.

Die heutige Question & Answer-Sitzung wird von SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.

Foto mit freundlicher Genehmigung von cobalt123 (Flickr).

Die Frage

Der Superuser-Benutzer user1301428 möchte wissen, wie Discs nach dem Brennen überprüft werden:

Was macht die Disk nach dem Brennen eigentlich, um die Daten zu überprüfen? Ich kann mir vorstellen, dass es sich dabei um einen Vergleich zwischen den Originaldateien und den auf der Disc gebrannten Dateien handelt, aber weiß jemand, wie das wirklich auf einem niedrigen Niveau gemacht wird?

Ich meine, erstellt es einen Hash des Quell- und des Zielinhalts und vergleicht sie dann? Wenn ja, speichert es den Hash des gebrannten Inhalts im RAM? Oder speichert es es in einer temporären Datei auf der Festplatte? Gibt es eine Protokolldatei von dem, was los ist?

Nur neugierig, wie genau diese Funktion funktioniert. Und ich beziehe mich auf Windows Image Burner.

Wie funktioniert der Disc-Überprüfungsprozess?

Die Antwort

Die Superuser-Mitwirkenden Frank Thomas und Synetech haben die Antwort für uns. Zunächst einmal Frank Thomas:

Schauen Sie sich diese MSDN-Seiten der Windows-API für die IBurnVerification-Schnittstelle und das Enum IMAPI_BURN_VERIFICATION_LEVEL an.

Bei Datendiscs sieht es so aus, als ob im Quick-Modus nicht die gesamte Disk überprüft wird, 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 / DVD erfolgreich sind.

Zur vollständigen Verifizierung führt er die oben genannten Überprüfungen durch und führt dann eine vollständige Prüfsumme für die letzte Sitzung auf der neuen Disc gegen eine Prüfsumme aus, die für den gebrannten Speicherstrom berechnet wurde. Die Prüfsummen müssen in RAM gespeichert werden, es handelt sich jedoch wahrscheinlich um kurzlebige Werte. Beachten Sie, dass der Vergleich das Disc-Image im RAM und nicht das Quellmedium selbst betrifft. Wenn die Quelldaten nicht korrekt gelesen wurden, werden sie falsch geschrieben. Bei der Überprüfung wird dies nicht erkannt.

Bei Musik-Discs werden READ_TRACK_INFO und das Inhaltsverzeichnis der Discs geprüft, es wird jedoch keine Prüfsummenberechnung durchgeführt. Es gibt keinen vollständigen Bestätigungsmodus für Musik.

Gefolgt von der Antwort von Synetech:

Frank hat die Windows-spezifische Verifikation nett erklärt. Ich werde eine allgemeinere Antwort geben.

  • Was macht Verify Disc nach dem Brennen eigentlich, um die Daten zu überprüfen?
  • Ich meine, erstellt es einen Hash des Quell- und des Zielinhalts und vergleicht sie dann? Wenn ja, speichert es den Hash des gebrannten Inhalts im RAM? Oder speichert es es in einer temporären Datei auf der Festplatte? Gibt es eine Protokolldatei von dem, was los ist?

Dies ist sicherlich eine Möglichkeit, einen Vergleich zu implementieren: eine Datei mit einem Hash (hoffentlich mit einem ausreichend großen Algorithmus - lesen Sie geringe Kollisionswahrscheinlichkeit), wiederholen Sie den Vorgang für die andere und vergleichen Sie die Hashes. Wenn eine Überprüfung so durchgeführt wird, können Sie sehen, dass die Laufwerk-LED eine Zeit lang blinkt, und dann die CD / DVD-LED eine Zeit lang blinkt.

Eine andere Möglichkeit, die Verifizierung zu implementieren, besteht darin, einen Block einer Datei zu lesen, dann denselben Block aus der anderen Datei, zu vergleichen und sie so lange zu wiederholen, bis das Ende der Datei erreicht ist. In diesem Fall werden die LEDs der beiden Laufwerke abwechselnd angezeigt.

Wenn die Festplatte und das optische Laufwerk keine LEDs haben, ist dies natürlich nicht so offensichtlich. Sie können es jedoch immer noch mit so etwas wie ProcessMonitor sehen, weil es eine Reihe von Lesevorgängen von einem zum anderen protokolliert, und zwar entweder in einem einzigen großen Burst oder in abwechselnden kleinen Bursts.

  • Ich kann mir vorstellen, dass es sich dabei um einen Vergleich zwischen den Originaldateien und den auf der Disc gebrannten Dateien handelt, aber weiß jemand, wie das wirklich auf einem niedrigen Niveau gemacht wird?

Eigentlich ist es wirklich nur erforderlich, den Cache des Laufwerks zu leeren, so dass die Vergleichsfunktion die Daten von der eigentlichen CD und nicht aus dem Cache des Speichers liest. Offensichtlich ist dies ein kritischer Schritt, denn wenn die Überprüfung vom Cache aus durchgeführt wird, stellt dies nicht das dar, was sich tatsächlich auf der CD befindet, sodass Korruption leicht durchschlüpfen kann.

Sie können sehen, ob ein Vergleich von der Festplatte oder vom Cache im RAM anhand der Geschwindigkeit erfolgt. Wenn Sie einen einfachen Vergleich manuell durchführen (z. B. mit WinDiff, WinMerge oder durch Hashing mit einem Hashing-Tool), werden Sie feststellen, dass der Vergleich viel schneller als erwartet geschieht, da er die Dateien aus dem Arbeitsspeichercache liest. Sie müssen den Cache leeren, um das Lesen von der aktuellen CD zu erzwingen. Bei optischen Laufwerken (und anderen Wechseldatenträgern wie Flash-Laufwerken und Speicherkarten) reicht das einfache Auswerfen des Laufwerks aus, um den Cache zu leeren. Bei Festplatten ist es jedoch nicht annähernd so einfach (obwohl dies normalerweise keine Rolle spielt) Neue Kopie ist diejenige, die Sie testen möchten.


Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.

Tipp Der Redaktion