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 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. Na 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. Należy wybrać najlepszy układ systemu plików dla naszego komputera PowerPC.

Komputer Apple New World

Apple New World jest dość prosty w konfiguracji komputerem. Pierwszą partycją jest zawsze partycja Apple Partition Map. Partycja ta ma za zadanie przechowywać informację o układzie naszych partycji. Nie można jej usunąć. Kolejną partycją zawsze powinna być partycja bootstrap. Partycja ta posiada mały (800KB) system plików HFS, którego zadaniem jest przechowywanie kopii zapasowej programu ładującego Yaboot oraz plików konfiguracyjnych tego programu. Partycja ta nie pełni takiej samej roli jak partycja /boot na innych architekturach. Po takiej partycji zazwyczaj znajdują się standardowe systemy plików Linux, zgodnie z przedstawionym poniżej schematem. Główna partycja posiada system plików, na którym zainstalowany jest system Gentoo. Jeżeli chcemy mieć dwa systemy, musimy się upewnić, że partycja OSX znajduje się za partycją bootstrap, tak aby program yaboot uruchamiał się w pierwszej kolejności.

Uwaga: Na dysku mogą znajdować się partycje "Disk Driver" takie jak Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches. Używa się ich do uruchamiania systemu MacOS, więc jeśli nie posiadamy tego systemu, można je bezpiecznie usunąć poprzez uruchomienie programu mac-fdisk z opcją i. Spowoduje to całkowite wyczyszczenie dysku! Jeśli mamy wątpliwości zostawmy te partycje w spokoju.

Uwaga: Jeżeli do podzielenia dysku użyliśmy programu Apple Disk Utility, między partycjami może znajdować się wolna 128MB przestrzeń, którą Apple rezerwuje dla "przyszłych zastosowań". Można bezpiecznie usunąć tę wolną przestrzeń.

Partycja Rozmiar System plików Opis
/dev/sda1 32k Brak Apple Partition Map
/dev/sda2 800k HFS Apple Bootstrap
/dev/sda3 512Mb Swap Linux Swap
/dev/sda4 Pozostała część dysku ext3, reiserfs, xfs Partycja główna Linux

Komputery Apple Old World

Komputery Apple Old World są już nieco trudniejsze w konfiguracji. Pierwszą partycją jest zawsze partycja Apple Partition Map. Partycja ta ma za zadanie przechowywać informację o układzie naszych partycji. Nie można jej usunąć. Jeżeli używamy BootX, w konfiguracji przedstawionej poniżej założono, że MacOS jest zainstalowany na oddzielnym dysku. W przeciwnym wypadku, na dysku znajdowała będzie się dodatkowa partycja dla "Apple Disk Drivers" zawierająca Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches oraz instalacja MacOS. Jeżeli używamy Quik, będziemy musieli stworzyć partycję boot, aby mieć gdzie przetrzymywać jądro. Po partycji boot, należy stworzyć standardowe systemy plików Linux, zgodnie ze schematem przedstawionym poniżej. Partycja wymiany jest miejscem, wykorzystywanym w sytuacji gdy system wykorzystał już całą dostępną fizyczną pamięć. Główna partycja zawiera system plików, na którym zainstalowany jest system Gentoo.

Uwaga: Jeżeli używamy komputera OldWorld, będziemy cały czas potrzebowali MacOS. W poniższym schemacie, założyliśmy, że MacOS zainstalowany jest na oddzielnej partycji.

Partycja Rozmiar System plików Opis
/dev/sda1 32k Brak Apple Partition Map
/dev/sda2 32Mb ext2 Quik Boot Partition (tylko quik)
/dev/sda3 512Mb Swap Linux Swap
/dev/sda4 Pozostała część dysku ext3, reiserfs, xfs Główna partycja Linux

Pegasos

Układ partycji Pegasos jest podobno do układu Apple. Pierwsza partycją jest partycją boot, zawierającą jądra, które chcemy uruchomić. Dodatkowo znajduje się tutaj skrypt Open Firmware, który wyświetla menu podczas uruchamiania komputera. Po partycji boot, znajdują się standardowe systemy plików Linux, umieszczone zgodnie ze schematem znajdującym się poniżej. Partycja wymiany jest miejscem, wykorzystywanym w sytuacji gdy system wykorzystał już całą dostępną fizyczną pamięć. Główna partycja zawiera system plików, na którym zainstalowany jest system Gentoo.

Partycja Rozmiar System plików Opis
/dev/sda1 32Mb affs1 lub ext2 Partycja boot
/dev/sda2 512Mb Swap Linux Swap
/dev/sda3 Pozostała część dysku ext3, reiserfs, xfs Główna partycja Linux

