Struktura logiczna dysku

Z punku widzenia systemu operacyjnego dyski to urządzenia blokowe składające się z adresowalnych sektorów. Sektory są ponumerowane, zaczynając od zera i system operacyjny otrzymuje dostęp do zawartości po podaniu numeru sektora. Tak rozumie dysk komputer i dyski, bez względu na to co mają pod maską muszą się do tego dostosować i przedstawiać swoje zasoby w taki właśnie sposób.

Oczywiście dane na dysku muszą być w jakiś sposób zorganizowane. Zapisywanie plików bezpośrednio do sektorów byłoby dosyć niepraktyczne. Z tego względy dyski twarde dzielone są na partycje zawierające systemy plików.

Jeżeli zdarzyło nam się kiedyś kupić nowy wewnętrzny dysk twardy, zauważyliśmy że zaraz po zakupie jest on zupełnie pusty i niesfromatowany. Gdybyśmy zajrzeli na niego używając programu digital forensics, okazało by się, że jest on wypełniony zerami (przynajmniej w większości przypadków).

Aby móc z niego skorzystać, będziemy musieli:

  • Utworzyć tabelę partycji.
  • Utworzyć partycje.
  • Utworzyć system plików na partycji.

Oprogramowanie umożliwiające wykonanie powyższych operacji, często łączy powyższe czynności razem, co jest udogodnieniem dla użytkownika, ale może zmylić informatyka śledczego.

Dla przykładu w Windowsie po podłączeniu nowego dysku, najpierw należy go zainicjalizować. Inicjalizacja polega na utworzeniu tablicy partycji. W drugim etapie tworzymy partycje, decydujący się ile miejsca powinny zająć i jaki system plików powinien być użyty. Tworzenie partycji jest w tym wypadku połączone z formatowaniem (chociaż można to rozdzielić) i po wykonaniu tej operacji możemy zacząć na nowej partycji zapisywanie plików.

Istotną rzeczą jest zrozumienie, że partycja i system plików to dwie różne struktury, mogące istnieć zarówno razem jak i oddzielnie. Partycja to sposób dzielenia dysku na mniejsze kawałki,  a system plików to system umożliwiający zarządzanie plikami i folderami.

Wróćmy jednak do inicjalizacji i tabeli partycji. Obecnie istnieją dwie metody – starsza MBR oraz nowa GPT. Obydwa systemy mają dwa podstawowe zadania:

  • Zawierają kod pozwalający na uruchomienie komputera, tak zwany bootloader.
  • Zawierają tabelę partycji, czyli definicję podziału partycji na danym dysku.

MBR

MBR czyli Master Boot Record jest metodą używaną praktycznie od zawsze. W dniu dzisiejszym nadal większość dysków używa MBR. Problem pojawił się, kiedy dyski zaczęły przekraczać 2 TB. Tablica partycji w systemie MBR nie jest w stanie ich zaadresować. Twórca nie przewidział, że dyski tak urosną? Być może, jednak był on także limitowany wielkością MBR, gdzie cały kod i tablica partycji musiały zmieścić się w pierwszym sektorze dysku, czyli w 512 bajtach.

MBR nie zmienił się od tego czasu – nadal ma 512 bajtów i znajduje się w pierwszym sektorze dysku.

512 bajtów podzielone jest w następujący sposób:

  • 218 bajtów – część pierwsza kodu startowego,
  • 6 bajtów – opcjonalny timestamp,
  • 216 lub 222 bajtów – część druga kodu startowego,
  • 6 bajtów – opcjonalna sygnatura dysku,
  • 4 x 16 bajtów – tablica partycji, pozwalająca na cztery wpisy po 16 bajtów. Dlatego właśnie możemy utworzyć jedynie 4 partycje typy primary.
  • 2 bajty – sygnatura boot sektora-  0x55 0xAA

mbr

Gdy uruchamiamy komputer, BIOS przeprowadza self-test, sprawdza z którego urządzenia (dysku) uruchomić system operacyjny i ładuje do pamięci MBR z tego urządzenia. Kod w MBR zostaje uruchomiony i w przypadku typowej instalacji Windows, przekieruje nas automatycznie do VBR (Volume Boot Record), gdzie kolejna porcja kodu uruchomi Windowsa. Właściwy VBR znaleziony zostanie dzięki tablicy partycji.  Zamiast domyślnego bootloadera, w MBR możemy zainstalować inne, na przykład grub lub lilo – w takim wypadku kod MBR wyświetli nam boot menu.

Pamiętać należy, ze podział dysku na partycje nie wymaga żadnych zapisów na przestrzeni dzielonego obszaru. Jedyną  i ostateczną instancją jest tabela partycji.

GPT

System GPT (GUID Partition Table) jest następcą MBR i powstał głownie w związku z 2 terabajtowym limitem partycji w tym ostatnim. GPT jest także ściśle powiązany z następcą BIOS-u – UEFI (Extensible Firmware Interface). W nowszych komputerach, zamiast biało- niebieskiego, tekstowego  interfejsu BIOS-u, setkniemy się z interfejsem graficznym, w którym możemy używać myszki – to właśnie UEFI.

GPT skonstruowany jest w następujący sposób:

1) W pierwszym sektorze dysku ciągle znajduje się MBR, jednak nie zawiera on prawdziwych danych, Ma on charakter marionetkowy mający na celu zapobiec by stare narzędzia próbowały nadpisać struktury GPT. W marionetkowym MBR znajduje się zawsze jedna ślepa partycja:

2) W sektorze drugim znajduje się partition table header (opis będzie dodany później):
efi
3) Prtition table header wskazuje gdzie znajduje się tabela partycji, zwykle w sektorze 3:
Partition entries
Każdy rekord w tabeli partycji ma zwykle 128 bajtów, a cała tablica ma 16 KB.

Dodatkowe informacje

Podstawowa różnica pomiędzy systemami BIOS/MBR a EFI/GPT jest to, że w tych pierwszych boot code znajduje się w MBR lub VBR, natomiast te drugie potrafią uruchomić system bezpośrednio ze wskazanej partycji.
Pamiętajmy też, że obecnie dyski coraz częściej posiadają sektory 4KB a nie 512 bajty. W takim wypadku sygnatura 0x55 0xAA znajdyje się ciągle w offsecie 500 i 511, czyli tak jakby dysk miał ciągle 512-bajtowe sektory.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *