Gentoo Logo

1.  Wprowadzenie do urządzeń blokowych

Urządzenia blokowe

Rzućmy okiem na aspekty Gentoo Linux oraz ogólnie Linuksa związane z dyskami. Omówimy systemy plików, partycje oraz urządzenia blokowe. Następnie opiszemy proces podziału twardego dysku tak, aby jak najlepiej wykorzystać dostępne miejsce.

Zaczniemy od omówienia urządzeń blokowych. Najpopularniejszym z nich prawdopodobnie jest /dev/sda reprezentujący w Linuksie pierwszy napęd. Napędy SATA i SCSI otrzymują nazwy z rodziny /dev/sd*. Dzięki libata, nawet stare napędy IDE są nazywane /dev/sd*. Urządzenie to dawniej nazywało się /dev/hda.

Urządzenia blokowe stanowią abstrakcyjny interfejs dysków. Programy użytkownika mogą z nich korzystać nie martwiąc się o to czy napędy są typu IDE, SCSI czy jakiegoś innego. Przechowywane dane adresuje się jako ciąg 512-bajtowych bloków.

Partycje

Teoretycznie możliwe jest przeznaczenie całego dysku na system, zazwyczaj nie jest to jednak rozwiązanie zbyt praktyczne. Zamiast tego dzielimy napęd na mniejsze i dużo łatwiejsze w zarządzaniu urządzenia blokowe. W większości platform nazywane są one partycjami.

Pierwsza partycja na pierwszym dysku SCSI to /dev/sda1, druga to /dev/sda2 i tak dalej.

Trzecia partycja na systemach Sun jest ustawiona jako "całodyskowa". Nie może zawierać żadnego systemu plików.

Użytkownicy przyzwyczajeni do schematu partycjonowania w stylu DOS powinni pamiętać, że Sun nie ma partycji podstawowych i rozszerzonych. Zamiast tego można mieć maksymalnie 8 zwykłych partycji dyskowych, z tym, że trzecia jest zarezerwowana do specjalnych celów.

1.  Projektowanie schematu podziału

Domyślny schemat podziału

Jeśli nie masz ochoty samodzielnie rozrysowywać schematu podziału swojego dysku, możesz skorzystać z domyślnego, który prezentujemy poniżej.

Nie polecamy posiadania osobnej partycji /boot na SPARC, ponieważ bardzo to komplikuje konfigurację bootloadera.

Partycja: System plików: Rozmiar: Punkt montowania: Opis:
/dev/sda1 ext3 <2 GB / Partycja root. Na systemach sparc64 ze starszymi wersjami OBP musi mieć rozmiar mniejszy niż 2 GB oraz być pierwszą partycją na dysku.
/dev/sda2 swap 512 MBytes brak Partycja wymiany. Żeby wykonać bootstrap oraz kilka większych kompilacji musisz mieć co najmniej 512MB RAM (łącznie z partycją wymiany).
/dev/sda3 brak cały dysk brak Parycja "whole disk". Niezbędna dla systemów SPARC.
/dev/sda4 ext3 co najmniej 2 GB /usr Partycja /usr. Tu będą instalowane programy. Domyślnie na tej partycji znajduje się również drzewo Portage.
/dev/sda5 ext3 co najmniej 1GB /var Partycja /var. Używana do przechowywania danych generowanych przez programy. Domyślnie Portage używa tej partycji jako miejsca, gdzie kompiluje programy. Jeśli zamierzasz skompilować kilka większych programów jak Mozilla czy OpenOffice.org będziesz potrzebował ponad 1GB miejsca na tymczasowe pliki.
/dev/sda6 ext3 pozostałe miejsce /home Partycja /home. Tu będą znajdować się katalogi domowe użytkowników.

1.  Partycjonowanie dysku za pomocą fdisk

Teraz pokażemy jak utworzyć partycje takie jak te zaprezentowane w powyższym przykładowym schemacie podziału dysku:

Partycja Opis
/dev/sda1 /
/dev/sda2 swap
/dev/sda3 whole disk slice
/dev/sda4 /usr
/dev/sda5 /var
/dev/sda6 /home

