FDISK(8)

NAZWA
fdisk - obsługa dyskowej tablicy partycji

SKŁADNIA

fdisk [opcje] urządzenie

fdisk -l [urządzenie...]

OPIS

fdisk to obsługiwany z pomocą okien dialogowych program do tworzenia i zmieniania tablicy partycji dysku twardego. Obsługuje tablice partycji typu GPT, MBR, Sun, SGI i BSD.

Urządzenia blokowe mogą być podzielone na jeden lub więcej logicznych dysków zwanych partycjami. Podział ten jest zapisany w tablicy partycji znajdującej się zwykle w sektorze 0 dysku (w świecie BSD mówi się o tzw. plastrach dyskowych "disk slice" i etykietach dysku "disklabel").

Partycjonowanie przestrzega domyślnie limitów wejścia/wyjścia urządzenia (topologii). fdisk jest w stanie zoptymalizować schemat dysku do 4-kilobajtowego rozmiaru sektora oraz używa wyrównania przesunięcia na współczesnych dyskach korzystających z MBR i GPT. Zawsze powinno się korzystać z ustawień domyślnych fdiska, ponieważ domyślne wartości (np. początkowego i końcowego sektora partycji) i rozmiary partycji podane w notacji +/-rozmiar{M,G,...} są zawsze wyrównywane zgodnie z właściwościami urządzenia.

Adresowanie cylinder-głowica-sektor (ang. Cylinder-Head-Sector - CHS) jest przestarzałe i nie jest domyślnie stosowane. Nie należy korzystać ze starych artykułów i rekomendacji z poleceniem fdisk -S <n> -H <n> do napędów SSD lub urządzeń z sektorami 4K.

Bogaty interfejs do wyświetlania schematów dysków dla skryptów zapewnia partx(8), fdisk jest przeznaczony raczej dla ludzi. Kompatybilność wsteczna w wyjściu fdisk nie jest gwarantowana. Wejście (polecenia) powinny pozostać wstecznie kompatybilne.

OPCJE

-b, --sector-size rozmiar-sektora
    Określa rozmiar sektora dysku. Możliwe wartości są następujące: 512, 1024, 2048 i 4096. (Ostatnie jądra znają rozmiar sektora. Proszę używać tej opcji tylko dla starych jąder lub w celu nadpisania wartości podanej przez jądro). Od util-linux-2.17 fdisk rozróżnia logiczny i fizyczny rozmiar sektora. Ta opcja zmienia obie wartości rozmiarów sektora na rozmiar-sektora.

-B, --protect-boot
    Nie zamazuje początku pierwszego sektora dysku przy tworzeniu nowej etykiety dysku. Ta funkcja jest obsługiwana w przypadku GPT i MBR.

-c, --compatibility[=tryb]
    Określa tryb kompatybilności, dos lub nondos. Domyślnym trybem jest niedosowy. Aby zachować kompatybilność wsteczną, możliwe jest użycie tej opcji bez argumentu tryb - używana jest wówczas wartość domyślna. Proszę zauważyć, że opcjonalny argument tryb nie może być oddzielony od opcji -c spacją, poprawną formą jest np. -c=dos.

-h, --help
    Wyświetla ten tekst i kończy pracę.

-V, --version
    Wyświetla informacje o wersji i kończy działanie.

-L, --color[=kiedy]
    Koloryzuje wynik. Opcjonalnym argumentem kiedy może być auto, never (nigdy) lub always (zawsze). Gdy nie poda się argumentu kiedy, domyślnym ustawieniem jest auto. Kolory mogą być wyłączone, aktualne wbudowane ustawienie domyślne pokaże opcja --help. Zob. również rozdział KOLORY.

-l, --list
    Wypisuje tablice partycji dla podanych urządzeń i kończy działanie.

    Jeżeli nie podano żadnych urządzeń, to używane są urządzenia wymienione w pliku /proc/partitions (o ile taki plik istnieje). Urządzenia są zawsze wypisywane w kolejności w jakiej podano je w wierszu poleceń lub w kolejności jądra z pliku /proc/partitions.

