FDISK(8) | Administracja systemem | FDISK(8) |
fdisk - obsługa dyskowej tablicy partycji
fdisk [opcje] urządzenie
fdisk -l [urządzenie...]
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.
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.
Domyślna listę kolumn można rozszerzyć, jeśli listę poda się w formacie +lista (np. -o +UUID).
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/devices.txt).
Okno "ostatni sektor" ("last sector") akceptuje podanie rozmiaru partycji za pomocą liczby sektorów albo w notacji +rozmiar{K,M,G,...}.
Rozmiar poprzedzony znakiem + jest interpretowany jako relatywny do pierwszego sektora partycji. W takim przypadku oczekiwane jest podanie rozmiaru 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,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.
fdisk pozwala na odczytanie (poleceniem "I") skryptów kompatybilnych z sfdisk. 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, sfdisk, fdisk i pozostałymi programami libfdisk. Więcej szczegółów w podręczniku sfdisk(8).
GPT (GUID Partition Table)
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)
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
Typu IRIX/SGI
Gdy zaktualizowano tablicę partycji, to przed wyjściem wykonywane jest sync() i ioctl(BLKRRPART) (ponowne odczytanie tablicy partycji z dysku).
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 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 cfdiskiem.
Jawne kolorowanie można wyłączyć za pomocą pustego pliku /etc/terminal-colors.d/fdisk.disable.
Więcej informacji o konfiguracji kolorów zawiera podręcznik terminal-colors.d(5). Logiczne nazwy kolorów obsługiwane przez fdisk to:
Oryginalną wersję napisali Andries E. Brouwer, A. V. Le Blanc i inni.
Polecenie fdisk jest częścią pakietu util-linux i jest dostępne pod adresem ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM) <pborys@p-soft.silesia.linux.org.pl>, Robert Luberda (PTM) <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 2.28 oryginału.
luty 2016 | util-linux |