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 i plastry

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

1.  Projektowanie schematu podziału

Domyślny schemat podziału

Jeśli nie mamy ochoty samodzielnie rozrysowywać schematu podziału dysku, możemy skorzystać z domyślnego, z którego korzystamy w podręczniku:

Partycja System plików Rozmiar Opis
/dev/sda1 Mapa partycji 31.5k Mapa partycji
/dev/sda2 (bootstrap) 800k Apple_Bootstrap
/dev/sda3 (swap) 512M Partycja wymiany
/dev/sda4 ext3 Pozostałe miejsce Partycja root

Uwaga: Są też partycje o nazwach w stylu: Apple_Driver43, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches. Jeśli nie zamierzamy używać MacOS 9 możemy je usunąć, ponieważ ani MacOS X ani Linux ich nie potrzebują. Do ich usunięcia trzeba użyć programu parted, mac-fdisk nie jest na razie w stanie ich skasować.

W dalszej części tekstu wyjaśnimy jak wiele i jak dużych partycji należy utworzyć. Można pominąć te informacje i przejść bezpośrednio do Apple G5: Partycjonowanie dysku przy pomocy mac-fdisk lub IBM pSeries: Partycjonowanie dysku przy pomocy fdisk.

Jak dużo i jak wielkich?

Ilość partycji ściśle zależy od danego środowiska. Na przykład, jeśli administrujemy systemem mającym wielu użytkowników, prawdopodobnie uznamy za stosowne oddzielenie /home aby poprawić bezpieczeństwo i uprościć tworzenie kopii zapasowych. Jeżeli docelowym zastosowaniem Gentoo jest serwer poczty, na osobnej partycji powinno się umieścić /var, gdzie przechowywane są listy. Dobry wybór systemu plików może znacznie zwiększyć wydajność. Oddzielenie /opt jest dobrym rozwiązaniem na serwerach gier, gdyż większość używanego oprogramowania zostanie tam zainstalowana. Powód jest podobny jak przy /home: bezpieczeństwo i kopie zapasowe. Na pewno warto zapewnić dużo wolnego miejsca na /usr, ponieważ będą tam się znajdowały nie tylko dane wszystkich zainstalowanych pakietów, ale również ważące 500 MB drzewo Portage i kod źródłowy programów.

Jak widać, wiele zależy od oczekiwanego rezultatu. Wydzielenie partycji lub woluminów ma wiele zalet:

  • Mamy możliwość dostosowania jak najwydajniejszego do danego zastosowania systemu plików dla poszczególnych partycji lub woluminów.
  • Zapełnienie całego wolnego miejsca na partycji przez wadliwie działające narzędzie nie ma szkodliwego wpływu na całość systemu.
  • Jeśli to konieczne, można skrócić czas kontroli systemów plików, dzięki możliwości jednoczesnego dokonywania jej na kilku partycjach (ma to znaczenie zwłaszcza na sprzęcie z wieloma dyskami).
  • Montując część partycji lub woluminów z opcjami read-only (tylko do odczytu), nosuid (ignorowane są bity setuid), noexec (ignorowane są bity wykonywalności) itd. można znacznie poprawić bezpieczeństwo.

Niestety zbyt rozbudowany podział niesie z sobą spore niebezpieczeństwo: źle zaplanowany zaowocuje pustkami na zbyt dużych i ciasnotą na zbyt małych partycjach. Ponadto dla dysków opartych na interfejsach SCSI i SATA jest limit maksymalnie 15 partycji.

1.  Apple G5: Partycjonowanie dysku przy pomocy mac-fdisk

Aby utworzyć partycje skorzystamy z programu mac-fdisk:

Listing 1.1: Uruchamianie mac-fdisk

# mac-fdisk /dev/sda

Zaczniemy od pozbycia się starych partycji, aby zrobić miejsce na nowy system. Skorzystamy w tym celu z polecenia d. Zapyta ono o numer kasowanych partycji.

