Ce înseamnă Verificați discul în mod efectiv după ardere pentru a verifica datele?
Caracteristica "Verificați discul" este excelentă pentru a vă asigura că discul proaspăt ars bine, dar cum funcționează exact? Postul de astăzi SuperUser Q & A are răspunsul la o întrebare curioasă a cititorului.
Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.
Fotografie prin amabilitatea lui cobalt123 (Flickr).
Intrebarea
Utilizatorul cititorului de SuperUser1301428 dorește să știe cum sunt verificate discurile după ce sunt arse:
Ce verifică discul după ardere, de fapt, pentru a verifica datele? Îmi imaginez că este un fel de comparație între fișierele originale și fișierele care au fost arse pe disc, dar știe cineva cum este într-adevăr făcut la un nivel scăzut?
Adică, creează un hash al conținutului sursă și al destinației, apoi le compară? Dacă da, stochează conținutul ars din RAM? Sau o salvează într-un fișier temporar de pe hard disk? Există un fișier de jurnal pentru ceea ce se întâmplă?
Doar curios să știu exact cum funcționează această funcție. Și mă refer la Windows Image Burner.
Cum funcționează procesul de verificare a discurilor?
Răspunsul
Contribuitorii super-utilizatorilor Frank Thomas și Synetech au răspunsul pentru noi. În primul rând, Frank Thomas:
Consultați aceste pagini MSDN pe ferestrele API pentru interfața IBurnVerification și enum pentru IMAPI_BURN_VERIFICATION_LEVEL.
Pentru discurile de date, se pare că în modul rapid nu se controlează întregul disc, doar o selecție de sectoare. Apoi asigură că API-ul solicită READ_DISC_INFO și READ_TRACK_INFO să reușească împotriva noului disc.
Pentru verificarea completă, efectuează verificările de mai sus, apoi efectuează o sumă completă de verificare a ultimei sesiuni de pe noul disc față de o sumă de control calculată pe fluxul de memorie care este ars. Sumele de control trebuie să fie stocate în ram, dar sunt probabil valori scurte de viață. Rețineți că comparația este împotriva imaginii discului în memoria RAM, nu a mediului în sine, deci dacă datele sursă nu au citit corect, acesta va fi scris în mod incorect. Verificarea nu va detecta acest lucru.
Pentru discurile muzicale, se concentrează pe verificarea READ_TRACK_INFO și a discului de conținut, dar nu efectuează un calcul al sumelor de control. Nu există niciun mod complet de verificare pentru muzică.
Urmat de răspunsul de la Synetech:
Frank a explicat frumos verificarea specifică Windows. Voi da un răspuns mai general.
- Ce face verificați discul după ardere, pentru a verifica datele?
- Adică, creează un hash al conținutului sursă și al destinației, apoi le compară? Dacă da, stochează conținutul ars din RAM? Sau o salvează într-un fișier temporar de pe hard disk? Există un fișier de jurnal pentru ceea ce se întâmplă?
Aceasta este cu siguranță o metodă în care o comparație poate fi implementată: un fișier hash (sperăm că există o probabilitate mică de citire suficient de mare pentru algoritmul de coliziune), repetați pentru celălalt și comparați hashes. Dacă aceasta este modul în care este implementată o verificare, atunci veți putea vedea blițul cu LED-uri pentru o vreme, apoi blițul CD / DVD-ul se aprinde o clipă.
O altă modalitate de a implementa verificarea este citirea unui bloc dintr-un fișier, apoi același bloc din celălalt fișier, compararea acestora, apoi repetarea până la sfârșitul fișierului. În acest caz, veți vedea LED-urile celor două unități alternând înainte și înapoi.
Desigur, dacă unitatea hard disk și unitatea optică nu au LED-uri, atunci nu va fi așa de evidentă. Dar puteți să-l vedeți în continuare cu ceva asemănător cu ProcessMonitor, deoarece va înregistra o serie de citiri de la unul la altul, apoi celălalt, fie într-o explozie unică, mare sau alternantă, mică.
- Îmi imaginez că este un fel de comparație între fișierele originale și fișierele care au fost arse pe disc, dar știe cineva cum este într-adevăr făcut la un nivel scăzut?
De fapt, tot ceea ce face cu adevărat este să ștergeți memoria cache a unității, astfel încât funcția de comparație să citească datele de pe discul actual în loc de memoria cache a memoriei. Evident, acesta este un pas critic deoarece, dacă verificarea se face din cache, atunci nu reprezintă ceea ce este de fapt pe disc, astfel încât corupția poate ușor aluneca prin.
Puteți vedea dacă o comparație se face de la unitate sau din memoria cache în memoria RAM cu cât de repede se întâmplă. Dacă faceți manual o simplă comparație (adică cu WinDiff, WinMerge sau prin hashing-ul acestora cu un instrument hashing), veți observa că comparația se întâmplă mult mai repede decât se aștepta, deoarece citește fișierele din cache-ul de memorie. Trebuie să spălați memoria cache pentru al forța să citească de pe discul real. Pentru unitățile optice (și alte medii amovibile cum ar fi unitățile flash și cardurile de memorie), pur și simplu scoaterea unității este suficientă pentru a spăla memoria cache, dar pentru hard-discuri, nu este la fel de simplă (deși, de obicei, copia nouă este cea pe care doriți să o testați).
Aveți ceva de adăugat la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.