Błędy logiczne i logiczna struktura dysków twardych a kwestie odzyskiwania danych

Błędy logiczne związane są z występowaniem niespójności metadanych systemów plików z zawartością dysku twardego.

Kilka kwestii związanych ze strukturą logiczną dysków twardych

Sektory i klastry

Z punktu widzenia danych podstawową i najmniejszą komórką dysku, w której mogą zostać zapisane informacje jest sektor. Każdy sektor zawiera 512 bajtów. Sektory grupowane są w klastrach – każdy z nich może zawierać minimalnie jeden sektor. Wielkość klastra może być definiowana i stanowi parzystą wielokrotność sektora (1, 2, 4, 8… sektorów). Podczas zakładania i formatowania partycji system definiuje wielkość klastra biorąc pod uwagę rozmiar partycji – większa partycja większy klaster. W praktyce, biorąc pod uwagę obecne wielkości dysków, rozmiar klastra ustalany jest na poziomie 8. lub 16. sektorów.

Klastry powstały w celu szybszego odczytu plików. Przeciętnej długości informacja (plik) zawierała się w paru kilobajtach i w celu szybszego do niej dotarcia, postanowiono grupować sektory, które wypełniała. W ten sposób uniknięto czasochłonnego przeszukiwania sektorów rozrzuconych po różnych obszarach dysku w ramach odczytu jednego pliku. Tak więc, większe klastry zmniejszają fragmentację dysku oraz liczbę operacji mających na celu dotarcie do informacji, co wpływa na wzrost szybkości transferu. Na szybsze dotarcie do pliku ma również związany z klastrami sposób adresowania danych w systemie plików.

Klastrom przyznawane są kolejne numery – dzięki nim system plików ustala położenie klastra na dysku. System plików określa także maksymalną liczbę klastrów. Największy rozmiar partycji ustalany jest iloczynem liczby klastrów oraz ich wielkości.

Partycje, tablice partycji i systemy plików

Dane znajdujące się na dysku muszą zostać zorganizowane. Każdy dysk podzielony jest na partycje, które wypełnia odpowiednia ilość klastrów, zaś system plików odpowiednio nimi zarządza. Podstawową partycją dysku twardego jest partycja główna (primary). Tam właśnie instalowana jest większość popularnych systemów operacyjnych (ze względu na strukturę tablicy partycji istnieje możliwość zastosowania do czterech różnych systemów). Resztę przestrzeni dysku wypełnia partycja rozszerzona (extended) – w jej obrębie można utworzyć kolejne partycje (dyski logiczne). System plików (np. FAT 32 lub NTFS) jest logicznym opisem sposobu w jaki pogrupowane są klastry i sektory tworzące pliki oraz katalogi zapisane na dysku. Całości dopełnia tablica partycji tworzona podczas tzw. inicjalizacji będącej pierwszym etapem przygotowania dysku do pracy i zawierająca informacje o organizacji partycji na dysku.

Każda partycja systemowa zawiera w kolejności:

  • sektor zajmowany przez Master Boot Record, w którym zlokalizowany jest rekord ładujący (boot sector).
  • obszar zawierający informacje o rozmieszczeniu danych na partycji – są to tablice rozmieszczenia plików (File Allocation Table – FAT) określające położenie i wielkość plików na danej partycji.
  • katalog główny (root directory) zawierający nazwy plików oraz informacje o ich wielkości i pierwszym zajmowanym klastrze.
  • część partycji służącą do przechowywania danych.

Master Boot Record oraz Initial Program Loader

Pierwszy sektor na każdym dysku (Master Boot Record – MBR) zawiera tablicę partycji oraz Initial Program Loader (IPL – zwany również bootstrapem) – program sprawdzający informacje zawarte w tablicy partycji i uruchamiający system operacyjny z partycji, która ma włączoną tzw. flagę aktywności. Na 512 bajtów pierwszego sektora składają się:

  • 218 bajtów pierwszej części kodu startowego.
  • 216 lub 222 bajty drugiej części kodu startowego.
  • 6 bajtów przestrzeni przeznaczonej na timestamp (opcjonalnie).
  • 6 bajtów sygnatury dysku (opcjonalnie).
  • 2 bajty sygnatury boot sektora.
  • 4x16 bajtów tablicy partycji – możliwość czterech 16. bajtowych wpisów odpowiadająca maksymalnie czterem możliwym partycjom primary (cztery systemy operacyjne).

