Partycja

Z Wikipedii, wolnej encyklopedii
Edytor partycji GParted

Partycja – wydzielony logiczny obszar dysku twardego, który może być sformatowany przez system operacyjny w odpowiednim systemie plików. Niekiedy określenie partycja odnosi się do wydzielonego zasobu innego niż dysk na przykład partycja jako wydzielony logiczny komputer (PR/SM) lub partycjonowanie przełączników Fiber Channel lub ESCON Director.

Partycjonowanie jest techniką, którą można uznać za prekursora menadżera dysków logicznych.

Rozmaici producenci systemów operacyjnych i oprogramowania stosują różną terminologię, często z powodów kulturowo-marketingowych (Microsoft nazywa ją dyskiem lokalnym) oraz z powodów techniczno-technologicznych (np. w systemach *BSD zamiast określenia partycja używa się określenia slice).

Cel[edytuj | edytuj kod]

Partycjonowanie umożliwia posiadanie kilku systemów plików na jednym dysku twardym. Powodem partycjonowania mogą być:

  • ograniczenia techniczne (np. stare wersje FAT mają ograniczenia co do wielkości partycji, stare BIOS-y nie mogą zaadresować obszaru poza 1024 cylindrem, więc partycja startowa musi znajdować się przed tą granicą)
  • uszkodzenie danych na jednej partycji nie ma wpływu na inne partycje
  • często systemy operacyjne nie mogą być zainstalowane na jednej partycji lub używają innego systemu plików. Wtedy instaluje się je na oddzielnych partycjach.
  • by zapobiec zapełnieniu dysku przez określoną usługę, można jej dane umieścić na oddzielnej partycji (np. logi systemowe).
  • każda partycja może być dostosowana do konkretnych wymagań. Np. jeśli zapis na partycji ma być zabroniony można ją zamontować w trybie tylko do odczytu. Jeśli na partycji ma się znajdować wiele plików można użyć systemu plików z wieloma i-węzłami.
  • dzięki partycjom można zainstalować kilka systemów operacyjnych na jednym dysku twardym.

Implementacje[edytuj | edytuj kod]

Tablica partycji w komputerach PC[edytuj | edytuj kod]

Historia[edytuj | edytuj kod]

Tablica partycji w architekturze PC została wprowadzona wraz z pojawieniem się dysków twardych w 1982. W 1987 wraz z DOS 3.3 format tablicy partycji został rozszerzony o tablicę rozszerzoną, na której mogły się znajdować logiczne partycje.

Specyfikacja[edytuj | edytuj kod]

Tablica partycji (ang. partition table) – jest przechowywana w master boot rekordzie pierwszego sektora dysku twardego. Struktura ta zajmuje 64 bajty w której są 4 wpisy (po 16 bajtów każdy)

Master Boot Record
(offset)
0x0000 do 0x01BD – pierwszych 446 bajtów (bajty zarezerwowane dla programu rozruchowego)
0x01BE do 0x01CD – partycja 1
0x01CE do 0x01DD – partycja 2
0x01DE do 0x01ED – partycja 3
0x01EE do 0x01FD – partycja 4
0x01FE do 0x01FF – Boot signature

Owe pierwsze 446 bajtów jest często zarażane przez wirusy chcące przejąć tablice partycji i uruchamiać się wraz z programem rozruchowym przed systemem.

Każdy wpis w tablicy partycji ma następujący układ:

|==========================================================|
| Numer bajtu| Opis                                        |
|==========================================================|
|           1| flaga aktywności                            |
|==========================================================|
|         2-4| startowy CHS                                |
|==========================================================|
|           5| typ partycji                                |
|==========================================================|
|         6-8| końcowy CHS                                 |
|==========================================================|
|        9-12| sektor początkowy                           |
|==========================================================|
|       13-16| liczba sektorów partycji                    |
|==========================================================|

Przykładowa tablica partycji: (wszystkie bajty są w formacie little endian)

offset: value explanation

======: ===== ===========
0x01BE: 0x80 flaga aktywności
0x01BF: 0x00 0x02 0x00 startowy CHS
0x01C2: 0x83 typ partycji
0x01C3: 0x1A 0x5B 0x8C końcowy CHS
0x01C6: 0x02 0x00 0x00 0x00 sektor początkowy
0x01CA: 0x00 0x35 0x0C 0x00 liczba sektorów partycji

Znaczenie poszczególnych pól[edytuj | edytuj kod]

  • flaga aktywności – określa tzw. aktywną partycję, czyli partycję, z której standardowy program rozruchowy powinien załadować system operacyjny. Może być kilka aktywnych partycji, ale system startuje zawsze z tej pierwszej. Wartość 0x00 określa partycje zwykłą zaś 0x80 partycje aktywną.
  • startowy CHS – adres początku partycji w notacji cylinder, głowica, sektor
  • typ partycji – określa typ partycji podstawowej lub oznacza partycję jako rozszerzoną
  • końcowy CHS – adres końca partycji
  • sektor początkowy – adres pierwszego sektora
  • liczba sektorów – liczba sektorów należących do partycji

Partycja rozszerzona pozwala na założenie więcej niż 4 partycji logicznych.

Inne implementacje partycjonowania[edytuj | edytuj kod]

Popularyzacja architektury IBM PC sprawiła, że tablica partycji jest używana od dłuższego czasu. Pojawił się jednak nowy projekt firm Intel i Microsoft (początkowo dla architektury IA-64) nazwany Extensible Firmware Interface (EFI), dostosowany do używania GUID Partition Table (GPT) w miejsce tradycyjnego MBR. Microsoft dodał wsparcie dla GPT w Windows Server 2003 SP1 i wszystkich kolejnych systemach, w tym również na platformę x86 oraz x86-x64. Przy zastosowaniu partycji GPT możliwe jest użycie do 128 partycji podstawowych, a sama struktura partycji obsługuje dyski o pojemności do 18EB (w Windows Server 2003 SP1).

Schematy partycjonowania[edytuj | edytuj kod]

Microsoft Windows[edytuj | edytuj kod]

W systemach z rodziny Windows standardowym schematem partycjonowania jest stworzenie pojedynczej partycji będącej dyskiem C:, na którym jest przechowywany system operacyjny, dane i programy. Zalecane jest stworzenie kilku partycji lub użycie kilku dysków twardych, gdzie na jednej partycji znajduje się system operacyjny, a na pozostałych programy i dane. Jeśli jest to możliwe plik wymiany powinien znajdować się na oddzielnej partycji dysku, na którym nie znajduje się system operacyjny[potrzebny przypis].

UNIX[edytuj | edytuj kod]

W systemach z rodziny UNIX, w tym jak Linux, bezpiecznie jest stworzyć oddzielne partycje: /, /boot, /home, /tmp, /usr, /var, /opt i partycję wymiany. Dzięki temu mamy pewność, że nawet jeśli jeden system plików zostanie uszkodzony, nie spowoduje on uszkodzenia danych na innych partycjach, minimalizując utratę danych. Wadą takiego rozwiązania jest konieczność podziału dysku na małe części o ustalonej wielkości. Dobranie ich wielkości jest czasami bardzo trudnym zadaniem. Typowy system typu desktop używa jednej partycji / (root) zawierającej cały system operacyjny oraz partycji wymiany. Oddzielna partycja /home jest przydatna podczas reinstalacji systemu pozwalając na zachowanie danych użytkowników.

Narzędzia do partycjonowania dysków[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]