-x, --list-details
    Jak --list, ale bardziej szczegółowo.

--lock[=tryb]
    Use exclusive BSD lock for device or file it operates. The optional argument mode can be yes, no (or 1 and 0) or nonblock. If the mode argument is omitted, it defaults to yes. This option overwrites environment variable $LOCK_BLOCK_DEVICE. The default is not to use any lock at all, but it’s recommended to avoid collisions with systemd-udevd(8) or other tools.

-n, --noauto-pt
    Nie tworzy automatycznie domyślnej tablicy partycji na pustym urządzeniu. Tablica partycji musi być utworzona wprost przez użytkownika (poleceniami takimi jak "o", "g" itp.).

-o, --output lista
    Określa wypisywane kolumny. Ich listę można poznać podając opcję --help.

    Domyślna listę kolumn można rozszerzyć, jeśli listę poda się w formacie +lista (np. -o +UUID).

-s, --getsz
    Wyświetla rozmiar jako 512-bajtowe sektory każdego podanego urządzenia blokowego. Ta opcja jest PRZESTARZAŁA na korzyść blockdev(8).

-t, --type typ
    Włącza obsługę etykiet dysku wyłącznie podanego typu, wyłączając obsługę pozostałych typów.

-u, --units[=jednostka]
    Podczas wypisywania tablic partycji pokazuje rozmiary w sectors (sektorach) lub w cylinders (cylindrach). Domyślnie używane są sektory. Ze względu na kompatybilność wsteczną, możliwe jest użycie tej opcji bez argumentu jednostki - używana jest wówczas wartość domyślna. Proszę zauważyć, że opcjonalny argument jednostka nie może być oddzielony od opcji -u spacją, poprawną formą jest np. "-u=cylinders".

-C, --cylinders liczba
    Określa liczbę cylindrów dysku. Prawdopodobnie nie ma osoby, która miałaby powód aby używać tej opcji.

-H, --heads liczba
    Określa liczbę głowic dysku (oczywiście nie ich fizyczną liczbę, lecz liczbę używaną do tablic partycji). Rozsądnymi wartościami są 255 i 16.

-S, --sectors liczba
    Określa liczbę sektorów dysku na ścieżkę (oczywiście nie ich fizyczną liczbę, lecz liczbę używaną do tablic partycji). Rozsądną wartością jest 63.

-w, --wipe kiedy
    Usuwa sygnatury systemu plików, tablicy partycji i RAID aby zapobiec ewentualnym kolizjom. Argument kiedy może przyjąć wartość auto, never lub always. Gdy nie poda się tej opcji, domyślnie stosowane jest ustawienie auto, które usuwa sygnatury tylko w trybie interaktywnym. W każdym przypadku wykryte sygnatury skutkują wypisaniem ostrzeżenia przed utworzeniem nowej tablicy partycji. Zob. też polecenie wipefs(8).

-W, --wipe-partitions kiedy
    Usuwa sygnatury systemu plików, tablicy partycji i RAID z nowo tworzonych partycji, aby zapobiec ewentualnym kolizjom. Argument kiedy może przyjąć wartość auto, never lub always. Gdy nie poda się tej opcji, domyślnie stosowane jest ustawienie auto, które usuwa sygnatury tylko w trybie interaktywnym i po potwierdzeniu przez użytkownika. W każdym przypadku wykryte sygnatury skutkują wypisaniem ostrzeżenia przed utworzeniem nowej tablicy partycji. Zob. też polecenie wipefs(8).

-V, --version
    Wyświetla informacje o wersji i kończy działanie.

URZĄDZENIA

Urządzenie jest to z reguły /dev/sda, /dev/sdb itp. Nazwy urządzeń odnoszą się do całego dysku. Stare systemy bez libata (biblioteki używanej wewnątrz jądra Linux do obsługi kontrolerów i urządzeń ATA) rozróżniają dyski IDE i SCSI. W takich przypadkach nazwami urządzeń będą /dev/hd* (IDE) lub /dev/sd* (SCSI).

