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