[ << ]
[ < ]
[ Powrót ]
[ > ]
[ >> ]
4. Przygotowywanie dysków
Spis treści:
4.a. 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 przeznaczenie na system całego dysku jest możliwe, zazwyczaj nie
jest to jednak zbyt dobre rozwiązanie. Zamiast tego dzielimy napęd na mniejsze i
dużo łatwiejsze w zarządzaniu urządzenia blokowe. W systemach opartych na
architekturze x86 nazywane są one partycjami.
Wyróżniamy trzy rodzaje partycji: podstawowe, rozszerzone oraz
logiczne.
Informacje o partycjach podstawowych przechowywane są w MBR (master boot
record). Jako że jest on bardzo mały (512 bajtów), mieszczą się w nim dane
maksymalnie czterech takich partycji (na przykład od /dev/sda1 do
/dev/sda4).
Specjalną odmianą partycji podstawowych są partycje rozszerzone (również
obowiązuje je powyższy limit). Przechowują one wewnątrz siebie kolejne partycje.
W ten sposób można ominąć niewygodną granicę i lepiej zagospodarować przestrzeń
dyskową.
Partycje umieszczone i opisane wewnątrz rozszerzonych nazywamy
logicznymi. Dane o nich nie znajdują się w MBR.
Zaawansowane metody przechowywania danych
Płyty instalacyjne dla architektury x86 posiadają obsługę EVMS
oraz LVM2, co znacznie rozszerza możliwości partycjonowania dysków. W
Podręczniku skupimy się na tworzeniu zwykłych partycji, warto jednak wiedzieć,
że możliwe jest korzystanie również z nowocześniejszych rozwiązań.
4.b. Projektowanie schematu podziału
Domyślny schemat podziału
Można pominąć samodzielne rozrysowywanie schematu podziału dysku i po prostu
skorzystać z naszego:
| Partycja |
System plików |
Rozmiar |
Opis |
| /dev/sda1 |
ext2 |
32M |
Partycja rozruchowa |
| /dev/sda2 |
(swap) |
512M |
Partycja wymiany |
| /dev/sda3 |
ext3 |
Pozostałe wolne miejsce |
Partycja główna |
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 partycjonowania dysku przy pomocy fdisk.
Jak dużo i o jakim rozmiarze?
Ilość partycji ściśle zależy od danego środowiska. Na przykład, jeśli
administruje się systemem mającym wielu użytkowników, prawdopodobnie uzna się 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 należy 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 kody źródłowe programów.
Jak widać, wiele zależy od oczekiwanego rezultatu. Rozdzielenie partycji ma
wiele zalet:
-
Daje możliwość wybrania dla poszczególnych partycji najbardziej wydajnego w
danym zastosowaniu systemu plików.
-
Zapełnienie całego wolnego miejsca na partycji przez wadliwie działający
program nie będzie miało szkodliwego wpływu na całość systemu.
-
Możliwe będzie skrócenie czasu kontroli systemów plików dzięki jednoczesnemu
dokonywaniu jej na kilku partycjach (ma to znaczenie zwłaszcza na komputerze
z wieloma twardymi 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 schemat podziału niesie ze sobą spore problemy. Źle
zaplanowany zaowocuje pustkami na zbyt dużych i ciasnotą na zbyt małych
partycjach.
W przykładzie pokażemy partycjonowanie dysku o rozmiarze 20GB wykorzystywanego w
laptopie z zainstalowanym serwerem poczty, stron internetowych oraz środowiskiem
Gnome:
Listing 2.1: Przykładowy podział dysku |
$ df -h
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda5 ext3 509M 132M 351M 28% /
/dev/sda2 ext3 5.0G 3.0G 1.8G 63% /home
/dev/sda7 ext3 7.9G 6.2G 1.3G 83% /usr
/dev/sda8 ext3 1011M 483M 477M 51% /opt
/dev/sda9 ext3 2.0G 607M 1.3G 32% /var
/dev/sda1 ext2 51M 17M 31M 36% /boot
/dev/sda6 swap 516M 12M 504M 2% <not mounted>
|
/usr jest niemal w pełni zajęty (wykorzystane 83%), ale po
instalacji wszystkich potrzebnych pakietów nie będzie się on zbytnio rozrastał.
Przeznaczenie kilku gigabajtów na /var może wydać się zbyt
rozrzutne. Należy jednak zwrócić uwagę, że Gentoo kompiluje tam domyślnie
wszystkie pakiety. Jeżeli chcemy, aby /var posiadało mniejszy
rozmiar, na przykład 1GB, powinniśmy zmodyfikować zmienną PORTAGE_TMPDIR
w pliku /etc/make.conf, aby zawierała partycję z odpowiednią
ilością wolnego miejsca do kompilacji ekstremalnie dużych pakietów takich jak
na przykład OpenOffice.
4.c. Partycjonowanie dysku przy pomocy fdisk
Teraz przedstawimy proces tworzenia partycji wypisanych w naszym przykładowym
schemacie podziału dysku. Oto on:
| Partycja |
Opis |
| /dev/sda1 |
Partycja rozruchowa |
| /dev/sda2 |
Partycja wymiany |
| /dev/sda3 |
Partycja główna |
Ten schemat oczywiście można (i zwykle należy) zmodyfikować stosownie do
własnych potrzeb.
Wyświetlanie aktualnego podziału dysku
fdisk to popularne i bardzo wygodne narzędzie służące do partycjonowania
dysków. Zacznijmy od uruchomienia go dla naszego dysku (pokażemy to na
przykładzie /dev/sda):
Listing 3.1: Uruchamianie fdisk |
# fdisk /dev/sda
|
Po chwili ukaże się taki znak zachęty fdisk:
Listing 3.2: Znak zachęty fdisk |
Command (m for help):
|
Aby wyświetlić obecną konfigurację partycji wpisujemy p:
Listing 3.3: Przykładowa konfiguracja partycji |
Command (m for help): p
Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 49 264600 82 Linux swap
/dev/sda3 50 70 158760 83 Linux
/dev/sda4 71 2184 15981840 5 Extended
/dev/sda5 71 209 1050808+ 83 Linux
/dev/sda6 210 348 1050808+ 83 Linux
/dev/sda7 349 626 2101648+ 83 Linux
/dev/sda8 627 904 2101648+ 83 Linux
/dev/sda9 905 2184 9676768+ 83 Linux
Command (m for help):
|
Na prezentowanym dysku znajduje się siedem linuksowych systemów plików
(każdy na osobnej partycji, oznaczonej jako "Linux") oraz partycja
wymiany (oznaczona jako "Linux swap").
Usuwanie partycji
Zacznijmy od usunięcia starych partycji. Służy do tego polecenie d z
odpowiednim dla każdej partycji numerem. Na przykład, aby pozbyć się
/dev/sda1, należy wpisać:
Listing 3.4: Usuwanie partycji |
Command (m for help): d
Partition number (1-4): 1
|
Partycja została zaznaczona do usunięcia. Nie będzie więcej pojawiać się po
wpisaniu p, ale pozostanie nienaruszona dopóki zmiany nie zostaną
fizycznie zapisane na dysku. Po popełnieniu błędu przy dzieleniu dysku wystarczy
wpisać q i wcisnąć enter, aby wszystkie dokonane modyfikacje poszły w
niepamięć.
Aby pozbyć się wszystkich istniejących partycji wpisujemy p, aby
wyświetlić ich listę, a następnie po kolei kasujemy je poleceniem d z
odpowiednim numerem. Na koniec p powinno dawać następujący rezultat:
Listing 3.5: Pusta tablica partycji |
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
Command (m for help):
|
Kiedy już nasza tymczasowa kopia tablicy partycji będzie pusta możemy rozpocząć
dzielenie dysku. Pokażemy to na przykładzie naszego domyślnego schematu, który
należy oczywiście odpowiednio zmienić dla danej sytuacji, aby możliwie najlepiej
spełniał konkretne przed nim stawiane zadania.
Zakładanie partycji rozruchowej
Rozpoczniemy od utworzenia niewielkiej partycji rozruchowej. Wpisujemy n,
aby ją założyć, a następnie p, aby nadać jej typ podstawowy i 1,
ponieważ będzie to pierwsza taka partycja. Zapytani o pierwszy cylinder wciskamy
enter, a przy pytaniu o ostatni wpisujemy +32M, by nadać jej rozmiar
32 MB oraz ustawić flagę partycji rozruchowej:
Listing 3.6: Zakładanie partycji rozruchowej |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
|
Teraz polecenie p powinno pokazywać taką listę:
Listing 3.7: Partycja rozruchowa |
Command (m for help): p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 14 105808+ 83 Linux
|
Musimy również oznaczyć naszą partycję jako uruchamialną. W tym celu skorzystamy
z polecenia a. Na kolejnych wydrukach podziału w kolumnie "Boot" przy
naszej partycji pojawi się znak *.
Zakładanie partycji wymiany
Następnie tworzymy partycję wymiany. Ponownie korzystamy z polecenia n,
potem wpisujemy p (gdyż ma to być partycja podstawowa) i 2,
ponieważ będzie ona drugą tego typu. Zapytani o pierwszy cylinder wciskamy
enter, a w odpowiedzi na pytanie o ostatni wpisujemy +512M (aby nadać
partycji rozmiar 512 MB). Na koniec wpisujemy t (aby zmienić jej typ),
2 (aby wybrać tę, którą właśnie stworzyliśmy) i 82 (co nada jej
typ "Linux Swap"). Teraz polecenie p powinno pokazywać następującą listę:
Listing 3.8: Wydruk podziału po utworzeniu partycji wymiany |
Command (m for help): p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 81 506520 82 Linux swap
|
Zakładanie partycji głównej
Na koniec tworzymy partycję główną. Jeszcze raz posłużymy się poleceniem
n. Zapytani o rodzaj wciskamy p (aby była partycją podstawową),
następnie 3 (gdyż będzie już trzecią tego typu, czyli w naszym przypadku
/dev/sda3), a na pytanie o pierwszy i ostatni cylinder wciskamy
enter, dzięki czemu zajmie ona całą pozostałą wolną przestrzeń. Ostatecznie
polecenie p powinno pokazać następującą listę:
Listing 3.9: Wydruk podziału po utworzeniu partycji głównej |
Command (m for help): p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 81 506520 82 Linux swap
/dev/sda3 82 3876 28690200 83 Linux
|
Zapisywanie podziału partycji
Aby zachować ustalony podział i opuścić fdisk, należy wpisać w.
Listing 3.10: Zachowywanie zmian i zamykanie fdisk |
Command (m for help): w
|
Po utworzeniu partycji można przejść do zakładania
systemów plików.
4.d. Zakładanie systemów plików
Wprowadzenie
Po utworzeniu partycji trzeba założyć na nich odpowiednie systemy plików.
Osoby, którym wszystko jedno jaki system plików wybiorą lub te, które są
zadowolone z domyślnych ustawień z Podręcznika mogą przejść do zakładania systemów plików na partycji.
Pozostali muszą czytać dalej, 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.
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.
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.
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 jego zakładania |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Na przykład, aby założyć ext2 na partycji rozruchowej (w naszym przypadku
/dev/sda1) oraz ext3 na partycji głównej (w naszym przypadku
/dev/sda3), należy wykonać następujące polecenia:
Listing 4.1: Zakładanie systemu plików na partycji |
# mke2fs /dev/sda1
# mke2fs -j /dev/sda3
|
Przed przejściem do dalszych kroków należy stworzyć systemy plików na wszystkich
partycjach.
Aktywacja partycji wymiany
Aby utworzyć partycję wymiany, należy skorzystać z programu mkswap.
Listing 4.2: Tworzenie partycji wymiany |
# mkswap /dev/sda2
|
Do aktywowania partycji wymiany używa się programu swapon:
Listing 4.3: Aktywacja partycji wymiany |
# swapon /dev/sda2
|
Teraz tworzymy i aktywujemy partycję wymiany za pomocą powyższych poleceń.
4.e. Montowanie
Po założeniu partycji i utworzeniu na nich systemów plików nadszedł czas na ich
zamontowanie. Służy do tego program mount. Należy utworzyć odpowiednie
katalogi dla montowanych partycji. W przykładzie zamontujemy partycję rozruchową
i główną:
Listing 5.1: Montowanie partycji |
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot
|
Uwaga:
Aby przenieść /tmp na osobną partycję, należy po jego zamontowaniu
odpowiednio zmienić prawa dostępu: chmod 1777 /mnt/gentoo/tmp. Dotyczy to
również /var/tmp.
|
Konieczne będzie także zamontowanie systemu plików proc (wirtualny interfejs
jądra) w katalogu /proc, ale najpierw musimy umieścić odpowiednie
pliki na partycjach.
Kolejny rozdział to Wypakowywanie plików
instalacyjnych.
[ << ]
[ < ]
[ Powrót ]
[ > ]
[ >> ]
Materiał udostępniany na podstawie licencji Creative Commons -
Attribution / Share Alike.
|