Domača » kako » Kaj Preverjanje diska dejansko počne po zapisovanju za preverjanje podatkov?

    Kaj Preverjanje diska dejansko počne po zapisovanju za preverjanje podatkov?

    Funkcija »preverjanje diska« je odlična za zagotavljanje, da je vaš sveže zapisan disk dobro prikazan, kako točno pa deluje? Današnja objava za vprašanja in odgovori SuperUser ima odgovor na vprašanje radovednega bralca.

    Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.

    Fotografija je odobrena s cobalt123 (Flickr).

    Vprašanje

    Bralnik super uporabnika user1301428 želi vedeti, kako so diski preverjeni po tem, ko so zapisani:

    Kaj dejansko opravi preverjanje diska po zapisovanju, da se preverijo podatki? Predvidevam, da je to nekakšna primerjava med izvirnimi datotekami in datotekami, ki so bile zapisane na disku, toda ali kdo ve, kako je to res narejeno na nizki ravni?

    Mislim, ustvari haše izvorne in ciljne vsebine, nato pa jih primerja? Če je tako, ali shrani hash vsebine v RAM-u? Ali ga shrani v začasno datoteko na trdem disku? Ali obstaja log datoteka o tem, kaj se dogaja?

    Samo zanima me natančno, kako deluje ta funkcija. In jaz sem se nanašajo na Windows Image Burner.

    Kako deluje postopek preverjanja diska?

    Odgovor

    Sodelavci super uporabnika Frank Thomas in Synetech imata odgovor za nas. Najprej, Frank Thomas:

    Oglejte si te strani MSDN v oknu API za vmesnik IBurnVerification in številko enote IMAPI_BURN_VERIFICATION_LEVEL.

    Za podatkovne diske je videti, da v hitrem načinu ne pregleduje celotnega diska, temveč le izbor sektorjev. Nato poskrbi, da API klici READ_DISC_INFO in READ_TRACK_INFO uspejo na novem disku.

    Za popolno preverjanje izvede zgornje preglede, nato pa na zadnji seji na novem disku izvede popolno kontrolno vsoto proti kontrolni vsoti, ki je izračunana na zapisanem pomnilniku. Kontrolne vsote morajo biti shranjene v ram, vendar so verjetno kratkotrajne vrednosti. Upoštevajte, da je primerjava v primerjavi s sliko diska v RAM-u, ne pa tudi v samem viru, zato če se izvorni podatki ne berejo pravilno, bo napačen. Preverjanje tega ne bo zaznalo.

    Za glasbene diske se osredotoča na preverjanje READ_TRACK_INFO in vsebine diska, vendar ne izvaja izračuna kontrolne vsote. Za glasbo ni popolnega načina preverjanja.

    Sledi odgovor podjetja Synetech:

    Frank je lepo razložil preverjanje, ki je specifično za Windows. Dal bom bolj splošen odgovor.

    • Kaj preverja disk po zapisovanju dejansko narediti za preverjanje podatkov?
    • Mislim, ustvari haše izvorne in ciljne vsebine, nato pa jih primerja? Če je tako, ali shrani hash vsebine v RAM-u? Ali ga shrani v začasno datoteko na trdem disku? Ali obstaja log datoteka o tem, kaj se dogaja?

    To je zagotovo eden od načinov za primerjavo: hašiš eno datoteko (upajmo, da je dovolj velika možnost branja nizke možnosti za trčenje), ponovite za drugo in primerjajte haše. Če je tako izvedeno preverjanje, boste lahko videli, da je LED-bliskavica za nekaj časa vidna, potem pa CD / DVD-LED utripa nekaj časa.

    Drug način za izvedbo preverjanja je branje bloka ene datoteke, nato isti blok iz druge datoteke, primerjava, nato ponovite, dokler ne dosežete konca datoteke. V tem primeru boste videli, da se LED-lučki obeh pogonov izmenjujeta naprej in nazaj.

    Seveda, če trdi disk in optični pogon nimajo LED, potem to ne bo tako očitno. Ampak še vedno ga lahko vidite z nekaj podobnim, kot je ProcessMonitor, ker bo zabeležil vrsto odčitkov iz ene, nato pa druge bodisi v eni, veliki burst ali izmenični, majhni rafali..

    • Predvidevam, da je to nekakšna primerjava med izvirnimi datotekami in datotekami, ki so bile zapisane na disku, toda ali kdo ve, kako je to res narejeno na nizki ravni?

    Pravzaprav je vse, kar res počne, izprazniti predpomnilnik pogona, tako da funkcija primerjave bere podatke iz dejanskega diska namesto iz predpomnilnika pomnilnika. Očitno je to kritičen korak, ker če se preverjanje izvede iz predpomnilnika, potem ne predstavlja tistega, kar je dejansko na disku, zato se lahko korupcija zlahka prevrne..

    Vidite lahko, ali je primerjava izvedena s pogona ali iz predpomnilnika v pomnilniku RAM, tako hitro, kako hitro se to zgodi. Če ročno naredite preprosto primerjavo (tj. Z WinDiff, WinMerge ali z razpršitvijo z orodjem za razprševanje), boste opazili, da se primerjava dogaja veliko hitreje, kot je bilo pričakovano, ker bere datoteke iz predpomnilnika pomnilnika. Predpomnilnik morate izprazniti, da ga boste lahko brali iz dejanskega diska. Za optične pogone (in druge izmenljive medije, kot so flash-pogoni in pomnilniške kartice), je preprosto izvrženje pogona dovolj za izpiranje predpomnilnika, vendar za trde diske ni skoraj tako enostavno (čeprav to običajno ni pomembno, ker nova kopija je tista, ki jo želite preskusiti).


    Imate kaj dodati pojasnilu? Zvok v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.