Bad sectors:
Na początek mam pytanie: czy ktoś formatował dyski IDE na poziomie low-level (obecnie lub KIEDYKOLWIEK) i z jakim rezultatem? Kieruje mną czysta ciekawość.
Obecna technologia HDD używa szeregu technik w celu uzyskania maksymalnego stopnia wyeliminowania błędów zapis/odczyt. Odbywa się to na poziomie kontrolera dysku (czyt. kontrolera na samym dysku a nie kontrolera HDD na płycie głównej). Poważniejsze błędy nie są przywracane do ponownego użytku lecz są zapisywane w tablicy kontrolera dysku (w rejestrach kontrolno-diagnostycznych, rejestrach błędu itd.) i albo zastępowane są zapasowymi sektorami ze ścieżek bardziej centralnych (wewnętrznych) albo eliminowane kompletnie z użycia. Monitoring i ewentualna korekcja ECC (Error Correction Code) odbywa się "on-the-fly" czyli "w locie" i poprzedza każdą operację zapis/odczyt sektorów. Dzieje się to zanim system operacyjny otrzyma do nich dostęp. Strata pojemności dysku wskutek procesu korekcji uszkodzonych sektorów jest w praktyce niezauważalna.
Dysków IDE NIE WOLNO formatować na poziomie niskim tzw. low-level format. Tak można było postępować z dyskami z epoki 20MB-owej. Każda sformatowana ścieżka zawiera specyficzne dane, które są konstruowane na poziomie formatowania przez producenta dysku, w tym informacje kalibracyjne dla każdego sektora, informacje servo itd. Użycie ogólnie dostępnych programów do formatowania na poziomie low-level niszczy te informacje i czyni ten dysk bezużytecznym. Tylko producent danego dysku wie dokładnie jakie dane muszą być zapisane w obszarze kontrolnym sektora aby dysk funkcjonował prawidłowo.O tym przestrzega kaźdy producent dysków - jeśli ktoś postępuje inaczej to gra w rosyjką ruletkę. Chyba, że nia ma już nic do stracenia (ale na takim dysku nie odważyłbym sie już skopiować danych z ostatnich 10 lat mojej pracy).
Tzw. "soft errors" tj. błędy korygowalne na poziomie systemu operacyjnego stanowią odrębną grupę i do nich zaliczają się błędy typu "bad sectors". Do ich korekcji służą narzędzia DOS-owskie i Windows SCANDISK. Formatowanie high-level na poziomie DOS-u lub Windows również usuwa nowo powstałe wadliwe sektory (tzn. zaznacza je jako wadliwe i nie przywraca do ponownego użycia - z pewnymi wyjątkami, w zależności od użytej wersji DOS-u i opcji).
Wadliwe sektory (wykrywane na poziomie OS) są zapisywane wartościami FFF7h a ich adres odnotowywany jest w tablicy FAT (File Allocation Table). Na tej podstawie DOS lub Windows wie, że musi pominąć te sektory przy próbie alokacji nowych sektorów podczas operacji zapisu plików na dysku. Najlepszym sposobem na sprawdzenie i ewentualne usunięcie wadliwych sektorów jest użycie systemowego SCANDISK a jeszcze lepiej z wybraną opcją ADVANCED i zaznaczeniem okienka z opcją wykrycia i naprawy wadliwych sektorów - dokładnie to już zależy od wersji Windows.
Również CHKDSK z opcją /F ("Fix" - napraw) jest w stanie w wielu przypadkach usunąć z użycia tego typu "miękkie błędy". Formatowanie normalnie nie przywraca do użycia (choć może) już wcześniej wykrytych wadliwych sektorów. Z tym, że jeśli podczas formatowania dodamy opcję wykasowania oryginalnej listy wadliwych sektorów z FAT (próba przywrócenia wadliwych sektorów do ponownego użycia) a te sektory są autentycznie wadliwe, to w procesie formatowania zostaną one ponownie oznaczone przez OS jako wadliwe i wyłączone z obiegu. I tu nie należy mylić terminu GEL (Grown Error List - używana w starszej technologii HDD) i wspomnianym już we wcześniejszym poście kol. Jaca, z tablicą FAT, gdzie znajduje się informacja o lokalizacji sektorów zawierających zarówno dane jak i wartości FFF7h odpowiadające wadliwym sektorom.
W przeszłości GEL był dostarczany jak wydruk albo nawet naklejony na samym dysku i należało podczas jednego z etapów formatowania nisko-poziomowego wprowadzić ręcznie informacje o nowo wykrytych błędnych sektorach do tej tablicy GEL zapisywanej później na HDD po zakończonym procesie formatowania nisko-poziomowego aby uniknąć możliwości zapisania danych na nieużytecznych sektorach.
Dla mniej zaznajomionych z tematem:
Jeśli chodzi o inne narzędzia to Norton Disk Doctor (NDD.EXE), CPS FixDisk i szereg innych firm dostarcza programów, które są w stanie zlokalizować i usunąć wadliwe obszary na dysku. Chodzi tu podkreślam, o zaznaczenie tych sektorów w tablicy FAT jako nieużytecznych - niektóre programy testują takie sektory i próbują z powrotem przywrócić je systemowi operacyjnemu do użytku. Nie zawsze jest to dobra idea. Z jednym wyjątkiem: jeśli program "poszedł w las" i BŁĘDNIE zapisał tablicę FAT długą listą wadliwych sektorów, które NIE SA WADLIWE, to wtedy można stracić duży procent pojemności dysku nie z powodu jego wadliwego działania ale z powodu wadliwego działania oprogramowania. Wtedy programy typu NDD.EXE próbują przywrócić systemowi operacyjnemu te BŁĘDNIE usunięte i rzekomo wadliwe sektory. Format (bez odpowiedniej opcji) po prostu je pominie.
Jeśli mamy do czynienia z poważniejszymi przekłamaniami na dysku, których nie dało się skorygować na poziomie narzędzi systemowych, wtedy należy zwrócić uwagę na narzędzia, które są dostępne od producentów dysków. Western Digital np. ma swoje oprogramowanie diagnostyczne Data LifeGuard, Maxtor używa oprogramowania firmy Ontrack a Seagate swój diagnostyczny program SeaTools - nie wszystkie pozwalają na dokonywanie zmian na dysku. Zazwyczaj nie można stosować tych programów zamiennie (odradzają tego zresztą sami producenci z przyczyn oczywistych - nie jest bowiem możliwe stworzenie uniwersalnego i niezawodnego programu do wszystkich rodzajów dysków).
Warto przy tej okazji wspomnieć o nowszych dyskach, które stosują technologię S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology). Jest to technika mająca na celu wczesne wykrywanie przewidywalnych problemów jakie mogą wystąpić w trakcie eksploatacji dysku ale niestety nie ma ona nic wspólnego z zapobieganiem wystąpienia błędów lecz raczej z wczesnym ostrzeganiem, iż dysk nie pracuje w granicach ścisłych norm narzuconych przez producenta w związku z czym stopień prawdopodobieństwa awarii dysku może wykraczać poza założone granice bezpieczeństwa.
I jeszcze jedno - te wszystkie narzędzia systemowe (SCANDISK itd.) nie tylko nie formatują, czyli nie niszczą danych ale wręcz odwrotnie - mogą przyczynić się do odzyskania danych, które moglibyśmy już uznać za stracone. Chociaż nie ma gwarancji oczywiście, że odbędzie się to bezproblemowo i bez przekłamań danych z odzyskanych wadliwych sektorów. Próbować warto. I tu w sposób naturalny nasuwa się zakończenie tego referatu:
ZAWSZE zrób kopię ważnych danych na inny dysk przed przystąpieniem do jakiejkolwiek operacji testowania/korygowania ewentualnych błędów na dysku. O konsekwencjach nieprzestrzegania tego typu ostrzeżeń nie muszę już chyba pisać. A dobry back-up rób regularnie niezależnie od tego jak drogi i dobry posiadasz dysk!
A co do przyczyn powstawania błędów to często jesteśmy winni sami sobie. Wyłączanie komputera w trakcie wykonywania operacji zapis/odczyt (no bo przecież komputer się "zawiesił" - ale LED HDD w tym samym czasie aż "czerwony z przegrzania"), próby przesunięcia komputera "tylko o parę centymetrów" - też w momencie kiedy komputer ładuje z HDD Twoją ulubioną tapetę windosowską, wygaszacz ekranu, czy tez zapisuje trochę przydługi plik Excela, itd. itp. Już nie wspomnę o uderzaniu pięścią - w momentach desperacji - w stół, na którym stoi nasz "ukochany" PC.
Pozdrawiam i dziękuję za uwagę