Skąd narzędzia diagnostyczne dysku twardego wiedzą, czy sektor jest zły?

13

Kiedy napotykam dysk twardy, który może ulec awarii, skanuję go za pomocą ViVARD , co niezawodnie informuje mnie, czy dysk wymaga wymiany.

Jak działają tego rodzaju narzędzia? Jak mogą odróżnić zły sektor od dobrego sektora?

David
źródło
4
Takie oprogramowanie odczytuje każdy sektor na dysku. Jeśli jest nieczytelny, może spróbować kilku sztuczek, aby go odczytać, jeśli wystarczająca ilość danych w sektorze jest nieczytelna i niemożliwa do odzyskania, oznacza to, że jest zła.
Moab
2
Oprogramowanie układowe im nie mówi. Sposób działania dysku twardego od tego momentu zmienił się drastycznie w ciągu 25 lat, a nawet w ciągu ostatnich 5 lat.
qasdfdsaq

Odpowiedzi:

9

Nowoczesne dyski twarde implementują system w oprogramowaniu o nazwie SMART . Ten system zbiera statystyki dotyczące wydajności dysku i automatycznie zapobiega utracie danych poprzez przenoszenie danych z uszkodzonych sektorów.

Narzędzia diagnostyczne odpytują oprogramowanie SMART dysku twardego, aby utworzyć raport z kontroli stanu.

Uszkodzone sektory są wykrywane podczas uzyskiwania dostępu do dysku twardego i są unikane i przenoszone przez system SMART.

Stavr00
źródło
1
nowoczesne, ale było to całkowicie możliwe i powszechne nawet bez nich.
eis
7

Nie znam ViVARD, więc jest to ogólna odpowiedź.

MĄDRY

SMART jest częścią najnowocześniejszych dysków. Rejestruje się, gdy dysk twardy widzi uszkodzony sektor, gdy czas wyszukiwania lub rozruchu jest dłuższy niż zwykle. Są to wszystkie wskaźniki awarii dysku twardego.

Sposób, w jaki dysk twardy ratuje uszkodzony sektor, wynika z kodów korygujących błędy (zwykle jest to Reed-Solomon), które mogą uratować, jeśli kilka bitów jest błędnych. Jeśli wiele bitów jest błędnych, dysk twardy próbuje odzyskać dane, odczytując sektor w kółko. Kiedy wreszcie wszystko się uda, zapisuje go w jednym z wolnych sektorów.

Sektor czytania

Dysk twardy przenosi sektory z błędami odczytu do zestawu zapasowych sektorów, które są do tego zarezerwowane. System operacyjny zwykle tego nie widzi, ale widzi, że cały dysk nie zawiera błędów. Tylko wtedy, gdy nie będzie już więcej sektorów do przeniesienia (lub sektora nie można odzyskać), system operacyjny zobaczy uszkodzone sektory.

Ale można ominąć korekcję błędów (uważam, że jest różna dla każdego modelu - może ViVARD to robi?). W ten sposób możesz odczytać rzeczywiste dane na dysku. Czytając to, będziesz mógł zobaczyć, które sektory zawierają błędy - nawet jeśli system operacyjny nie widzi błędów.

Ole Tange
źródło
0

Użyj SMART Producenci dysków twardych powinni pobrać oprogramowanie na ich stronę internetową. Podczas korzystania ze SMART - uruchom pełne skanowanie.

roberthayek
źródło
-1

Gdybym miał napisać taki program diagnostyczny, mój program przejrzałby napęd sektor po sektorze według następującej procedury:

  1. Przenieś dane aktualnie w sektorze do nowej (obecnie pustej) lokalizacji w celu zachowania (i zaktualizuj tabele plików, które korzystały z tego sektora).
  2. Napisz znane nowe dane do sektora.
  3. Przeczytaj zapisane dane z sektora.
  4. Porównanie zostało napisane bit po bicie z tym, co zostało przeczytane.
  5. (Zakładając, że krok 4 przeszedł) Przenieś oryginalne dane z powrotem do oryginalnej lokalizacji (aby uniknąć fragmentacji plików).

Oczywiście to tylko naiwna wersja. Podejrzewam, że istnieją algorytmy, które usprawniają ten ogólny proces. Ponadto istnieją różne wzorce używane przez narzędzia do „znanych nowych danych” oraz różne poziomy powtarzalności.

Joel Coehoorn
źródło