13Aug

Mida tähendab "Kontrollige plaati" tegelikult pärast põletamist andmete kinnitamiseks?

"Kontrolli ketas" funktsioon on suurepärane, et veenduda, et teie värskelt põletatud ketas osutus hästi välja, kuid kuidas täpselt see töötab? Tänane SuperUser Q & postitus on vastuseks uudishimulikule lugeja küsimusele.

tänapäeva küsimus &Vastuste seanss tuleb meile viisakalt SuperUseriga - Q & A veebisaitide kogukonnapõhise grupi Stack Exchange jagunemisest.

Photo courtesy of cobalt123( Flickr).

Küsimus

SuperUser-lugeja user1301428 tahab teada, kuidas kettaid pärast nende põletamist kontrollitakse:

Mida kontrollib ketast pärast põletamist tõesti andmete kinnitamiseks? Ma kujutan ette, et see on mingi võrdlus algsete failide ja kettale põletatud failide vahel, kuid kas keegi teab, kuidas seda tegelikult teha madalal tasemel? Kas see tähendab, et see loob ressursi lähte- ja sihtkoha sisust, siis võrrelda neid? Kui nii, kas see salvestab raputatud põletatud sisu räsi? Või kas see salvestatakse ajutisse faili kõvakettale? Kas seal on logifail, mis toimub?

Ainult uudishimulik teada täpselt, kuidas see funktsioon toimib. Ja ma viitan Windows Image Burnerile.

Kuidas plaat kontrollimise protsess toimib?

Vastused

SuperUseri kaasautoritele Frank Thomas ja Synetech saavad meile vastuse. Esiteks üles, Frank Thomas:

Vaadake neid MSDN-i lehekülgi IBurnVerificationi liidese Windowsi API-liideses ja IMAPI_BURN_VERIFICATION_LEVEL enumil.

Andmeplaatide puhul tundub see kiire režiimis, et see ei hõlma kogu ketta kontrollsummat, vaid ainult sektorite valikut. Seejärel veendub, et API nõuab READ_DISC_INFO ja READ_TRACK_INFO õnnestub uue plaadi vastu.

Täielikuks kontrollimiseks täidab see ülaltoodud kontrollimisi, seejärel salvestab uue ketta viimasel seansil täieliku kontrollsumma mälusiseselt välja arvutatud kontrollsumma. Kontrollsummasid tuleb ladustada ram, kuid need on tõenäoliselt lühiajalised väärtused. Pidage meeles, et võrdlus on RAM-i kettakujutises, mitte lähtekande meediumis ennast, nii et kui lähteandmed ei olnud korralikult lugeda, kirjutatakse see valesti. Kinnitus ei tuvasta seda.

Muusikavade jaoks keskendub see READ_TRACK_INFO ja ketta sisukorra kontrollimisele, kuid ei tee kontrollmahu arvutamist. Muusika jaoks pole täieliku kontrolli režiimi.

Järgnes Synetechi vastus:

Frank kirjeldas selgelt Windowsi spetsiifilist kinnitust. Annan üldisema vastuse.

  • Mida tõesti ketast pärast põletamist tegelikult teha andmete kontrollimiseks? Kas teed
  • , kas see loob lähte- ja sihtkoha sisu räsi, siis võrdleb neid? Kui nii, kas see salvestab raputatud põletatud sisu räsi? Või kas see salvestatakse ajutisse faili kõvakettale? Kas seal on logifail, mis toimub?

See on kindlasti üks viis, kuidas võrdlust saab rakendada: räsinud üks fail( loodetavasti koos piisavalt suure lugemisega vähese kokkupõrke algoritmi võimalusega), korrata teisi ja võrrelda hashid. Kui see on nii, kuidas kontrollimine rakendatakse, siis näete mõnda aega ajami LED-välklampi, siis mõnda aega vilgub CD / DVD-LED.

Veel üks viis kontrollimise teostamiseks on lugeda ühe faili plokki, siis teise faili sama plokki, võrrelda neid, seejärel korrake faili lõppu. Sellisel juhul näete kahe ajamiga LEDid, mis vahelduvad edasi-tagasi.

Muidugi, kui kõvakettale ja optilisele draivile pole LED-sid, siis pole see nii ilmselge. Kuid saate seda veel näha näiteks protsessimonitoriga, kuna see logib loendist ühe loendist, seejärel teine ​​kas ühes suurtes lõhkudes või vaheldumisi väikeste purunemistega.

  • Ma kujutan ette, et see on mingi võrdlus algsete failide ja kettale põletatud failide vahel, kuid kas keegi teab, kuidas seda tegelikult teha madalal tasemel?

Tegelikult on kõik tõepoolest tõrkepaagi tühjendamine nii, et võrdlusfunktsioon loeb andmeid tegelikust kettast, mitte aga mälu vahemalt. Loomulikult on see kriitiline samm, sest kui verifitseerimine tehakse vahemalt, siis ei kujuta see endast ketast tegelikult, seega võib korruptsioon kergesti libiseda.

Saate näha, kas võrdlus toimub draivi või RAM-i vahemälest, kui kiiresti see toimub. Kui teete käsitsi lihtsat võrdlust( st WinDiffiga, WinMergeiga või käsitsi hehingamise tööriista abil), siis näete, et võrdlus toimub oodatust palju kiiremini, kuna see loeb failid mälu vahemällu. Peate tühjendama vahemälu, et sundida seda lugema tegelikust plaadist. Optiliste draivide( ja muu eemaldatava kandja jaoks nagu välkmälu ja mälukaardid) puhul on kettaseadme tühjendamiseks piisav lihtsalt draivi väljavõtmine, kuid kõvaketaste puhul pole see peaaegu sama lihtne( kuigi tavaliselt pole see oluline, sestuus koopia on see, mida soovite testida).

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.