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