13Aug
Funkcja "Weryfikacja dysku" jest świetna, aby upewnić się, że świeżo spalony dysk dobrze się spisał, ale jak dokładnie działa? Dzisiejszy post SuperUser Q & A ma odpowiedź na ciekawe pytanie czytelnika.
Dzisiejsze pytanie &Sesja odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupy Q & A.
Zdjęcie dzięki uprzejmości cobalt123( Flickr).
Pytanie
Czytnik SuperUser user1301428 chce wiedzieć, w jaki sposób dyski są weryfikowane po ich wypaleniu:
Co sprawdza weryfikacja dysku po wypaleniu w celu weryfikacji danych? 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 ciekawa, jak dokładnie działa ta funkcja. Mam na myśli Windows Image Burner.
Jak działa proces weryfikacji dysku?
Odpowiedź Odpowiedzi
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.
Dla dysków z danymi wygląda na to, że w trybie szybkim nie sprawdza sumy całego dysku, tylko wybranych 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 sprawdzenia, 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.
Po odpowiedzi od Synetech:
Frank ładnie wyjaśnił weryfikację specyficzną dla systemu Windows. Dam bardziej ogólną odpowiedź.
- Co oznacza weryfikacja dysku po wypaleniu w rzeczywistości 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, małych seriach.
- Wyobrażam sobie, że to jakieś porównanie oryginalnych plików z plikami nagranymi na płycie, ale czy ktoś wie, jak to naprawdę jest zrobione na niskim poziomie?
Właściwie tak naprawdę jest tylko opróżnianie pamięci podręcznej dysku, aby funkcja porównująca 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 rzeczywistej płyty. 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 chcesz coś dodać 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.