Mitä verifioi todentamisen jälkeen?
'Tarkista levy' -ominaisuus on hyvä, kun varmistat, että juuri poltettu levy paljastui hyvin, mutta miten se toimii? Tämän päivän SuperUser Q&A -postissa on vastaus utelias lukijan kysymykseen.
Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..
Kuva: cobalt123 (Flickr).
Kysymys
SuperUser-lukija user1301428 haluaa tietää, miten levyt todennetaan polttamisen jälkeen:
Mitä tarkistaa levyn polttamisen jälkeen todellakin tietojen tarkistamiseksi? Kuvittelen, että se on jonkinlainen vertailu alkuperäisiin tiedostoihin ja levylle poltettuihin tiedostoihin, mutta tiedetäänkö kukaan, miten se todella tapahtuu matalalla tasolla?
Tarkoitan, luoeko se lähde- ja kohde-sisällön hajautuksen ja vertaa niitä sitten? Jos näin on, säilyttääkö se poltetun sisällön hajautuksen RAM-muistiin? Tai tallennetaanko se tilapäiseen tiedostoon kiintolevyllä? Onko olemassa lokitiedosto siitä, mitä tapahtuu?
Vain utelias tietää, miten tämä ominaisuus toimii. Viittaan Windows Image Burneriin.
Miten levyn vahvistusprosessi toimii?
Vastaus
SuperUserin avustajat Frank Thomas ja Synetech ovat vastaus meille. Ensinnäkin, Frank Thomas:
Tarkista nämä MSDN-sivut Windows API: ssa IBurnVerification-käyttöliittymälle ja IMAPI_BURN_VERIFICATION_LEVEL.
Tietolevyjen tapauksessa se näyttää pikatoiminnossa, ettei se tarkista koko levyä, vain valikoima aloja. Sen jälkeen varmistetaan, että API kutsuu READ_DISC_INFO ja READ_TRACK_INFO onnistumaan uudella levyllä.
Täydellisen tarkistuksen suorittamiseksi se suorittaa edellä mainitut tarkistukset, ja tekee sitten täydellisen tarkistussumman uuden levyn viimeisestä istunnosta polttavan muistivirran laskettua tarkistussummaa vastaan. Tarkistussummat on tallennettava ramiin, mutta ne ovat todennäköisesti lyhytaikaisia arvoja. Huomaa, että vertailu on levyn kuvaa vastaan RAM-muistissa, ei itse lähdevälineessä, joten jos lähdetiedot eivät lukeneet oikein, se kirjoitetaan väärin. Vahvistus ei tunnista tätä.
Musiikkilevyjen kohdalla se keskittyy tarkistamaan READ_TRACK_INFO ja levyn sisällön, mutta ei suorita tarkistussumman laskemista. Musiikille ei ole olemassa täyttä varmennustilaa.
Synetechin vastausta seuraa:
Frank selitti hienosti Windows-erityistarkastusta. Annan yleisemmän vastauksen.
- Mitä tarkistaa levy polttamisen jälkeen todella tarkistaa tiedot?
- Tarkoitan, luoeko se lähde- ja kohde-sisällön hajautuksen ja vertaa niitä sitten? Jos näin on, säilyttääkö se poltetun sisällön hajautuksen RAM-muistiin? Tai tallennetaanko se tilapäiseen tiedostoon kiintolevyllä? Onko olemassa lokitiedosto siitä, mitä tapahtuu?
Tämä on varmasti yksi tapa, jolla vertailu voidaan toteuttaa: hash one file (toivottavasti riittävän suuri lukema matala mahdollisuus törmäysalgoritmiin), toista toiselle ja vertaa hashia. Jos näin tehdään, tarkistus toteutetaan, niin näet aseman LED-salaman jonkin aikaa, sitten CD / DVD-LED vilkkuu jonkin aikaa.
Toinen tapa toteuttaa varmentaminen on lukea yhden tiedoston lohko, sitten sama lohko toisesta tiedostosta, vertaa niitä, toista sitten, kunnes tiedoston loppu on saavutettu. Tällöin näet kahden aseman LEDit vuorotellen edestakaisin.
Tietenkin, jos kiintolevyllä ja optisella asemalla ei ole LEDiä, se ei ole yhtä ilmeinen. Mutta voit silti nähdä sen ProcessMonitorin kaltaisella tavalla, koska se kirjaa useita lukuja yhdestä, sitten toisesta joko yhdestä, suuresta purskeesta tai vuorotellen pienistä purskeista.
- Kuvittelen, että se on jonkinlainen vertailu alkuperäisiin tiedostoihin ja levylle poltettuihin tiedostoihin, mutta tiedetäänkö kukaan, miten se todella tapahtuu matalalla tasolla?
Itse asiassa kaikki on todella huuhdella taajuusmuuttajan välimuisti siten, että vertailutoiminto lukee tietoja varsinaiselta levyltä muistikortin sijaan. On selvää, että tämä on kriittinen askel, koska jos varmuuskopiointi tehdään välimuistista, se ei kuvaa sitä, mikä on levyllä, joten korruptio voi helposti liukua läpi.
Voit tarkastella, tehdäänkö RAM-muistista asemasta tai välimuistista vertailu kuinka nopeasti se tapahtuu. Jos teet manuaalisesti yksinkertaisen vertailun (toisin sanoen WinDiffin, WinMerge-ohjelman avulla tai hajauttamalla niitä hajauttamistyökalulla), huomaat, että vertailu tapahtuu paljon nopeammin kuin odotettiin, koska se lukee tiedostoja välimuistista. Voit pakottaa välimuistin pakottamaan sen lukemaan varsinaisesta levystä. Optisten asemien (ja muiden siirrettävien tietovälineiden, kuten flash-asemien ja muistikorttien) yksinkertainen poistaminen riittää välimuistin huuhteluun, mutta kiintolevyille se ei ole lähes yhtä helppoa (vaikka yleensä se ei ole väliä, koska uusi kopio on se, jonka haluat testata).
Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.