Następnie zakładamy partycję Apple_bootstrap za pomocą b. Zostaniemy zapytani o początkowy blok. Wpiszemy numer pierwszej wolnej partycji, a następnie literę p. Na przykład druga partycja to 2p.

Uwaga: To nie jest partycja "boot". Nie jest nawet używana przez Linuksa; nie potrzeba na niej miejsca do założenia systemu plików, nie powinno się jej nawet montować. Użytkownicy PPC nie potrzebują osobnej partycji boot.

Teraz stworzymy partycję wymiany za pomocą c. Mac-fdisk ponownie zapyta o blok początkowy. Jako, że wcześniej skorzystaliśmy z 2, teraz wpiszemy 3p. Gdy zostaniemy zapytani o rozmiar, wpisujemy 512M (lub inny na jaki się zdecydowaliśmy - 512MB to zalecane minimum). Następnie na pytanie o nazwę wpisujemy swap (koniecznie).

Żeby założyć partycję root, wpisujemy c, następnie 4p, aby wybrać blok od którego ma się zaczynać. Na pytanie o rozmiar ponownie wpiszemy 4p, mac-fdisk przydzieli jej całą pozostałą wolną przestrzeń. Koniecznie nadajemy jej nazwę root.

Na zakończenie zachowujemy zmiany i opuszczamy mac-fdisk poleceniami w oraz q.

Uwaga: Aby się upewnić, że wszystko zostało poprawnie wykonane, należy uruchomić mac-fdisk jeszcze raz i sprawdzić czy są tam wszystkie nowo utworzone partycje. Jeśli nie widać żadnych partycji lub też nie ma zmian, które przed chwilą wprowadziliśmy, należy ponownie wprowadzić zmiany wpisując i. Warto zauważyć, że polecenie to usuwa wszystkie obecne partycje i zastępuje je tymi odtworzonymi.

Następnie przechodzimy do paragrafu Zakładanie systemów plików.

1.  IBM pSeries, iSeries i OpenPower: Partycjonowanie dysku przy pomocy fdisk

Uwaga: Aby skorzystać z tablicy RAID podczas instalacji Gentoo na sprzęcie opartym na POWER-5 należy uruchomić iprconfig i sformatować dyski do formatu "Advanced Function" i utworzyć na nich tablice dyskowe. Należy rozważyć zainstalowanie tego pakietu po zakończeniu instalacji.

Jeżeli posiadamy urządzenie SCSI bazujące na ipr, powinniśmy uruchomić potrzebne narzędzia już teraz.

Listing 1.1: Uruchamianie narzędzi ipr

# /etc/init.d/iprinit start

Zademonstrujemy teraz tworzenie przykładowego schematu podziału dysku takiego jak w podanym przykładzie:

Partycja Opis
/dev/sda1 Partycja PPC PReP Boot
/dev/sda2 Partycja wymiany
/dev/sda3 Partycja root

Oczywiście można, a czasem nawet powinno się dostosować ten schemat do własnych potrzeb.

Przeglądanie obecnego podziału

fdisk to popularne i wygodne narzędzie do partycjonowania dysków. Zacznijmy od uruchomienia go dla naszego dysku (pokażemy to na przykładzie /dev/sda):

Listing 1.1: Uruchamianie fdisk

# fdisk /dev/sda

Naszym oczom ukaże się taki znak zachęty:

Listing 1.1: Znak zachęty fdisk

Command (m for help):

Jeżeli na naszym dysku cały czas znajdują się partycje AIX, otrzymamy poniższy komunikat błędu:

Listing 1.1: Komunikat błędu fdisk

  There is a valid AIX label on this disk.
  Unfortunately Linux cannot handle these
  disks at the moment.  Nevertheless some
  advice:
  1. fdisk will destroy its contents on write.
  2. Be sure that this disk is NOT a still vital
     part of a volume group. (Otherwise you may
     erase the other disks as well, if unmirrored.)
  3. Before deleting this physical volume be sure
     to remove the disk logically from your AIX
     machine.  (Otherwise you become an AIXpert).

