FDISK(8) Podręcznik progrmisty linuksowego FDISK(8) NAZWA fdisk - Obsługa tablicy partycji dla Linuksa SKŁADNIA fdisk [-u] [-b rozmiar_sektora] urządzenie fdisk -l [-u] [-b rozmiar_sektora] [urządzenie ...] fdisk -s partycja ... fdisk -v OPIS Dyski twarde mogą być podzielone na jeden lub więcej log icznych dysków zwanych partycjami. Podział ten jest zapisany w tablicy partycji znajdującej się w sektorze 0 dysku. W świecie BSD mówi się o tzw. "plastrach dyskowych" (`disk slices') i "etykiecie dysku" (`disklabel'). Linux potrzebuje przynajmniej jednej partycji -- mianowicie partycji przeznaczonej na główny system plików. Może używać plików i/lub partycji wymiany, ale te drugie są bardziej wydajne. Tak więc, zazwyczaj używana jest druga partycja linuksowa przeznaczona na partycję wymiany (tzw. swap). Na komputerach o architekturze zgodnej z Intelem, BIOS, używany do uruchamiania systemu, często ma dostęp tylko do pierwszych 1024 cylindrów dysku. Z tego powodu osoby mające duże dyski często tworzą trzecią par tycję o rozmiarze kilku MB, zazwyczaj montowaną w katalogu /boot, która przechowuje obraz jądra i kilka dodatkowych plików potrzebnych w czasie uruchamiania systemu, żeby mieć pewność, że te rzeczy są dostępne dla BIOS-u. Mogą być różne przyczyny, związane z bezpieczeństwem, ułatwie niem administrowania i tworzenia kopii zapasowych lub testowaniem, żeby używać większej liczby partycji niż to minimum. fdisk (w pierwszej wersji jego wywołania) to obsługiwany z pomocą menu program do działania na tablicy partycji dysku twardego. Rozumie partycje DOS-owe oraz etykiety dysków typu BSD lub SUN-a. Urządzenie jest zwykle jednym z: /dev/hda /dev/hdb /dev/sda /dev/sdb (/dev/hd[a-h] -- to dyski IDE, /dev/sd[a-p] -- dyski SCSI, /dev/ed[a-d] -- dyski ESDI, /dev/xd[ab] -- dyski XT). Nazwa urządzenia odnosi się do całego dysku. Partycja to nazwa urządzenia, za którą następuje liczba. Linux 2.0 11 czerwca 1998 1 FDISK(8) Podręcznik progrmisty linuksowego FDISK(8) Na przykład, /dev/hda1 jest pierwszą partycją pierwszego dysku twardego IDE w systemie. Dyski IDE mogą zawierać do 63 partycji, a dyski SCSI -- do 15. Zobacz także /usr/src/linux/Documentation/devices.txt. 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 sek tora (jak na przykład partycja wymiany) nie należy umieszczać w cylindrze 0, ponieważ zniszczy to etykietę dysku. Etykieta dysku typu 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 wolu minu". Nagłówek woluminu także pokrywa całą tablicę par tycji, 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 kat alogów. Żadna partycja nie może nachodzić na nagłówek woluminu. Także, nie należy zmieniać typu nagłówka wolu minu, 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 kom puterach IRIX/SGI lub podczas pracy z dyskami IRIX/SGI pod Linuksem. Tablica partycji typu DOS może opisać nieograniczoną liczbę partycji. W sektorze 0 jest miejsce na opis 4 par tycji (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 podsta wowe 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 (`off set') 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 (Cylin ders/Heads/Sectors) (zapisywana na 10+8+6 bitach). Pier wszy 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. Jeśli jest to możliwe, fdisk automatycznie uzyska informa cje o geometrii dysku. Niekoniecznie musi to być fizyczna Linux 2.0 11 czerwca 1998 2 FDISK(8) Podręcznik progrmisty linuksowego FDISK(8) geometria dysku (co więcej, nowoczesne dyski w rzeczy wistoś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 prob lemów, jeżeli Linux jest jedynym systemem na dysku. Jed nakże, jeśli dysk będzie dzielony z innymi systemami oper acyjnymi, 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ółpra cować z innymi systemami. Gdy drukowana jest tablica partycji, dokonywane jest sprawdzenie konsystencji 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 grani cach 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 cylin drze 1 nie mogą rozpoczynać się na granicy cylindra, lecz raczej nie powinno to sprawiać problemów, chyba że używasz OS/2. Funkcje sync() i ioctl() BLKRRPART są wywoływane (o ile zmieniono tablicę partycji) przed wyjściem, kiedy tablica partycji zostanie już zaktualizowana. Dawno temu było konieczne przeładowanie systemu (reboot) po użyciu fdiska. Teraz nie powinno być takiej potrzeby; co więcej, zbyt szybkie przeładowanie systemu może spowodować utratę jeszcze nie zapisanych danych. Proszę zauważyć, że zarówno jądro, jak i dysk mogą buforować dane. OSTRZEŻENIE DOS 6.x Komenda FORMAT z DOS 6.x szuka informacji w pierwszym sek torze obszaru danych partycji i traktuje je jako god niejsze 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 cfdiska lub fdiska do zmiany rozmiaru partycji dosowej, należy też użyć dd do wyzerowania pier wszych 512 bajtów tej partycji przed użyciem dosowego FOR MAT. Na przykład, po utworzeniu dosowej partycji programem cfdisk, powinno się wykonać polecenie "dd if=/dev/zero Linux 2.0 11 czerwca 1998 3 FDISK(8) Podręcznik progrmisty linuksowego FDISK(8) of=/dev/hda1 bs=512 count=1", które zeruje pierwszych 512 bajtów partycji. BĄDŹ NIEWYOBRAŻALNIE OSTROŻNY przy używaniu komendy dd, gdyż mała pomyłka może spowodować zniszczenie wszystkich danych z dysku. Dla najlepszych wyników, zawsze powinieneś używać fdiska specyficznego dla danego systemowi operacyjnemu. Na przykład, partycje dosowe powinieneś tworzyć dosowym FDISK-iem, a linuksowe -- linuksowym fdiskiem lub cfdiskiem. OPCJE -b rozmiar_sektora Określa rozmiar sektora dysku. Możliwe wartości są następująca: 512, 1024 lub 2048. (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). -l Drukuje 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 istnieje). -s partycja Wypisuje na standardowym wyjściu rozmiar partycji (blokach). -v Drukuje numer wersji fdiska i kończy działanie. BŁĘDY Istnieje kilka różnych programów *fdisk. Każdy z nich ma swoje problemy i zalety. Prosimy wypróbować ich w następującej kolejności: cfdisk, fdisk, sfdisk. (Istot nie, cfdisk jest pięknym programem, mającym surowe wyma gania co do tablic partycji, które akceptuje, tworzącym tablice partycji wysokiej jakości. Należy go używać, jeżeli tylko jest taka możliwość. fdisk jest programem mającym wiele błędów, robiącym mętne rzeczy -- zazwyczaj zdarza mu się dać sensowne wyniki. Jego pojedynczą zaletą jest obsługa etykiet dysków typu BSD i innych nie-DOS- owych tablic partycji. Należy go unikać, jeżeli tylko jest taka możliwość. sfdisk jest programem tylko dla hakerów -- interfejs użytkownika jest okropny, ale program jest poprawniejszy od fdiska i potężniejszy od zarówno fdiska, jak i cfdiska. Co więcej, może być używany niein terakcyjnie). Etykiety dysku typu IRIX/SGI nie są jeszcze obsługiwane przez jądro. Co więcej, katalogi główkowe (header direc tories) IRIX/SGI nie są jeszcze w pełni obsługiwane. Linux 2.0 11 czerwca 1998 4 FDISK(8) Podręcznik progrmisty linuksowego FDISK(8) Brak opcji "zapisz tablicę partycji do pliku". ZOBACZ TAKŻE cfdisk(8), parted(8), sfdisk(8). Linux 2.0 11 czerwca 1998 5