IBM PReP (RS/6000)

Komputery bazujące na referencyjnej platformie IBM PowerPC (PReP) potrzebują małej partycji boot PReP, po której należy utworzyć partycję wymiany oraz partycję główną.

Partycja Rozmiar System plików Opis
/dev/sda1 800k Brak Partycja boot PReP (Typ 0x41)
/dev/sda2 512Mb Swap Linux Swap (Typ 0x82)
/dev/sda3 Pozostała część dysku ext3, reiserfs, xfs Główna parycja Linux (Typ 0x83)

Ostrzeżenie: Program parted ma możliwość zmiany rozmiaru partycji, również HFS+. Niestety wiąże się to z dużym ryzykiem w przypadku partycji HFS+ używających księgowania. Należy wyłączyć księgowanie w Mac OS X, przed zmianą rozmiaru partycji. Wszystkie próby zmiany rozmiaru partycji przy pomocy parted to spore ryzyko, należy więc wykonać najpierw kopie zapasowe danych!

Jeżeli interesuje nas informacja o odpowiednim rozmiarze partycji lub jaka ich liczba będzie nam potrzebna, powinniśmy przeczytać dalszą część tego rozdziału. W przeciwnym wypadku należy przejść do części Domyślnie: Partycjonowanie dysku za pomocą mac-fdisk lub Alternatywnie: Partycjonowanie dysku przy pomocy parted (zwłaszcza Pegasos).

Jak dużo i jak wielkich?

Ilość partycji ściśle zależy od naszego środowiska. Na przykład jeśli administrujemy systemem mającym wielu użytkowników prawdopodobnie uznamy za stosowne oddzielenie /home, co poprawi bezpieczeństwo i uprości proces tworzenia kopii zapasowych. Jeżeli docelowym zastosowaniem instalowanego systemu jest serwer pocztowy to na osobnej partycji należy umieścić /var gdzie przechowywane są listy. Dobry wybór systemu plików może tu znacznie zwiększyć wydajność. Za to oddzielenie /opt jest dobrym rozwiązaniem na serwerach gier, gdyż większość używanego oprogramowania będzie instalowana właśnie tam. Powodami przyjęcia takiego rozwiązania są również bezpieczeństwo i łatwość tworzenia kopii zapasowych. Warto upewnić się, że partycja /usr będzie wystarczająco duża ponieważ będą tam znajdowały się nie tylko dane wszystkich aplikacji, ale również ważące 500 MB drzewo Portage.

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

  • Mamy możliwość dostosowania jak najwydajniejszego w danym zastosowaniu 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 jest limit maksymalnie 15 partycji.

1.  Domyślnie: Partycjonowanie dysku za pomocą mac-fdisk

Aby utworzyć partycje skorzystamy z programu mac-fdisk:

Listing 1.1: Uruchamianie mac-fdisk

# mac-fdisk /dev/sda

Jeżeli używaliśmy Apple Disk Utility do pozostawienia miejsca dla Linuksa, najpierw musimy usunąć partycje utworzone poprzednio. Skorzystamy w tym celu z polecenia d. Zapyta ono o numer kasowanych partycji. Zwykle pierwsza partycja na komputerach NewWorld (Apple_partition_map) nie może zostać skasowana. Jeżeli chcemy rozpocząć pracę z czystym dyskiem, należy uruchomić program z parametrem i. Opcja ta całkowicie usuwa zawartość dysku, więc należy używać jej ostrożnie.

Następnie zakładamy partycję Apple_bootstrap za pomocą b. Zostaniemy zapytani o początkowy blok. Jeśli poprzednio wybraliśmy na ten cel trzecią partycję, wpiszemy 3p.

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 powinien jej nawet montować. Użytkownicy Apple nie potrzebują osobnej partycji rozruchowej.

Teraz stworzymy partycję wymiany za pomocą c. Program mac-fdisk ponownie zapyta o blok początkowy. Jako, że wcześniej skorzystaliśmy z 3, teraz wpiszemy 4p. Gdy zostaniemy zapytani o rozmiar wpisujemy 512M (lub inny na jaki się zdecydowaliśmy - 512MB to zalecane minimum, jednak powszechnie akceptowaną normą jest podwójny iloczyn posiadanej fizycznej pamięci). Następnie na pytanie o nazwę wpisujemy swap (koniecznie).

