If-Koubou

Co właściwie robi "Zweryfikuj płytę" po wypaleniu w celu zweryfikowania danych?

Co właściwie robi "Zweryfikuj płytę" po wypaleniu w celu zweryfikowania danych? (Jak)

Funkcja "Weryfikacja dysku" jest świetna, aby upewnić się, że świeżo spalony dysk dobrze się spisał, ale jak dokładnie działa? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na ciekawe pytanie czytelnika.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.

Zdjęcie dzięki uprzejmości cobalt123 (Flickr).

Pytanie

Czytnik SuperUser user1301428 chce wiedzieć, w jaki sposób dyski są weryfikowane po wypaleniu:

Co sprawdza weryfikacja dysku po wypaleniu, aby zweryfikować dane? Wyobrażam sobie, że jest to pewnego rodzaju porównanie oryginalnych plików z plikami nagranymi na płycie, ale czy ktoś wie, jak to naprawdę działa na niskim poziomie?

Mam na myśli, czy tworzy on skrót zawartości źródłowej i docelowej, a następnie porównuje je? Jeśli tak, czy zapisuje hasz spalonej zawartości w pamięci RAM? Czy może zapisać go w pliku tymczasowym na dysku twardym? Czy istnieje plik dziennika, co się dzieje?

Po prostu ciekawy, jak dokładnie działa ta funkcja. Mam na myśli Windows Image Burner.

Jak działa proces weryfikacji dysku?

Odpowiedź

Współautorzy SuperUser, Frank Thomas i Synetech, mają dla nas odpowiedź. Po pierwsze, Frank Thomas:

Sprawdź te strony MSDN w interfejsie API systemu Windows dla interfejsu IBurnVerification i enum IMAPI_BURN_VERIFICATION_LEVEL.

W przypadku dysków z danymi wygląda na to, że w trybie szybkim nie sprawdza sumy całego dysku, tylko selekcji sektorów. Następnie zapewnia, że ​​interfejs API wywoła READ_DISC_INFO i READ_TRACK_INFO, aby odnieść sukces na nowej płycie.

W celu pełnej weryfikacji wykonuje powyższe testy, a następnie wykonuje pełną sumę kontrolną ostatniej sesji na nowej płycie względem sumy kontrolnej obliczonej na nagrywanym strumieniu pamięci. Sumy kontrolne muszą być przechowywane w pamięci RAM, ale prawdopodobnie są to wartości krótkotrwałe. Należy zauważyć, że porównanie dotyczy obrazu dysku w pamięci RAM, a nie samego nośnika źródłowego, więc jeśli dane źródłowe nie były poprawnie czytane, zostanie ono zapisane niepoprawnie. Weryfikacja tego nie wykryje.

W przypadku dysków muzycznych koncentruje się na sprawdzeniu READ_TRACK_INFO i zawartości dysku, ale nie wykonuje obliczenia sumy kontrolnej. Nie ma trybu pełnej weryfikacji muzyki.

Następująca odpowiedź od Synetech:

Frank dokładnie wyjaśnił weryfikację specyficzną dla systemu Windows. Dam bardziej ogólną odpowiedź.

  • Co robi weryfikacja dysku po wypaleniu w celu weryfikacji danych?
  • Mam na myśli, czy tworzy on skrót zawartości źródłowej i docelowej, a następnie porównuje je? Jeśli tak, czy zapisuje hasz spalonej zawartości w pamięci RAM? Czy może zapisać go w pliku tymczasowym na dysku twardym? Czy istnieje plik dziennika, co się dzieje?

Jest to z pewnością jeden ze sposobów, w jaki można zaimplementować porównanie: hasza jeden plik (miejmy nadzieję, z wystarczająco dużą szansą na małe prawdopodobieństwo algorytmu kolizji), powtórzyć dla drugiego i porównać hasze. Jeśli tak właśnie zaimplementowano weryfikację, przez chwilę będzie można zobaczyć flash LED napędu, a następnie dioda CD / DVD-LED będzie migać przez chwilę.

Innym sposobem wdrożenia weryfikacji jest odczytanie bloku jednego pliku, a następnie tego samego bloku z drugiego pliku, porównanie ich, a następnie powtarzanie aż do końca pliku. W takim przypadku diody LED obu napędów będą się zmieniały naprzemiennie.

Oczywiście, jeśli dysk twardy i napęd optyczny nie mają diod LED, nie będzie to tak oczywiste. Ale nadal można go zobaczyć za pomocą czegoś takiego jak ProcessMonitor, ponieważ rejestruje on serię odczytów z jednego, a następnie drugiego w jednej, dużej serii lub na przemian, w małych seriach.

  • Wyobrażam sobie, że jest to pewnego rodzaju porównanie oryginalnych plików z plikami nagranymi na płycie, ale czy ktoś wie, jak to naprawdę działa na niskim poziomie?

Właściwie, tak naprawdę polega tylko na przepłukiwaniu pamięci podręcznej dysku, tak aby funkcja porównania odczytywała dane z rzeczywistej płyty zamiast z pamięci podręcznej. Oczywiście jest to krok krytyczny, ponieważ jeśli weryfikacja odbywa się z pamięci podręcznej, to nie odzwierciedla to, co faktycznie znajduje się na dysku, więc korupcja może łatwo się przedostać.

Możesz sprawdzić, czy porównanie odbywa się z dysku lub z pamięci podręcznej w pamięci RAM, jak szybko występuje. Jeśli ręcznie dokonasz prostego porównania (tj. Z WinDiff, WinMerge lub poprzez mieszanie ich za pomocą narzędzia mieszającego), zauważysz, że porównanie odbywa się znacznie szybciej niż oczekiwano, ponieważ odczytuje pliki z pamięci podręcznej. Musisz wyczyścić pamięć podręczną, aby wymusić jej odczyt z dysku. W przypadku napędów optycznych (i innych nośników wymiennych, takich jak dyski flash i karty pamięci), wystarczy wyrzucić dysk, aby opróżnić pamięć podręczną, ale w przypadku dysków twardych nie jest to prawie tak proste (choć zwykle to nie ma znaczenia, ponieważ nowa kopia jest tą, którą chcesz przetestować).

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.