Tablica partycji dysku

Tablica partycji dysku – Partition Table

Informacje o partycjach podstawowych i partycji rozszerzonej są zawarte w tablicy partycji, 64-bajtowej strukturze danych znajdującej się w tym samym sektorze co główny rekord rozruchowy (cylinder 0, głowica 0, sektor 1). Tablica partycji jest zgodna ze standardowym układem niezależnym od systemu operacyjnego. Każdy wpis tablicy partycji ma długość 16 bajtów, dzięki czemu dostępne są maksymalnie cztery wpisy. Każdy wpis rozpoczyna się w określonym przesunięciu od początku sektora, jak następuje:

  • Partycja 1 0x01BE (446)
  • Partycja 2 0x01CE (462)
  • Partycja 3 0x01DE (478)
  • Partycja 4 0x01EE (494)

Ostatnie dwa bajty w sektorze są słowem sygnaturowym dla sektora i zawsze mają wartość 0x55AA. Następnym przykładem jest wydruk tablicy partycji dla dysku pokazanego na przykładzie wcześniej w tym rozdziale. Gdy jest mniej niż cztery partycje, wszystkie pozostałe pola są zerami.

80 01              .. 
 000001C0:01 00 06 0F 7F 96 3F 00 -00 00 51 42 06 00 00 00 .....?...QB....
 000001D0:41 97 07 0F FF 2C 90 42 -06 00 A0 3E 06 00 00 00 A....,.B...>....
 000001E0:C1 2D 05 0F FF 92 30 81 -0C 00 A0 91 01 00 00 00 .-....0......... 
 000001F0:C1 93 01 0F FF A6 D0 12 -0E 00 C0 4E 00 00 55 AA ...........N..U. 

W poniższej tabeli opisano każdy wpis w tablicy partycji. Przykładowe wartości odpowiadają informacjom dla partycji 1.

Pola tablicy partycji

Przesunięcie bajtów Długość pola Przykładowa wartość Oznaczający
00 BAJT 0x80 Wskaźnik rozruchu. Wskazuje, czy partycja jest partycją systemową. Dozwolone wartości to: 00 = Nie używaj do uruchamiania. 80 = Partycja systemowa.
01 BAJT 0x01 Głowa startowa.
02 BAJT 0x01 Sektor startowy. Używane są tylko bity 0-5. Bity 6-7 to dwa górne bity pola Starting Cylinder.
03 BAJT 0x00 Cylinder rozruchowy. To pole zawiera 8 niższych bitów wartości cylindra. Cylinder początkowy jest więc liczbą 10-bitową, o maksymalnej wartości 1023.
04 BAJT 0x06 Identyfikator systemu. Ten bajt określa typ woluminu. W systemie Windows NT oznacza to również, że partycja jest częścią woluminu wymagającego użycia podklucza rejestru HKEY_LOCAL_MACHINE\SYSTEM\DISK.
05 BAJT 0x0F Kończąca głowa.
06 BAJT 0x3F Kończący się sektor. Używane są tylko bity 0-5. Bity 6-7 to dwa górne bity pola Ending Cylinder.
07 BAJT 0x196 Cylinder końcowy. To pole zawiera 8 niższych bitów wartości cylindra. Cylinder końcowy jest więc liczbą 10-bitową o maksymalnej wartości 1023.
08 DWORD 3F 00 00 00 Sektor względny.
12 DWORD 51 42 06 00 Sektory ogółem.

Pozostała część tej sekcji opisuje zastosowania tych pól. Definicje pól w Tablicy partycji są takie same dla partycji podstawowych, partycji rozszerzonych i dysków logicznych w partycjach rozszerzonych.

Pole wskaźnika rozruchu

Pole Boot Indicator wskazuje, czy wolumin jest partycją systemową. Na komputerach z procesorami x-86 tylko jedna partycja podstawowa na dysku powinna mieć ustawione to pole. To pole jest używane tylko na komputerach z procesorami x86. Na komputerach z procesorami RISC pamięć NVRAM zawiera informacje umożliwiające znalezienie plików do załadowania.

Na komputerach opartych na architekturze x86 możliwe jest posiadanie różnych systemów operacyjnych i różnych systemów plików na różnych woluminach. Na przykład komputer może mieć system MS-DOS na pierwszej partycji podstawowej, a system Windows 95, UNIX, OS/2 lub Windows NT na drugiej. Możesz kontrolować, która partycja podstawowa (aktywna partycja w FDISK) ma być używana do uruchamiania komputera, ustawiając pole Boot Indicator dla tej partycji w tablicy partycji.

Pole identyfikatora systemu

W przypadku partycji podstawowych i dysków logicznych pole Identyfikator systemu opisuje system plików użyty do sformatowania woluminu. System Windows NT używa tego pola do określenia, jakie sterowniki urządzeń systemu plików mają zostać załadowane podczas uruchamiania. Identyfikuje również partycję rozszerzoną, jeśli została zdefiniowana.

Oto wartości pola Identyfikator systemu:

Tabela 3-1 Wartości pól identyfikatora systemu

Wartość Oznaczający
0x0B Podstawowa partycja Fat32, używająca rozszerzeń przerwań 13 (INT 13).
0x0C Rozszerzona partycja Fat32, używająca rozszerzeń INT 13.
0x0E Podstawowa partycja Fat16, używająca rozszerzeń INT 13.
0x0F Rozszerzona partycja Fat16, używająca rozszerzeń INT 13.

Podczas tworzenia zestawu woluminów lub zestawu rozłożonego administrator dysków ustawia wysoki bit pola Identyfikator systemu dla każdej partycji podstawowej lub dysku logicznego, który jest elementem woluminu.

Na przykład partycja podstawowa FAT lub dysk logiczny należący do zestawu woluminów lub zestawu rozłożonego ma wartość identyfikatora systemu równą 0x86. Partycja podstawowa NTFS lub dysk logiczny ma wartość identyfikatora systemu równą 0x87.

Ten bit wskazuje, że system Windows NT musi użyć podklucza rejestru HKEY_LOCAL_MACHINE\SYSTEM\DISK, aby określić, w jaki sposób elementy zestawu woluminów lub zestawu rozłożonego odnoszą się do siebie. Dostęp do woluminów z ustawionym wysokim bitem jest możliwy tylko w systemie Windows NT.

Gdy partycja podstawowa lub dysk logiczny, który jest członkiem zestawu woluminów lub zestawu rozłożonego, uległ awarii z powodu błędów zapisu lub nie można uzyskać do niego dostępu, ustawiany jest drugi najbardziej znaczący bit. Bajt identyfikatora systemu jest ustawiony na C6 w przypadku woluminu FAT lub C7 w przypadku woluminu NTFS.

Jeśli uruchomisz system MS-DOS, może on uzyskać dostęp tylko do partycji podstawowych lub dysków logicznych, które mają wartość 0x01, 0x04, 0x05 lub 0x06 dla identyfikatora systemu. Jednak powinno być możliwe usunięcie woluminów, które mają inne wartości. Jeśli używasz edytora dysków niskiego poziomu opartego na systemie MS-DOS, możesz odczytywać i zapisywać dowolne sektory, w tym sektory znajdujące się w woluminach NTFS.

W systemie Windows NT Server zestawy lustrzane i zestawy rozłożone z parzystością wymagają również użycia podklucza Rejestru HKEY_LOCAL_MACHINE\SYSTEM\DISK w celu określenia sposobu uzyskiwania dostępu do dysków.

poprzedni wpis – Główny rekord rozruchowy (MBR)