Żeby założyć partycję root, wpiszemy c, następnie 5p, aby wybrać blok od którego ma się zaczynać. Na pytanie o rozmiar ponownie wpiszemy 5p, mac-fdisk przydzieli jej całą pozostałą wolną przestrzeń Należy koniecznie nadać 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 -l 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, przy pomocy klawisza i. Należy zwrócić uwagę, ż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.  Alternatywnie: Partycjonowanie dysku przy pomocy parted (zwłaszcza Pegasos)

Program parted, czyli Partition Editor, jest w stanie obsłużyć partycje HFS+ używane przez Mac OS i Mac OS X. Dzięki niemu można zmienić rozmiar obecnych partycji, aby zrobić miejsce na partycje dla Linuksa. W przykładzie poniżej opiszemy jednak partycjonowanie dysku jedynie dla maszyn Pegasos.

Zacznijmy od uruchomienia programu parted:

Listing 1.1: Uruchamianie parted

# parted /dev/sda

Jeśli dysk nie jest jeszcze podzielony na partycje, uruchamiamy mklabel amiga, aby utworzyć nową etykietę dla tego napędu.

Zawsze można wpisać polecenie print, aby wyświetlić aktualną tabelę partycji. Zmiany jakie wprowadzimy nie zostaną zapisane aż do czasu wyjścia z aplikacji. Przez cały czas można anulować omyłkowo wprowadzone zmiany przy pomocy kombinacji klawiszy Ctrl-C, która przerwie działanie programu.

Jeśli zamierzamy na swojej maszynie zainstalować również MorphOS musimy utworzyć system plików affs1 na początku napędu. Do zainstalowania kernela MorphOS'a wystarczy 32MB miejsca. Jeśli mamy Pegasos lub chcemy używać reiserfs bądź xfs będzie trzeba ponadto trzymać na tej partycji kernel Linuksa (Pegasos II może zostać zabootowany z partycji ext2/ext3 lub affs1). Aby utworzyć partycję wpiszemy polecenie mkpart primary affs1 START END, gdzie START i END to obszar w megabajtach (np. 0 32 tworzy partycję o rozmiarze 32MB rozpoczynając od 0MB i kończąc na 32MB. Jeżeli zechcemy utworzyć partycję ext2 lub ext3, musimy zamienić zmienną affs1 z polecenia mkpart na jeden z wybranych przez nas systemów).

Należy utworzyć dwie partycje dla systemu Linux, jeden główny system plików oraz partycję typu swap. Należy uruchomić polecenia mkpart primary START END, aby utworzyć każdą z nich zastępując START oraz END wymaganymi przez nas wielkościami.

Zalecaną wielkością dla partycji swap jest podwójny rozmiar posiadanej przez nas pamięci RAM, jednak minimalną wartością jest 512MB. Aby utworzyć partycję swap należy wykonać polecenie mkpart primary linux-swap START END, a w miejsce START i END wpisać pożądane przez nas wartości.

Kiedy skończymy pracę w parted wyłączamy go wpisując po prostu quit.

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 wiemy jakie system plików wybrać lub odpowiadają nam domyślne ustawienia w podręczniku, przejdźmy do paragrafu Zakładania systemów plików na partycjach. W przeciwnym wypadku polecamy dalszą lekturę aby dowiedzieć się więcej 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.

Uruchamianie partycji wymiany

Partycje wymiany inicjalizujemy za pomocą polecenia mkswap:

Listing 1.1: Tworzenie partycji wymiany

# mkswap /dev/sda3

Aby uruchomić partycję wymiany, używamy polecenia swapon:

Listing 1.1: Uruchamianie partycji wymiany

# swapon /dev/sda3

Partycję wymiany tworzymy i uaktywniamy przed stworzeniem pozostałych systemów plików.

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

Na przykład, aby założyć ext3 na partycji boot (w naszym przypadku /dev/sda4), należy wykonać następujące polecenia:

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

# mke2fs -j /dev/sda4

Teraz należy stworzyć systemy plików na naszych nowo utworzonych partycjach (lub woluminach logicznych).

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).

Uwaga: Na maszynach Pegasos II kernel musi znajdować się na systemach plików ext2, ext3 lub affs1. Maszyny NewWorld można uruchomić z ext2, ext3, ReiserFS, a nawet z HFS/HFS+. Na maszynach OldWorld uruchamiając komputer przy pomocy BootX, jądro musi znajdować się na partycji HFS, jednak zostanie to wykonane po konfiguracji programu ładującego.

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:

Listing 1.1: Montowanie partycji

# mount /dev/sda4 /mnt/gentoo

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

Następnie przechodzimy 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.