Wprowadzenie do partycjonowania

W systemie Linux (i nie tylko) dysk fizyczny może być podzielony na wiele dysków logicznych tzw. partycji. Informacje o partycjach składowane są na dysku w pewnym małym regionie czytanym przez system operacyjny w trakcie ładowania systemu (bootowania). W komputerach z BIOSem tym regionem jest Master Boot Record (MBR), w komputerach UEFI tym regionem jest GUID Partition Table (GPT). Chociaż MBR i GPT przeznaczone są do komputerów o innych architekturach mają jednakowe zadanie: przechowywanie informacji o partycjach i o bootowanie systemu.

W czasie ładowania systemu BIOS/UEFI:

  • skanuje wszystkie dyski fizyczne komputera,
  • sprawdza obecność MBR/GPT,
  • identyfikuje dysk, z którego ma ładować system,
  • wczytuje boot loader z dysku z ustawioną flagą boot,
  • czyta tablicę partycji,
  • wczytuje jądro systemu i przekazuje mu kontrolę.

MBR rezyduje na pierwszym sektorze dysku z ustawioną flagą boot. Pozwala na istnienie na jednym fizycznym dysku maksymalnie czterech partycji podstawowych (primary). Jedna z tych podstawowych partycji może być ustawiona jako tzw. partycja rozszerzona (extended), która może zawierać wiele partycji logicznych (logical). MBR może zaadresować tylko dyski o maksymalnej pojemności 2TB co wynika z pracy w architekturze 32 bitowej i 512 bajtowego rozmiaru sektora dysku. Rekord dysku zawierający MBR nie jest redundantny, uszkodzenie MBR powoduje brak możliwości załadowania systemu.

Wraz ze wzrostem pojemności dysków twardych powstał nowy 64 bitowy standard partycjonowania nazywany Globally Unique IDentifiers (GUID) Partition Table (GPT), który został zintegrowany z archiekturą UEFI. GPT zawiera wiele ulepszeń w porównaniu do MBR:

  • 128 partycji
  • korzystanie z dysków o pojemności większej niż 2TB
  • sektor dysku o rozmiarze 4KB
  • redundantne składowanie tablicy partycji
  • komputery z BIOSem również mogą ładować system z dysków z GPT

Wyświetlanie partycji obecnych na dysku fizycznym:
# lsblk
NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                     11:0    1 1024M  0 rom
xvda                   202:0    0  300G  0 disk
├─xvda1                202:1    0  299G  0 part /
└─xvda2                202:2    0 1023M  0 part
  └─centos_centos-swap 253:0    0 1020M  0 lvm  [SWAP]

#  cat /proc/partitions
major    minor  #blocks  name
 202        0  314572800 xvda
 202        1  313524224 xvda1
 202        2    1047552 xvda2
  11        0    1048575 sr0
 253        0    1044480 dm-0

Programy do partycjonowania w systemie Linux:

MBR GPT
Dialog fdisk
parted
fdisk
gdisk
parted
Pseudo graficzne cfdisk cfdisk
cgdisk
Nie interaktywne sfdisk
parted
sfdisk
sgdisk
parted
Graficzne GParted
partitionmanager
GParted
partitionmanager

Jeżeli na dysku potrzebujemy tylko jedną przestrzeń dyskową to najlepiej nie zakładać żadnych partycji. Takie rozwiązanie często stosuje się w komputerach typu NAS (Network Attached Storage), gdzie system operacyjny zainstalowany jest na dysku USB a dyski HDD służą tylko do składowania danych.

Jeżeli partycjonujemy dyski z poziomu konsoli SSH to najłatwiej korzystać z takich narzędzi do partycjonowania jak cfdisk i cgdisk gdzie bez znajomości specjalnych poleceń programu (jak to jest w parted i gdisk) możemy w trybie pseudo-okienkowym  utworzyć partycję na dysku.

Leave a Reply

Your email address will not be published.