Możesz dostosować ten schemat do swoich potrzeb. Pamiętaj jednak, że na starszych systemach partycja root musi znajdować się na pierwszych 2GB dysku. Pamiętaj również, że na dyskach SCSI i SATA nie możesz mieć więcej niż 15 partycji.

Uruchamianie fdisk

Uruchom fdisk dla swojego dysku:

Listing 1.1: Uruchamianie fdisk

# fdisk /dev/sda

Twoim oczom ukaże się jego znak zachęty:

Listing 1.1: Znak zachęty fdisk

Command (m for help):

Aby wyświetlić dostępne partycje, wpisz p:

Listing 1.1: Wyświetlanie dostępnych partycji

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1        0       488    499712   83  Linux native
/dev/sda2      488       976    499712   82  Linux swap
/dev/sda3        0      8635   8842240    5  Whole disk
/dev/sda4      976      1953   1000448   83  Linux native
/dev/sda5     1953      2144    195584   83  Linux native
/dev/sda6     2144      8635   6646784   83  Linux native

Zwróć uwagę na Sun Disk Label. Jeśli go brakuje, oznacza to że dysk korzysta z partycji DOS. W takim razie, aby stworzyć tablicę partycji Sun, wpisz s.

Listing 1.1: Tworzenie Sun Disklabel

Command (m for help): s
Building a new sun disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Drive type
   ?   auto configure
   0   custom (with hardware detected defaults)
   a   Quantum ProDrive 80S
   b   Quantum ProDrive 105S
   c   CDC Wren IV 94171-344
   d   IBM DPES-31080
   e   IBM DORS-32160
   f   IBM DNES-318350
   g   SEAGATE ST34371
   h   SUN0104
   i   SUN0207
   j   SUN0327
   k   SUN0340
   l   SUN0424
   m   SUN0535
   n   SUN0669
   o   SUN1.0G
   p   SUN1.05
   q   SUN1.3G
   r   SUN2.1G
   s   IOMEGA Jaz
Select type (? for auto, 0 for custom): 0
Heads (1-1024, default 64):
Using default value 64
Sectors/track (1-1024, default 32):
Using default value 32
Cylinders (1-65535, default 8635):
Using default value 8635
Alternate cylinders (0-65535, default 2):
Using default value 2
Physical cylinders (0-65535, default 8637):
Using default value 8637
Rotation speed (rpm) (1-100000, default 5400): 10000
Interleave factor (1-32, default 1):
Using default value 1
Extra sectors per cylinder (0-32, default 0):
Using default value 0

Właściwe wartości parametrów znajdziesz w dokumentacji swojego dysku. Zwykle opcja automatycznej konfiguracji działa bez zarzutu.

Usuwanie istniejących partycji

Nadszedł czas na pozbycie się istniejących partycji. Do usuwania służy polecenie d. Wpisz je i naciśnij Enter. Zostaniesz zapytany o numer partycji. Jeśli ma to być /dev/hda1, wpisz:

Listing 1.1: Usuwanie partycji

Command (m for help): d
Partition number (1-4): 1

Nie powineneś kasować partycji numer 3 (whole disk). Jeśli ta partycja nie istnieje przejdź do sekcji "Tworzenie Sun Disklabel" powyżej i wykonaj zawarte w niej instrukcje.

Po usunięciu wszystkich partycji, listing podziału powinien wyglądać podobnie:

Listing 1.1: Pusty listing podziału

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda3        0      8635   8842240    5  Whole disk

Tworzenie partycji root

Stwórz teraz partycję root. W tym celu ponownie skorzystaj z polecenia n. Następnie wpisz 4, żeby wybrać czwartą partycję - w naszym przypadku /dev/hda4. Zapytany o pierwszy i ostatni cylinder wciśnij Enter. Dzięki temu partycja zajmie całą pozostałą przestrzeń. Kiedy skończysz polecenie p powinno dawać następujący rezultat:

Listing 1.1: Tworzenie partycji root