Partycja to nazwa urządzenia, za którą następuje numer partycji. Na przykład, /dev/sda1 jest pierwszą partycją pierwszego dysku twardego w systemie. Proszę również zapoznać się z dokumentacją jądra Linux (plik Documentation/admin-guide/devices.txt).

ROZMIARY

Okno "ostatni sektor" ("last sector") akceptuje podanie rozmiaru partycji za pomocą liczby sektorów albo w notacji +/-rozmiar{K,B,M,G,...}.

Jeśli rozmiar poprzedzi się plusem "+", to jest on interpretowany jako liczony w odniesieniu do pierwszego sektora partycji. Jeśli przedrostkiem będzie minus "-", to jest on interpretowany w odniesieniu do ostatniego dostępnego sektora partycji.

Gdy poda się rozmiar w bajtach; po liczbie tej mogą występować przyrostki oznaczające wielokrotność: KiB=1024, MiB=1024*1024 itd. dla GiB, TiB, PiB, EiB, ZiB i YiB. Cząstka "iB" jest opcjonalna, tzn. "K" ma to samo znaczenie co "KiB".

Rozmiary relatywne są zawsze wyrównywane zgodnie z limitami wejścia/wyjścia danego urządzenia. Zaleca się stosowanie notacji +/-rozmiar{K,B,M,G,...}.

W celu kompatybilności wstecznej fdisk przyjmuje również przyrostki KB=1000, MB=1000*1000 itd. dla GB, TB, PB, EB, ZB i YB. Te przyrostki utworzone w oparciu o notację 10^N są przestarzałe.

PLIKI SKRYPTÓW

fdisk pozwala na odczytanie (poleceniem "I") skryptów kompatybilnych z sfdisk(8). Skrypt jest następnie stosowany do tablicy partycji przechowywanej w pamięci, a później istnieje możliwość modyfikacji jej przed ostatecznym zapisaniem na dysk.

Działa to również w drugą stronę, ponieważ poleceniem "O" można zapisać aktualny schemat dysku przechowywany w pamięci do skryptu.

Pliki skryptów są kompatybilne pomiędzy cfdisk(8), sfdisk(8), fdisk i pozostałymi programami libfdisk. Więcej szczegółów w podręczniku sfdisk(8).

ETYKIETY DYSKU

GPT (GUID Partition Table)
    GPT to nowoczesny standard opisujący schemat tablicy partycji. GTP używa 64-bitowe logicznych adresów bloków, sum kontrolnych, UUID-ów i nazw dla partycji. Nie ma ograniczeń w liczbie partycji (choć narzędzia partycjonujące zwykle ograniczają tę liczbę do 128).

    Proszę zauważyć, że w specyfikacji GPT pierwszy sektor jest wciąż przeznaczony na ochronne MBR. Unika się w ten sposób błędne rozpoznanie i zamazanie dysków GPT przez narzędzia partycjonujące znające tylko MBR.

    GPT jest zawsze lepszym wyborem niż MBR, szczególnie na nowoczesnym sprzęcie korzystającym z UEFI.