Command (m for help):

W takim przypadku nie należy się przejmować, gdy po wciśnięciu o możemy stworzyć nową tablicę partycji.

Ostrzeżenie: Powyższa czynność spowoduje usunięcie każdej zainstalowanej wersji AIX.

Aby wyświetlić obecną konfigurację partycji, wpisujemy p:

Listing 1.1: Przykładowa konfiguracja partycji

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          12       53266+  83  Linux
/dev/sda2              13         233      981571+  82  Linux swap
/dev/sda3             234         674     1958701+  83  Linux
/dev/sda4             675        6761    27035410+   5  Extended
/dev/sda5             675        2874     9771268+  83  Linux
/dev/sda6            2875        2919      199836   83  Linux
/dev/sda7            2920        3008      395262   83  Linux
/dev/sda8            3009        6761    16668918   83  Linux

Command (m for help):

Na prezentowanym dysku znajduje się sześć linuksowych systemów plików (każdy na osobnej partycji, oznaczonej jako "Linux") oraz partycja wymiany (oznaczona jako "Linux swap").

Usuwanie wszystkich partycji

Zacznijmy od usunięcia wszystkich partycji z dysku. Wpisujemy d, aby skasować partycję. Na przykład, aby skasować obecne /dev/sda1:

Uwaga: Jeśli nie chcemy, nie musimy kasować wszystkich partycji. Polecamy zrobienie kopii zapasowych danych przed przystąpieniem do jakiejkolwiek operacji na partycjach.

Listing 1.1: Usuwanie partycji

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

Nasza partycja została zaznaczona do usunięcia. Nie będzie więcej pojawiać się po wydaniu polecenia p, ale pozostanie nienaruszona dopóki zmiany nie zostaną zapisane fizycznie. Jeśli popełnimy błąd i zechcemy anulować wszystkie wprowadzone zmiany, wpisujemy natychmiast q i wciskamy Enter.Niefortunne modyfikacje odejdą w niepamięć.

Zakładając, że chcemy pozbyć się wszystkich istniejących partycji, na przemian wykonywać będziemy p, aby wyświetlić ich listę i po kolei kasować je poleceniem d z odpowiednim numerem. Po ukończeniu, p powinno dać następujący rezultat:

Listing 1.1: Pusta tablica partycji

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

Kiedy nasza tymczasowa kopia tablicy partycji będzie pusta, możemy rozpocząć tworzenie nowego podziału. Pokażemy to na przykładzie domyślnego omawianego schematu. Oczywiście jeśli zamierzamy używać innego, należy zmodyfikować prezentowane polecenia.

Tworzenie partycji PPC PReP boot

Na początek stworzymy małą partycję PRep boot. Wpisujemy n, aby stworzyć nową partycję, następnie p, aby była to partycja podstawowa, a następnie 1, ponieważ ma to być pierwsza partycja podstawowa. Kiedy program zapyta o pierwszy cylinder wciskamy Enter, a kiedy zapyta o ostatni wpisujemy +7M, dzięki czemu stworzymy partycję o rozmiarze 7 MB. Kiedy skończymy wpisujemy t, aby wybrać typ partycji, 1, aby wybrać pierwszą, świeżo utworzoną partycję, a następnie 41 żeby ustawić jej typ na "PPC PReP Boot". Na koniec oznaczamy partycję PReP jako uruchamialną.

Uwaga: Partycja PReP boot musi być mniejsza niż 8 MB.

Listing 1.1: Tworzenie partycji PReP boot

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
      e   extended
      p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6761, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-6761, default
6761): +8M

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 41
Changed system type of partition 1 to 41 (PPC PReP Boot)

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

Teraz po wpisaniu p wydruk podziału dysku powinien wyglądać tak:

Listing 1.1: Utorzona partycja boot

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           3       13293   41  PPC PReP Boot

Command (m for help):

Tworzenie partycji wymiany

