|
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ć
schemat systemu plików, który najlepiej pasuje do systemu PowerPC.
Nowy Świat Apple
Nowy Świat maszyn Apple jest w zasadzie prosty do konfiguracji. Pierwszą
partycją zawsze jest Apple Partition Map. Znajduje się na niej schemat
podziału dysku. Następna partycja zawsze powinna być samoładowalna (bootstrap
partition). Zawiera ona mały (800kb) system plików HFS, który "trzyma" kopię
bootloadera Yaboot i jego plik konfiguracyjny. Partycja ta nie jest
tym samym, co partycja /boot. Po partycji rozruchowej zaczynają
się typowe i systemy plików, jak widać na schemacie poniżej. Partycja wymiany
jest tymczasowym miejscem przechowywania danych, kiedy system wykroczy poza
swoją fizyczną pamięć. Partycja główna zawiera system plików, na którym będzie
zainstalowane Gentoo. Jeśli chcemy mieć możliwość uruchomienia dwóch systemów,
partycja z OSX może być umiejscowiona w każdym innym miejscu po partycji
samoładowalnej, aby mieć pewność, że Yaboot uruchomi się jako pierwszy.
Uwaga:
Na dysku mogą znalźć się partycje "Disk Driver", takie jak
Apple_Driver63, Apple_Driver_ATA,
Apple_FWDriver, Apple_Driver_IOKit oraz
Apple_Patches. Są one używane w procesie uruchamiania MacOS, więc
jeśli nie nie będzie to potrzebne, można je śmiało usunąć poprzez opcję i
dla programu mac-fdisk. Spowoduje to kompletne usunięcie danych z dysku,
więc w razie wątpliwości lepiej pozwolić im tam być.
|
Uwaga:
Jeśli do podziału dysku został użyty Apple Disk Utility, może się okazać, że
jest 128MB przestrzeni pomiędzy partycjami, które Apple rezerwuje do "przyszłego
użycia". Można je bezpiecznie usunąć.
|
| Partycja |
Rozmiar |
System plików |
Opis |
| /dev/sda1 |
32k |
Brak |
Mapa Partycji Apple |
| /dev/sda2 |
800k |
HFS |
Apple Bootstrap |
| /dev/sda3 |
512Mb |
Swap |
Linuks Swap |
| /dev/sda4 |
Reszta dysku |
ext3, reiserfs, xfs |
Partycja główna |
Stary Świat Apple
Stary Świat maszyn Apple jest trochę bardziej skomplikowany w konfiguracji.
Pierwsza partycja zawsze jest Apple Partition Map. Zawiera ona schemat
podziału dysku. Poniższa konfiguracja dla BootX uwzględnia zainstalowany MacOS
na oddzielnym dysku. Będą również dodatkowe partycje dla "Apple Disk Drivers"
takie jak Apple_Driver63, Apple_Driver_ATA,
Apple_FWDriver, Apple_Driver_IOkit,
Apple_Patches oraz kopia MacOS. W przypadku używania Quick, będzie
potrzeba stworzenia partycji boot, na której będzie się znajdowało jądro. Za
partycją rozruchową powinien się znajdować typowy system plików, według schematu
poniżej. Partycja wymiany jest tymczasowym miejscem do przechowywania danych,
które wykroczyły fizyczną pamięć. Partycja główna powinna zawierać system
plików, na którym zostanie zainstalowane Gentoo.
Uwaga:
Jeśli w użyciu jest maszyna OldWorld, będzie potrzeba przechowania MacOS
dostępnego. Poniższy schemat uwzględnia zainstalowaną kopię MacOS na oddzielnym
dysku.
|
| Partycja |
Rozmiar |
System plików |
Opis |
| /dev/sda1 |
32k |
Brak |
Apple Partition Map |
| /dev/sda2 |
32Mb |
ext2 |
Quick Boot Partition (tylko quick) |
| /dev/sda3 |
512Mb |
Swp |
Partycja wymiany |
| /dev/sda4 |
Reszta dysku |
ext3, reiserfs, xfs |
Główna partycja |
Pegasos
IBM PowerPC Reference Platform (PReP) wymaga małej partycji PReP na pierwszym
miejscu na dysku. Dopiero po niej należy zakładać partycje wymiany i danych.
| Partycja |
Rozmiar |
System plików |
Opis |
| /dev/sda1 |
32Mb |
affs1 lub ext2 |
Partycja rozruchowa |
| /dev/sda2 |
512Mb |
Swap |
Partycja wymiany |
| /dev/sda3 |
Reszta dysku |
Ext3, reiserfs, xfs |
Partycja główna |
IBM PReP (RS/6000)
IBM PowerPC Peference Platform (PReP) wymaga małej, aby na pierwszym miejscu w
schemacie podziały dysku znalazła się mała partycja rozruchowa, a następnie
partycja wymiany oraz partycja główna.
| Partycja |
Rozmiar |
System plików |
Opis |
| /dev/sda1 |
800k |
Brak |
PReP Boot Partition (Typ 0x41) |
| /dev/sda2 |
512Mb |
Swap |
Partycja wymiany (Typ 0x82) |
| /dev/sda3 |
Reszta dysku |
ext3, reiserfs, xfs |
Partycja główna (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, nawet jeśli zostanie ono wyłączone w Mac OS X. Wszystkie próby
zmiany rozmiaru partycji przy pomocy parted to spore ryzyko, należy więc
wykonać najpierw kopie zapasowe danych!
|
Jeśli nasze rady dotyczące rozmiarów partycji oraz ich ilości, wydaja się
interesujące, proponujemy kontynuowanie lektury. W przeciwnym wypadku
proponujemy przejść od razu do paragrafu Domyślnie:
Użycie mac-fdisk lub Alternatywnie: Użycie parted (zwłaszcza dla Pegasosa).
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 (Apple)
Aby utworzyć partycje skorzystamy z programu mac-fdisk:
Listing 1.1: Uruchamianie mac-fdisk |
# mac-fdisk /dev/sda
|
Jeśli do pozostawienia miejsca na dysku dla Linuksa było użyte narzędzie Apple
Disk Utility, należy najpierw usunąć partycje stworzone wcześniej. W tym celu
stosuje się opcję d w programie mac-fdisk. Aplikacja zapyta o
numer partycji, którą ma usunąć. Zwykle pierwsza partycja na maszynach NewWorld
(Apple_partition_map) nie może być w żaden sposób usunięta. Jeśli zamiarem jest
całkowite pozbycie się danych z dysku, należy użyć opcji i. Uwaga! Tej
opcji należy używać rozważnie!
Następnie (na komputerze NewWorld) założymy 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 powinno 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 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, 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 (obowiązkowo).
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, 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: Podział dysku przy pomocy parted (Pegasos i RS/6000)
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 urządzenia. 32MB powinny wystarczyć do
przechowania jądra MorphOS. Jeśli używamy Pegasos I lub planujemy użyć innego
systemu plików poza ext2 lub ext3, będzie również konieczne przechować jądro
linuksa na tej partycji (Pegasos II ma możliwość uruchomienia z partycji ext2,
ext3 i affs1). Aby stworzyć partycję należy uruchomić mkpart primary affs1
START END gdzie START i END są odpowiednio zamienione na
wartości w megabajtach. (np. 0 32) które utworzy partycję o rozmiarze
32MB, zaczynającą się w 0MB i kończącą w 32MB). Jeśli wybraliśmy ext2 lub ext3
jako system plików, wystarczy zamienić affs1 w poleceniu mkpart.
Musimy utworzyć dwie partycje dla Linuksa, jedną root, która będzie zawierała
programy itp. i drugą, która będzie partycją wymiany (swap). Wpisujemy
polecenie mkpart primary ext3 START END aby utworzyć partycję ext3.
Również tutaj zamieniamy START i END obszarem w MB, na którym
chcemy utworzyć partycję.
Partycja swap powinna w większości przypadków mieć rozmiar równy ilości pamięci
RAM w komputerze pomnożonej przez dwa. Jeśli nie będziemy uruchamiać
jednocześnie ogromnej ilości programów, powinna wystarczyć ilość swap równa
ilości RAM (jednak nie mniejsza niż zalecane 512MB). Aby stworzyć partycję
wymiany wpiszemy polecenie mkpart primary linux-swap START END.
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
jest to obojętne jakie zostaną wybrane 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.
Aktywacja partycji wymiany
mkswap jest poleceniem używanym do inicjacji partycji wymiany
Listing 1.1: Tworzenie sygnatury swap |
# mkswap /dev/sda3
|
Aby aktywować partycję wymiany, należy użyć polecenia swapon:
Listing 1.1: Aktywacja partycji wymiany |
# swapon /dev/sda3
|
Partycję wymiany należy stworzyć i aktywować zanim stworzymy kolejne systemy
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 głównej partycji (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 założymy systemy plików na partycjach, które wcześniej utworzyliśmy.
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+.
|
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.
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 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).
|