Što zapravo znači Provjera diska nakon snimanja za provjeru podataka?
Značajka "provjerite disk" je odlična za osiguravanje da je vaš svježe izgorjeli disk dobro ispao, ali kako točno funkcionira? Današnja postova s pitanjima o odgovorima korisnika imaju odgovor na pitanje znatiželjnog čitatelja.
Današnja sesija pitanja i odgovora dolazi nam ljubaznošću SuperUser-a, podjele Stack Exchangea, grupiranja web-lokacija za pitanja i odgovore u zajednici.
Fotografija ljubaznošću cobalt123 (Flickr).
Pitanje
Čitač korisnika SuperUser user1301428 želi znati kako se diskovi provjeravaju nakon snimanja:
Što zapravo provjerava disk nakon spaljivanja radi provjere podataka? Pretpostavljam da je to neka vrsta usporedbe između izvornih datoteka i datoteka koje su snimljene na disku, ali zna li itko kako se to radi na niskoj razini?
Mislim, stvara li hash izvornog i odredišnog sadržaja, a zatim ih uspoređuje? Ako je tako, pohranjuje li hash snimljenog sadržaja u RAM-u? Ili ga sprema u privremenu datoteku na tvrdom disku? Postoji li zapisnik onoga što se događa?
Samo sam znatiželjan kako točno funkcionira ova značajka. I ja sam se odnosi na Windows Image Burner.
Kako funkcionira proces provjere diska?
Odgovor
Suradnici superkorisnika Frank Thomas i Synetech imaju odgovor za nas. Prvo gore, Frank Thomas:
Pogledajte ove MSDN stranice na Windows API-ju za IBurnVerification sučelje i IMAPI_BURN_VERIFICATION_LEVEL enum.
Za podatkovne diskove, čini se da u brzom načinu rada ne provjerava cijeli disk, već samo izbor sektora. Zatim osigurava da API pozivi READ_DISC_INFO i READ_TRACK_INFO uspiju na novom disku.
Za potpunu provjeru, izvršava gore navedene provjere, a zatim vrši punu provjeru zbroja na posljednjoj sesiji na novom disku protiv kontrolnog zbroja izračunatog na memorijskom toku koji se spaljuje. Kontrolni zbrojevi moraju biti pohranjeni u ramu, ali su vjerojatno kratkotrajne vrijednosti. Imajte na umu da je usporedba u odnosu na sliku diska u RAM-u, a ne na sam izvorni medij, pa ako izvorni podaci nisu ispravno pročitani, to će biti pogrešno napisano. Potvrda to neće otkriti.
Za glazbene diskove, on se fokusira na provjeru READ_TRACK_INFO i tablice sadržaja diska, ali ne izvodi kalkulaciju. Nema punog načina provjere za glazbu.
Slijedi odgovor iz Synetech:
Frank je lijepo objasnio provjeru specifičnu za Windows. Ja ću dati općenitiji odgovor.
- Što provjerava disk nakon spaljivanja zapravo radi kako bi provjerili podatke?
- Mislim, stvara li hash izvornog i odredišnog sadržaja, a zatim ih uspoređuje? Ako je tako, pohranjuje li hash snimljenog sadržaja u RAM-u? Ili ga sprema u privremenu datoteku na tvrdom disku? Postoji li zapisnik onoga što se događa?
To je svakako jedan od načina na koji se može provesti usporedbu: hash jedna datoteka (nadamo se s dovoljno velikim čitanjem niske šanse algoritma kolizije), ponovite za drugu i usporedite hasheve. Ako je tako provedena provjera, moći ćete neko vrijeme vidjeti LED-bljeskalicu pogona, a zatim CD / DVD-LED bljeskati neko vrijeme.
Drugi način provođenja provjere je čitanje bloka jedne datoteke, zatim istog bloka iz druge datoteke, usporedba, zatim ponavljanje dok se ne dostigne kraj datoteke. U tom slučaju, vidjet ćete LED-ove dva pogona naizmjenično naprijed-natrag.
Naravno, ako tvrdi disk i optički pogon nemaju LED, onda to neće biti tako očito. Ali još uvijek ga možete vidjeti s nečim poput ProcessMonitora jer će zabilježiti niz čitanja iz jednog, zatim drugog u jednom, velikom ili izmjeničnom, malom izbijanju.
- Pretpostavljam da je to neka vrsta usporedbe između izvornih datoteka i datoteka koje su snimljene na disku, ali zna li itko kako se to radi na niskoj razini?
Zapravo, sve što uistinu radi jest ispiranje predmemorije pogona tako da funkcija usporedbe čita podatke sa stvarnog diska umjesto iz memorije. Očito je to kritičan korak jer ako se provjera vrši iz predmemorije, ona ne predstavlja ono što je zapravo na disku, pa se korupcija može lako probiti.
Možete vidjeti da li se usporedba radi s pogona ili iz predmemorije u RAM-u po brzini. Ako ručno napravite jednostavnu usporedbu (tj. S WinDiffom, WinMergeom ili raspršivanjem pomoću alata za raspršivanje), primijetit ćete da se usporedba događa mnogo brže nego što se očekivalo jer čita datoteke iz predmemorije memorije. Morate isprazniti predmemoriju kako biste je prisilili na čitanje s samog diska. Za optičke pogone (i druge prijenosne medije kao što su flash-pogoni i memorijske kartice), jednostavno izbacivanje pogona dovoljno je za ispiranje predmemorije, ali za tvrde diskove, nije ni približno tako jednostavno (iako to obično nije važno jer nova kopija je ona koju želite testirati).
Imate li što dodati objašnjenju? Zvuk isključen u komentarima. Želite li pročitati više odgovora od drugih tehničkih korisnika Stack Exchangea? Pogledajte cjelokupnu temu za raspravu ovdje.