Nadszedł czas na utworzenie partycji wymiany. Ponownie skorzystamy z polecenia n, następnie naciskamy p gdyż ma to być partycja podstawowa i 2, ponieważ będzie ona drugą tego typu. Zapytani o pierwszy cylinder wciskamy Enter, natomiast na pytanie o ostatni wpisujemy +512M, żeby nadać partycji rozmiar 512MB. Po ukończeniu wykonujemy t, aby zmienić jej typ, 2, aby wybrać tę, którą właśnie stworzyliśmy i 82, żeby oznaczyć ją jako "Linux Swap". Teraz polecenie p powinno dać następujący listing:

Listing 1.1: Wydruk podziału po utworzeniu partycji wymiany

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           3       13293   41  PPC PReP Boot
/dev/sda2               4         117      506331   82  Linux swap

Command (m for help):

Tworzenie partycji root

Na koniec, utworzymy partycję root. Jeszcze raz posłużymy się w tym celu poleceniem n. Zapytani o rodzaj wpisujemy p, aby była partycją podstawową, następnie 3, gdyż będzie już trzecią tego typu, czyli w naszym przypadku /dev/hda3. Na pytanie o pierwszy i ostatni cylinder wciskamy Enter, dzięki temu zajmie ona całą pozostałą wolną przestrzeń. Teraz polecenie p powinno pokazać następujący wydruk:

Listing 1.1: Wydruk podziału po utworzeniu partycji root

Command (m for help): p

Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1           3       13293   41  PPC PReP Boot
/dev/sda2               4         117      506331   82  Linux swap
/dev/sda3             118        6761    29509326   83  Linux

Command (m for help):

Zapisywanie podziału partycji

Aby zachować ustalony podział i opuścić fdisk wpisujemy w.

Listing 1.1: Zachowywanie zmian i zamykanie fdisk

Command (m for help): w

Następnie przechodzimy 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 jest to obojętne jakie zostaną wybrane lub odpowiadają nam domyślne ustawienia w podręczniku, przejdźmy do paragrafu Zakładanie systemów plików na partycjach. W przeciwnym wypadku polecamy dalszą lekturę aby dowiedzieć się więcej na ich temat.

Zakładanie systemów plików na partycjach

Aby założyć na woluminie lub partycji system plików należy skorzystać z odpowiednich narzędzi:

System plików Program do zakładania
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Na przykład, aby założyć ext3 na partycji root (w naszym przypadku /dev/sda4), powinniśmy wykonać następujące polecenie:

Listing 1.1: Zakładanie systemu plików na partycji

# mke2fs -j /dev/sda4

Teraz utwórzmy odpowiednie systemy plików dla wszystkich partycji.

Ważne: Jeśli na partycji głównej (/ ma być ReiserFS, nie wolno zmieniać domyślnego rozmiaru bloku jeśli jednocześnie wybiera się program yaboot jako program ładujący w rozdziale (Konfigurowanie bootloadera).

Aktywacja partycji wymiany

Aby utworzyć partycję wymiany skorzystamy z programu mkswap.

Listing 1.1: Tworzenie partycji wymiany

# mkswap /dev/sda3

Aby ją aktywować korzystamy z polecenia swapon:

Listing 1.1: Aktywacja partycji wymiany

# swapon /dev/sda3

Przy pomocy przedstawionych powyżej poleceń tworzymy i aktywujemy partycję wymiany.

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. Pokażemy to na przykładzie partycji root. Należy pamiętać o stworzeniu punktów montowania dla każdej stworzonej partycji. W przykładzie tworzymy punkt montowania dla głównej partycji, a następnie montujemy ją tam:

Listing 1.1: Montowanie partycji

# mkdir /mnt/gentoo
# mount /dev/sda4 /mnt/gentoo

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

Kolejny rozdział to (wypakowywanie plików instalacyjnych)

Zaktualizowano 1 kwietnia 2008

Oryginalna wersja dokumentu nie jest już aktualizowana

Donate to support our development efforts.

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