Command (m for help): n
Partition number (1-8): 1
First cylinder (0-8635): (press Enter)
Last cylinder or +size or +sizeM or +sizeK (0-8635, default 8635): +512M

Teraz po wpisaniu p powinieneś zobaczyć następujący listing partycji:

Listing 1.1: Listing kompletnej tablicy partycji

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1        0       488    499712   83  Linux native
/dev/sda3        0      8635   8842240    5  Whole disk

Tworzenie partycji wymiany

Pora stworzyć partycję wymiany. W tym celu skorzystaj z polecenia n aby rozpocząć proces zakładania, następnie wpisz 2 aby wybrać drugą partycję, w naszym przypadku /dev/sda2. Zapytany o pierwszy cylinder wciśnij Enter, natomiast na pytanie o ostatni wpisz +512M aby ustalić jej rozmiar na 512MB. Następnie wpisz t aby zmienić typ partycji i wpisz 82 żeby ustawić go na "Linux Swap". Po ukończeniu listing partycji powinien wyglądać następująco:

Listing 1.1: Listing partycji

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1        0       488    499712   83  Linux native
/dev/sda2      488       976    499712   82  Linux swap
/dev/sda3        0      8635   8842240    5  Whole disk

Tworzenie partycji /usr, /var i /home

W końcu przyszła kolej na utworzenie partycji /usr, /var i /home. Tak jak wcześniej wpisz n w celu utworzenia nowej partycji, następnie naciśnij 4, aby utworzyć trzecią partycję, w naszym przypadku /dev/sda4. Kiedy zostaniesz zapytany o pierwszy cylinder wciśnij po prostu enter. Kiedy program zapyta o ostatni cylinder wpisz wartość +2048M, co utworzy partycję o rozmiarze 2 GB. Powtórz ten proces dla sda5 i sda6, podając za każdym razem odpowiedni żądany rozmiar. Kiedy skończysz powinieneś ujrzeć coś takiego:

Listing 1.1: Końcowy listing kompletnej tablicy partycji

Command (m for help): p

Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes

   Device Flag    Start       End    Blocks   Id  System
/dev/sda1        0       488    499712   83  Linux native
/dev/sda2      488       976    499712   82  Linux swap
/dev/sda3        0      8635   8842240    5  Whole disk
/dev/sda4      976      1953   1000448   83  Linux native
/dev/sda5     1953      2144    195584   83  Linux native
/dev/sda6     2144      8635   6646784   83  Linux native

Zapisywanie zmian i opuszczanie programu

Aby zapisać wprowadzone zmiany i opuścić fdisk wpisz w:

Listing 1.1: Zapisywanie zmian i opuszczanie programu

Command (m for help): w

Kiedy już skończysz tworzyć partycje przejdź do paragrafu Tworzenie systemów plików.

1.  Tworzenie systemów plików

Wprowadzenie

Po utworzeniu partycji nadszedł czas na założenie na nich systemów plików. Jeśli nie obchodzi Cię jakie wybierzesz lub jesteś zadowolony z domyślnych ustawień w podręczniku, przejdź do paragrafu Zakładanie na partycji systemu plików. W przeciwnym wypadku czytaj dalej aby dowiedzieć się co nieco na ich temat.

Systemy plików

Jądro Linux obsługuje wiele różnych systemów plików. W tym tekście omówimy ext2, ext3, ReiserFS, XFS i JFS, ponieważ są one najczęściej używane w systemach linuksowych.

ext2 to sprawdzony i popularny linuksowy system plików, którego główną wadą jest to, że nie posiada księgowania. Powoduje to, że jego regularne kontrole przy starcie systemu bywają długotrwałe. Obecnie istnieją nowoczesne systemy plików z księgowaniem, które można szybko sprawdzić i to właśnie te polecamy naszym użytkownikom. Księgowanie zapobiega długotrwałym kontrolom podczas uruchamiania systemu oraz ewentualnym błędom spójności danych. Jeśli zamierzamy instalować Gentoo na bardzo mały dysku (mniejszym niż 4GB) musimy przekazać ext2 informacje o rezerwacji wystarczającej ilości inode w trakcie tworzenia systemu plików poprzez wydanie komendy mke2fs -T small /dev/<device>.