Większość współczesnych dysków używa MBR. Problemy pojawiają się jednak w przypadku dysków o pojemności powyżej 2 TB – tablica partycji nie jest w stanie ich adresować. Dla tak pojemnych dysków stworzony został inny system.

GPT

GPT (GUID Partition Table) jest następcą MBR przeznaczonym właśnie do obsługi dysków powyżej 2TB. Struktura tego standardu jest dwupoziomowa: tablicę partycji, mieszczącą się zazwyczaj w trzecim sektorze, opisują informacje znajdujące się w innym sektorze. Jest to partition table header umiejscowiony w drugim sektorze. W pierwszym sektorze nadal mieści się MBR – jego zadaniem jest jednak jedynie zapobiegania ewentualnym próbom nadpisania struktur GPE przez starsze narzędzia pomimo, że nie są w stanie prawidłowo ich zinterpretować.

Błędy logiczne a proces odzysku danych

Błędy logiczne dysku związane są najczęściej z uszkodzeniami systemu plików lub samych danych. Błędy tego typu występują przy pełnej sprawności mechanicznej i elektronicznej dysku i polegają na braku dostępu do danych.

Błędy logiczne ujawniają się na ogół w momencie stwierdzenia utraty danych, niemożności uruchomienia systemu bądź opóźnień jego startu, niepoprawnego działania oprogramowania. Błędy takie mogą mieć różną naturę – od błędnych wpisów w tablicy alokacji do utraty całego systemu plików.

Do podstawowych przyczyn występowania błędów logicznych należą:

  • uszkodzenie systemu plików
  • uszkodzenie pierwszego sektora (MBR)
  • działanie wirusów
  • sformatowanie dysku
  • skasowanie danych

Do błędów logicznych dochodzi często podczas operacji zapisu. Bezpośrednie przyczyny błędów zapisu związane są często z przerwaniem operacji w systemie plików i są efektem pewnych czynników fizycznych, do których należą np. awarie czy nieprawidłowości zasilania. Błędy następują wówczas z powodu niezapisania ostatnich zmian lub też nie ukończenia ich zapisywania.

Wśród rodzajów błędów logicznych możemy wyróżnić kilka występujących najczęściej:

  • skrzyżowane pliki – sytuacja taka występuje gdy dwie struktury opisujące pliki stwierdzają przynależność klastra do danego pliku.
  • zagubione klastry – występują wtedy gdy w strukturze bitmapowej znajduje się miejsce uchodzące za zajęte, podczas gdy żadna struktura określająca pliki nie odwołuje się do tego miejsca.
  • pliki bez dostępu – związane są z występowaniem struktur opisujących pliki i brakiem wpisów w katalogu odnoszących się do tych plików.
  • nieprawidłowe wartości liczników odwołań – wartość licznika jest różna od rzeczywistej liczby odwołań do pliku co w konsekwencji może prowadzić do dalszych błędów logicznych.
  • niewłaściwy rozmiar plików – związany jest z brakiem zgodności rozmiaru zapisanego w strukturach z wartością danych należących do pliku. W efekcie może dojść do odrzucenia części zawartości pliku lub dodania do pliku nieznaczących bitów, co dla wielu formatów stanowi przeszkodę lub nawet uniemożliwienie poprawnego odczytu.
  • wszelkie inne nieprawidłowości – błędne czasy dostępu, błędne atrybuty itp.

Dysk twardy z danym systemem plików (tablicą alokacji plików, np. FAT) stanowi swego rodzaju książkę adresową. Informując o swoich zasobach system podaje dane zawarte właśnie w tablicy alokacji. Wszelkie operacje typu kasowanie danych czy usuwanie partycji odbywają się jedynie w obrębie tablicy alokacji. Dane wciąż są obecne na dysku jednak nie mają już swoich adresów (wpisów w katalogu) – ich miejsce wskazywane jest jako gotowe do nadpisania przez kolejne dane.

Zatem dopóki dane nie zostaną nadpisane (kolejne pliki zapisane w miejscu poprzednich) istnieje możliwość ich odzyskania (pliki są wciąż obecne fizycznie). Warunkiem jest jednak zaprzestanie używania urządzenia i uniemożliwienie jakiegokolwiek nowego zapisu. Nie wystarczy powstrzymać się od zapisu – działanie samego systemu operacyjnego generuje szereg nowych plików mogących uniemożliwić proces odzysku – urządzenie powinno zostać wyłączone, a w przypadku pamięci zewnętrznych odłączone od laptopa.

Pavel Kroupka

Galeria