Homepage » come » Che cosa fa Verify Disc in realtà dopo la masterizzazione per verificare i dati?

    Che cosa fa Verify Disc in realtà 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? Il post di Q & A di SuperUser di oggi ha la risposta alla domanda di un lettore curioso.

    La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte basato sulla comunità.

    Foto per gentile concessione di cobalt123 (Flickr).

    La domanda

    Il lettore SuperUser user1301428 vuole sapere come vengono verificati i dischi 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 nessuno sa come sia 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?

    Solo curioso di sapere esattamente come funziona questa funzionalità. E mi riferisco a Windows Image Burner.

    Come funziona il processo di verifica del disco?

    La risposta

    Collaboratori SuperUser Frank Thomas e Synetech hanno la risposta per noi. Primo, Frank Thomas:

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

    Per i dischi di 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 del 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, verrà 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.

    • Che cosa fa Verify disk after burning in realtà 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), si ripeta per l'altro e confronti 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.

    Naturalmente, 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 l'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 nessuno sa come sia 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, quindi non rappresenta ciò che è effettivamente sul disco, quindi la corruzione può facilmente scivolare attraverso.

    È 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 importa la 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.