ext3 to odpowiednik ext2 posiadający księgowanie w trybach full oraz ordered, dzięki czemu w razie awarii dane odzyskiwane są błyskawicznie. ext3 używa indeksu drzewa HTree, który zapewnia wysoką wydajność w prawie wszystkich zastosowaniach. W skrócie, ext3 to bardzo dobry i niezawodny system plików. Jeśli zamierzamy instalować Gentoo na bardzo mały dysku (mniejszym niż 4GB) musimy przekazać ext2 informacje o rezerwacji wystarczającej ilości inode w trakcie tworzenia systemu plików poprzez wydanie komendy mke2fs -j -T small /dev/<device>.

JFS to bardzo wydajny system plików IBM wyposażony w księgowanie. Jest lekki, szybki i godny polecenia. Oparto go na drzewie B+ dzięki czemu doskonale sprawdza się w wielu bardzo różnych zastosowaniach.

ReiserFS to system plików z księgowaniem oparty na drzewie B+. Wykazuje się doskonałą wydajnością przy obsłudze bardzo wielu małych plików (kosztem zwiększonego obciążenia procesora). Nie jest tak aktywnie rozwijany jak inne systemy plików.

XFS to system plików z księgowaniem metadanych, który został zaprojektowany z myślą o skalowalności i nie posiada wielu dodatkowych możliwości. Nie jest on również zbyt odporny na problemy sprzętowe.

Zakładanie systemu plików na partycji

Aby założyć na woluminie lub partycji system plików skorzystaj z odpowiedniego narzędzia:

System plików Program do zakładania
ext2 mke2fs
ext3 mke2fs -j

Na przykład jeśli chcesz utworzyć system plików ext2 na partycji root (/dev/sda1 w naszym przykładzie) oraz ext3 na partycjach /usr, /var i /home (/dev/sda4, 5 i 6 w naszym przykładzie) powinieneś wpisać następujące polecenia:

Listing 1.1: Tworzenie systmu plików na partycjach

# mke2fs /dev/sda1
# mke2fs -j /dev/sda4
# mke2fs -j /dev/sda5
# mke2fs -j /dev/sda6

Aktywowanie partycji wymiany

Do tworzenia partycji wymiany używamy programu mkswap:

Listing 1.1: Tworzenie partycji wymiany

# mkswap /dev/sda2

Aby aktywować partycję wymiany użyj programu swapon:

Listing 1.1: Aktywacja partycji wymiany

# swapon /dev/sda2

Utwórz i aktywuj swoją partycję wymiany przy pomocy poleceń podanych powyżej.

1.  Montowanie

Po założeniu partycji i utworzeniu systemów plików, nadszedł czas na ich zamontowanie. Służy do tego program mount. Nie zapomnij utworzyć odpowiednich katalogów dla każdego z nich. Na przykład:

Listing 1.1: Mountowanie partycji

# mount /dev/sda1 /mnt/gentoo
# mkdir /mnt/gentoo/usr
# mount /dev/sda4 /mnt/gentoo/usr
# mkdir /mnt/gentoo/var
# mount /dev/sda5 /mnt/gentoo/var
# mkdir /mnt/gentoo/home
# mount /dev/sda6 /mnt/gentoo/home

Uwaga: Jeżeli chcesz przenieść /tmp na oddzielną partycję, nie zapomnij po zamontowaniu odpowiedni poprawić praw dostępu: chmod 1777 /mnt/gentoo/tmp. Dotyczy to również /var/tmp.

Musimy też zamontować system plików proc (wirtualny interfejs jądra) w /proc. Najpierw jednak umieścimy na dysku kilka plików.

Kiedy skończysz przejdź do rozdziału (Wypakowywanie plików instalacyjnych).

Zaktualizowano 2 maja 2008

Oryginalna wersja dokumentu nie jest już aktualizowana

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.