13Aug

Cosa fa realmente "Verifica disco" dopo la masterizzazione per verificare i dati?

La funzione 'verifica disco' è ottima per assicurarsi che il disco appena masterizzato sia andato a buon fine, ma come funziona esattamente? Oggi il post di SuperUser Q & A ha la risposta alla domanda di un curioso lettore.

Today's Question &La sessione di risposta ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di Q & A basato su community.

Foto per gentile concessione di cobalt123( Flickr).

La domanda

SuperUser reader user1301428 vuole sapere come i dischi vengono verificati dopo che sono stati masterizzati:

Cosa verifica effettivamente il disco dopo la masterizzazione per verificare i dati? Immagino che si tratti di una sorta di confronto tra i file originali ei file che sono stati masterizzati sul disco, ma qualcuno sa come è fatto davvero a un livello basso?

Voglio dire, crea un hash del contenuto sorgente e di destinazione, quindi li confronta? In tal caso, memorizza l'hash del contenuto masterizzato nella RAM?O lo salva in un file temporaneo sul disco rigido? C'è un file di registro di ciò che sta succedendo?

Semplicemente curioso di sapere esattamente come funziona questa funzione. E mi riferisco a Windows Image Burner.

Come funziona il processo di verifica del disco?

The Answer

I collaboratori di SuperUser Frank Thomas e Synetech hanno la risposta per noi. Per prima cosa, Frank Thomas:

Dai un'occhiata a queste pagine MSDN su Windows API per l'interfaccia IBurnVerification e l'enum IMAPI_BURN_VERIFICATION_LEVEL.

Per i dischi dati, sembra che in modalità rapida non esegua il checksum dell'intero disco, ma solo una selezione di settori. Quindi si assicura che l'API chiami READ_DISC_INFO e READ_TRACK_INFO riescano contro il nuovo disco.

Per la verifica completa, esegue i controlli di cui sopra, quindi esegue un checksum completo sull'ultima sessione sul nuovo disco rispetto a un checksum calcolato sul flusso di memoria in corso di masterizzazione. I checksum devono essere memorizzati nella ram, ma sono probabilmente valori di breve durata. Si noti che il confronto è contrario all'immagine del disco nella RAM, non al supporto di origine stesso, quindi se i dati di origine non vengono letti correttamente, sarà scritto in modo errato. La verifica non lo rileva.

Per i dischi musicali, si concentra sul controllo READ_TRACK_INFO e sul sommario del disco, ma non esegue il calcolo del checksum. Non esiste una modalità di verifica completa per la musica.

Seguito dalla risposta di Synetech:

Frank ha ben spiegato la verifica specifica per Windows. Darò una risposta più generale

  • Cosa fa Verify disk after burning per verificare i dati?
  • Voglio dire, crea un hash del contenuto sorgente e di destinazione, quindi li confronta? In tal caso, memorizza l'hash del contenuto masterizzato nella RAM?O lo salva in un file temporaneo sul disco rigido? C'è un file di registro di ciò che sta succedendo?

Questo è certamente un modo in cui un confronto può essere implementato: hash un file( si spera con una bassa probabilità di algoritmo di collisione sufficientemente ampia), ripetere per l'altro e confrontare gli hash. Se è così che viene implementata una verifica, sarà possibile vedere il flash drive-LED per un po ', quindi il LED CD / DVD lampeggerà per un po'.

Un altro modo per implementare la verifica è leggere un blocco di un file, quindi lo stesso blocco dell'altro file, confrontarli, quindi ripetere fino al raggiungimento della fine del file. In questo caso, vedrai i LED delle due unità alternarsi avanti e indietro.

Ovviamente, se il disco rigido e l'unità ottica non hanno LED, non sarà così ovvio. Ma puoi ancora vederlo con qualcosa come ProcessMonitor perché registrerà una serie di letture da una, poi dall'altra in un singolo, grande burst o alternate, piccole raffiche.

  • Immagino che si tratti di una sorta di confronto tra i file originali ei file che sono stati masterizzati sul disco, ma qualcuno sa come è fatto davvero a un livello basso?

In realtà, è sufficiente svuotare la cache dell'unità in modo che la funzione di confronto stia leggendo i dati dal disco reale anziché dalla cache di memoria. Ovviamente questo è un passaggio fondamentale perché se la verifica viene eseguita dalla cache, allora non rappresenta ciò che è effettivamente sul disco, quindi la corruzione può facilmente scivolare.

È possibile vedere se viene effettuato un confronto dall'unità o dalla cache nella RAM dalla velocità con cui si verifica. Se si esegue manualmente un confronto semplice( ad esempio con WinDiff, WinMerge o eseguendo il hashing con uno strumento di hashing), si noterà che il confronto avviene molto più rapidamente del previsto poiché sta leggendo i file dalla memoria cache.È necessario svuotare la cache per forzare la lettura dal disco effettivo. Per le unità ottiche( e altri supporti rimovibili come unità flash e schede di memoria), è sufficiente espellere l'unità per svuotare la cache, ma per i dischi rigidi non è così semplice( anche se di solito non importala nuova copia è quella che vuoi testare).

Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.