Typu DOS-owego (MBR)
    Tablica partycji typu DOS może opisać nieograniczoną liczbę partycji. W sektorze 0 jest miejsce na opis 4 partycji (zwanych podstawowymi — `primary'). Jedna z nich może być partycją rozszerzoną; jest ona jakby pudełkiem zawierającym partycje logiczne, których deskryptory można znaleźć w wiązanej liście sektorów, z których każdy poprzedza odpowiadającą partycję logiczną. Cztery podstawowe partycje, niezależnie od tego czy są obecne, czy nie, otrzymują numery od 1 do 4. Numery partycji logicznych zaczynają się od 5.

    W tablicy partycji typu DOS początkowe przesunięcie ("offset") i rozmiar każdej partycji przechowywany jest na dwa sposoby: jako bezwzględna liczba sektorów (zapisywana na 32 bitach) i jako trójka Cylindry/Głowice/Sektory (Cylinders/Heads/Sectors) (zapisywana na 10+8+6 bitach). Pierwszy zapis jest w porządku - przy 512-bajtowych sektorach będzie działał aż do 2 TB. W przypadku drugiego zapisu występują dwa małe problemy. Przede wszystkim pola C/H/S mogą być wypełnione tylko wtedy, gdy znana jest liczba głowic oraz liczba sektorów na ścieżce. Po drugie, nawet jeżeli te liczby są znane, to te 24 bity, które są dostępne, nie wystarczają. DOS używa tylko C/H/S, Windows — obu, a Linux nigdy nie używa C/H/S. Adresowanie C/H/S jest przestarzałe i może w przyszłości nie być obsługiwane przez którąś z wersji fdisk.

    Proszę zapoznać się z rozdziałem o trybie DOS-owym, aby utworzyć partycje kompatybilne z DOS-em. Domyślnie, fdisk nie troszczy się o granice cylindrów.

Typu BSD/Sun
    Etykieta dysku typu BSD/Sun może opisywać 8 partycji, z których trzecia powinna być specjalną partycją oznaczającą cały dysk. Partycji, która używa swojego pierwszego sektora (jak na przykład partycja wymiany) nie należy umieszczać w cylindrze 0, ponieważ zniszczy to etykietę dysku. Proszę zauważyć, że etykieta BSD jest zwykle zagnieżdżona w partycji DOS.

Typu IRIX/SGI
    Etykieta dysku IRIX/SGI może opisywać 16 partycji, z których jedenasta powinna być partycją całego "woluminu", natomiast dziewiąta powinna być tzw. "nagłówkiem woluminu". Nagłówek woluminu także pokrywa całą tablicę partycji, tzn. zaczyna się w bloku zerowym i domyślnie ciągnie się przez pięć cylindrów. Pozostałe miejsce w nagłówku woluminu może być użyte przez wpisy głównych katalogów. Żadna partycja nie może nachodzić na nagłówek woluminu. Także, nie należy zmieniać typu nagłówka woluminu, ani tworzyć na nim systemu plików, ponieważ spowoduje to utratę tablicy partycji. Proszę używać tego typu etykiety dysku tylko podczas pracy z Linuksem na komputerach IRIX/SGI lub podczas pracy z dyskami IRIX/SGI pod Linuksem.

    Gdy zaktualizowano tablicę partycji, to przed wyjściem wykonywane jest sync(2) i ioctl(BLKRRPART) (ponowne odczytanie tablicy partycji z dysku).

OSTRZEŻENIE TRYBU DOS i DOS 6.x

Cały ten rozdział jest nieaktualny. W żadnym ze współczesnych systemów operacyjnych nie ma potrzeby martwić się takimi rzeczami jak geometria czy cylindry. Jeśli naprawdę konieczne jest stosowanie partycjonowanie kompatybilnego z DOS-em konieczne jest włączenie trybu DOS i cylindrów jako jednostek za pomocą opcji wiersza poleceń "-c=dos -u=cylinders".

Komenda FORMAT z DOS 6.x szuka informacji w pierwszym sektorze obszaru danych partycji i traktuje je jako godniejsze zaufania niż informacje z tablicy partycji. Dosowy FORMAT oczekuje od dosowego FDISK-a, że ten wyczyści pierwsze 512 bajtów obszarów danych przy każdej zmianie rozmiarów. Dosowy FORMAT zajrzy do tych dodatkowych danych nawet z flagą /U -- uważamy to za błąd tych programów.

Tak więc używając programu cfdisk(8) lub fdisk do zmiany rozmiaru partycji dosowej, należy też użyć dd(1) do wyzerowania pierwszych 512 bajtów tej partycji przed użyciem dosowego FORMAT. Na przykład, po utworzeniu dosowej partycji /dev/sda1 programem fdisk (po wyjściu z fdisk i przeładowaniu Linuksa, dzięki czemu informacje o tablicy partycji będą poprawne), powinno się wykonać polecenie dd if=/dev/zero of=/dev/hda1 bs=512 count=1, które zeruje pierwszych 512 bajtów partycji.

fdisk zwykle automatycznie uzyska informacje o geometrii dysku. Niekoniecznie musi to być fizyczna geometria dysku (co więcej, nowoczesne dyski w rzeczywistości nie mają czegoś takiego jak fizyczna geometria, a w każdym razie nie mają niczego, co mogłoby być opisane w prostej postaci cylindry/głowice/sektory), lecz geometria, której używa MS-DOS dla tablicy partycji.

Zazwyczaj wszystko idzie dobrze i nie ma żadnych problemów, jeżeli Linux jest jedynym systemem na dysku. Jednakże, jeśli dysk będzie dzielony z innymi systemami operacyjnymi, to dobrym pomysłem jest utworzenie co najmniej jednej partycji fdiskiem pochodzącym z innego systemu operacyjnego. Linux, podczas uruchamiania, przegląda tablicę partycji i stara się wywnioskować, jaka (fałszywa) geometria dysku jest wymagana, żeby mógł dobrze współpracować z innymi systemami.

Gdy wypisywana jest tablica partycji, w trybie DOS dokonywane jest sprawdzenie spójności wpisów tablicy. Sprawdzane jest, czy fizyczne i logiczne punkty startowe i końcowe są takie same, oraz czy partycja rozpoczyna się i kończy w granicach cylindrów (poza pierwszą partycją).

Niektóre wersje MS-DOS tworzą pierwszą partycję, która nie rozpoczyna się na granicy cylindra, lecz na 2 sektorze pierwszego cylindra. Partycje rozpoczynające się na cylindrze 1 nie mogą rozpoczynać się na granicy cylindra, lecz raczej nie powinno to sprawiać problemów, chyba że używany jest OS/2.

Dla najlepszych wyników, zawsze powinno się używać fdiska specyficznego dla danego systemowi operacyjnemu. Na przykład, partycje dosowe powinno się tworzyć dosowym FDISK-iem, a linuksowe — linuksowym fdiskiem lub cfdisk(8)iem.

KOLORY

The output colorization is implemented by terminal-colors.d(5) functionality. Implicit coloring can be disabled by an empty file

    /etc/terminal-colors.d/fdisk.disable

for the fdisk command or for all tools by

    /etc/terminal-colors.d/disable

The user-specific $XDG_CONFIG_HOME/terminal-colors.d or $HOME/.config/terminal-colors.d overrides the global setting.

Note that the output colorization may be enabled by default, and in this case terminal-colors.d directories do not have to exist yet.

The logical color names supported by fdisk are:

header
    Nagłówek wyjściowych tablic/tabel.

help-title
    Tytuły sekcji pomocy.

warn
    Ostrzeżenia.

welcome
    Powitania.

ŚRODOWISKO

FDISK_DEBUG=all
    włącza wyjście debugowania fdisk.

LIBFDISK_DEBUG=all
    włącza wyjście debugowania libfdisk.

LIBBLKID_DEBUG=all
    włącza wyjście debugowania libblkid.

LIBSMARTCOLS_DEBUG=all
    włącza wyjście debugowania libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    używa widocznych znaków wypełniających.

LOCK_BLOCK_DEVICE=<tryb>
    używa blokowania na wyłączność BSD. Tryb to "1" lub "0". Więcej informacji w opisie opcji --lock.

AUTORZY

Oryginalną wersję napisali Andries E. Brouwer, A. V. Le Blanc i inni.

ZOBACZ TAKŻE

cfdisk(8), mkfs(8), partx(8), sfdisk(8)

ZGŁASZANIE BŁĘDÓW

Raporty o błędach proszę zgłaszać pod adresem

DOSTĘPNOŚĆ

Polecenie fdisk jest częścią pakietu util-linux i można je pobrać ze strony

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.