|
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 całego dysku na system,
zazwyczaj nie jest to jednak rozwiązanie zbyt praktyczne. Zamiast tego dzielimy
napęd na mniejsze i dużo łatwiejsze w zarządzaniu urządzenia blokowe.
W większości platform nazywane są one partycjami.
Pierwsza partycja na pierwszym dysku SCSI to /dev/sda1, druga to
/dev/sda2 i tak dalej.
Trzecia partycja na systemach Sun jest ustawiona jako "całodyskowa". Nie może
zawierać żadnego systemu plików.
Użytkownicy przyzwyczajeni do schematu partycjonowania w stylu DOS powinni
pamiętać, że Sun nie ma partycji podstawowych i rozszerzonych. Zamiast tego
można mieć maksymalnie 8 zwykłych partycji dyskowych, z tym, że trzecia jest
zarezerwowana do specjalnych celów.
1.
Projektowanie schematu podziału
Domyślny schemat podziału
Jeśli nie masz ochoty samodzielnie rozrysowywać schematu podziału
swojego dysku, możesz skorzystać z domyślnego, który prezentujemy poniżej.
Nie polecamy posiadania osobnej partycji /boot na
SPARC, ponieważ bardzo to komplikuje konfigurację bootloadera.
| Partycja: |
System plików: |
Rozmiar: |
Punkt montowania: |
Opis: |
| /dev/sda1 |
ext3 |
<2 GB |
/ |
Partycja root. Na systemach sparc64 ze starszymi wersjami OBP musi
mieć rozmiar mniejszy niż 2 GB oraz być pierwszą partycją na dysku.
|
| /dev/sda2 |
swap |
512 MBytes |
brak |
Partycja wymiany. Żeby wykonać bootstrap oraz kilka większych kompilacji
musisz mieć co najmniej 512MB RAM (łącznie z partycją wymiany).
|
| /dev/sda3 |
brak |
cały dysk |
brak |
Parycja "whole disk". Niezbędna dla systemów SPARC. |
| /dev/sda4 |
ext3 |
co najmniej 2 GB |
/usr |
Partycja /usr. Tu będą instalowane programy. Domyślnie na tej partycji
znajduje się również drzewo Portage.
|
| /dev/sda5 |
ext3 |
co najmniej 1GB |
/var |
Partycja /var. Używana do przechowywania danych generowanych przez programy.
Domyślnie Portage używa tej partycji jako miejsca, gdzie kompiluje programy.
Jeśli zamierzasz skompilować kilka większych programów jak Mozilla czy
OpenOffice.org będziesz potrzebował ponad 1GB miejsca na tymczasowe
pliki.
|
| /dev/sda6 |
ext3 |
pozostałe miejsce |
/home |
Partycja /home. Tu będą znajdować się katalogi domowe użytkowników. |
1.
Partycjonowanie dysku za pomocą fdisk
Teraz pokażemy jak utworzyć partycje takie jak te zaprezentowane w powyższym
przykładowym schemacie podziału dysku:
| Partycja |
Opis |
| /dev/sda1 |
/ |
| /dev/sda2 |
swap |
| /dev/sda3 |
whole disk slice |
| /dev/sda4 |
/usr |
| /dev/sda5 |
/var |
| /dev/sda6 |
/home |
Możesz dostosować ten schemat do swoich potrzeb. Pamiętaj jednak, że na
starszych systemach partycja root musi znajdować się na pierwszych 2GB dysku.
Pamiętaj również, że na dyskach SCSI i SATA nie możesz mieć więcej niż 15
partycji.
Uruchamianie fdisk
Uruchom fdisk dla swojego dysku:
Listing 1.1: Uruchamianie fdisk |
# fdisk /dev/sda
|
Twoim oczom ukaże się jego znak zachęty:
Listing 1.1: Znak zachęty fdisk |
Command (m for help):
|
Aby wyświetlić dostępne partycje, wpisz p:
Listing 1.1: Wyświetlanie dostępnych partycji |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda2 488 976 499712 82 Linux swap
/dev/sda3 0 8635 8842240 5 Whole disk
/dev/sda4 976 1953 1000448 83 Linux native
/dev/sda5 1953 2144 195584 83 Linux native
/dev/sda6 2144 8635 6646784 83 Linux native
|
Zwróć uwagę na Sun Disk Label. Jeśli go brakuje, oznacza to że
dysk korzysta z partycji DOS. W takim razie, aby stworzyć
tablicę partycji Sun, wpisz s.
Listing 1.1: Tworzenie Sun Disklabel |
Command (m for help): s
Building a new sun disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Drive type
? auto configure
0 custom (with hardware detected defaults)
a Quantum ProDrive 80S
b Quantum ProDrive 105S
c CDC Wren IV 94171-344
d IBM DPES-31080
e IBM DORS-32160
f IBM DNES-318350
g SEAGATE ST34371
h SUN0104
i SUN0207
j SUN0327
k SUN0340
l SUN0424
m SUN0535
n SUN0669
o SUN1.0G
p SUN1.05
q SUN1.3G
r SUN2.1G
s IOMEGA Jaz
Select type (? for auto, 0 for custom): 0
Heads (1-1024, default 64):
Using default value 64
Sectors/track (1-1024, default 32):
Using default value 32
Cylinders (1-65535, default 8635):
Using default value 8635
Alternate cylinders (0-65535, default 2):
Using default value 2
Physical cylinders (0-65535, default 8637):
Using default value 8637
Rotation speed (rpm) (1-100000, default 5400): 10000
Interleave factor (1-32, default 1):
Using default value 1
Extra sectors per cylinder (0-32, default 0):
Using default value 0
|
Właściwe wartości parametrów znajdziesz w dokumentacji swojego dysku. Zwykle
opcja automatycznej konfiguracji działa bez zarzutu.
Usuwanie istniejących partycji
Nadszedł czas na pozbycie się istniejących partycji. Do usuwania
służy polecenie d. Wpisz je i naciśnij Enter. Zostaniesz zapytany
o numer partycji. Jeśli ma to być /dev/hda1, wpisz:
Listing 1.1: Usuwanie partycji |
Command (m for help): d
Partition number (1-4): 1
|
Nie powineneś kasować partycji numer 3 (whole disk). Jeśli ta partycja
nie istnieje przejdź do sekcji "Tworzenie Sun Disklabel" powyżej i wykonaj
zawarte w niej instrukcje.
Po usunięciu wszystkich partycji, listing podziału powinien wyglądać podobnie:
Listing 1.1: Pusty listing podziału |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda3 0 8635 8842240 5 Whole disk
|
Tworzenie partycji root
Stwórz teraz partycję root. W tym celu ponownie skorzystaj
z polecenia n. Następnie wpisz 4, żeby wybrać czwartą
partycję - w naszym przypadku /dev/hda4. Zapytany o
pierwszy i ostatni cylinder wciśnij Enter. Dzięki temu
partycja zajmie całą pozostałą przestrzeń. Kiedy skończysz
polecenie p powinno dawać następujący rezultat:
Listing 1.1: Tworzenie partycji root |
Command (m for help): n
Partition number (1-8): 1
First cylinder (0-8635): (press Enter)
Last cylinder or +size or +sizeM or +sizeK (0-8635, default 8635): +512M
|
Teraz po wpisaniu p powinieneś zobaczyć następujący listing partycji:
Listing 1.1: Listing kompletnej tablicy partycji |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda3 0 8635 8842240 5 Whole disk
|
Tworzenie partycji wymiany
Pora stworzyć partycję wymiany. W tym celu skorzystaj z polecenia n aby
rozpocząć proces zakładania, następnie wpisz 2 aby wybrać drugą
partycję, w naszym przypadku /dev/sda2. Zapytany o pierwszy
cylinder wciśnij Enter, natomiast na pytanie o ostatni wpisz +512M
aby ustalić jej rozmiar na 512MB. Następnie wpisz t aby zmienić
typ partycji i wpisz 82 żeby ustawić go na "Linux Swap". Po ukończeniu
listing partycji powinien wyglądać następująco:
Listing 1.1: Listing partycji |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda2 488 976 499712 82 Linux swap
/dev/sda3 0 8635 8842240 5 Whole disk
|
Tworzenie partycji /usr, /var i /home
W końcu przyszła kolej na utworzenie partycji /usr, /var i /home. Tak jak
wcześniej wpisz n w celu utworzenia nowej partycji, następnie naciśnij
4, aby utworzyć trzecią partycję, w naszym przypadku
/dev/sda4. Kiedy zostaniesz zapytany o pierwszy cylinder wciśnij
po prostu enter. Kiedy program zapyta o ostatni cylinder wpisz wartość
+2048M, co utworzy partycję o rozmiarze 2 GB. Powtórz ten proces dla
sda5 i sda6, podając za każdym razem odpowiedni
żądany rozmiar. Kiedy skończysz powinieneś ujrzeć coś takiego:
Listing 1.1: Końcowy listing kompletnej tablicy partycji |
Command (m for help): p
Disk /dev/sda (Sun disk label): 64 heads, 32 sectors, 8635 cylinders
Units = cylinders of 2048 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 488 499712 83 Linux native
/dev/sda2 488 976 499712 82 Linux swap
/dev/sda3 0 8635 8842240 5 Whole disk
/dev/sda4 976 1953 1000448 83 Linux native
/dev/sda5 1953 2144 195584 83 Linux native
/dev/sda6 2144 8635 6646784 83 Linux native
|
Zapisywanie zmian i opuszczanie programu
Aby zapisać wprowadzone zmiany i opuścić fdisk wpisz w:
Listing 1.1: Zapisywanie zmian i opuszczanie programu |
Command (m for help): w
|
Kiedy już skończysz tworzyć partycje przejdź 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 nie obchodzi Cię jakie wybierzesz lub jesteś zadowolony z domyślnych
ustawień w podręczniku, przejdź do paragrafu Zakładanie na partycji systemu plików.
W przeciwnym wypadku czytaj dalej aby dowiedzieć się co nieco 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.
Zakładanie systemu plików na partycji
Aby założyć na woluminie lub partycji system plików skorzystaj z
odpowiedniego narzędzia:
| System plików |
Program do zakładania |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
Na przykład jeśli chcesz utworzyć system plików ext2 na partycji root
(/dev/sda1 w naszym przykładzie) oraz ext3 na partycjach
/usr, /var i /home
(/dev/sda4, 5 i 6 w naszym przykładzie)
powinieneś wpisać następujące polecenia:
Listing 1.1: Tworzenie systmu plików na partycjach |
# mke2fs /dev/sda1
# mke2fs -j /dev/sda4
# mke2fs -j /dev/sda5
# mke2fs -j /dev/sda6
|
Aktywowanie partycji wymiany
Do tworzenia partycji wymiany używamy programu mkswap:
Listing 1.1: Tworzenie partycji wymiany |
# mkswap /dev/sda2
|
Aby aktywować partycję wymiany użyj programu swapon:
Listing 1.1: Aktywacja partycji wymiany |
# swapon /dev/sda2
|
Utwórz i aktywuj swoją partycję wymiany przy pomocy poleceń podanych powyżej.
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. Nie zapomnij utworzyć
odpowiednich katalogów dla każdego z nich. Na przykład:
Listing 1.1: Mountowanie partycji |
# mount /dev/sda1 /mnt/gentoo
# mkdir /mnt/gentoo/usr
# mount /dev/sda4 /mnt/gentoo/usr
# mkdir /mnt/gentoo/var
# mount /dev/sda5 /mnt/gentoo/var
# mkdir /mnt/gentoo/home
# mount /dev/sda6 /mnt/gentoo/home
|
Uwaga:
Jeżeli chcesz przenieść /tmp na oddzielną partycję,
nie zapomnij po zamontowaniu odpowiedni poprawić praw dostępu: chmod
1777 /mnt/gentoo/tmp. Dotyczy to również /var/tmp.
|
Musimy też zamontować system plików proc (wirtualny interfejs jądra)
w /proc. Najpierw jednak umieścimy na dysku kilka plików.
Kiedy skończysz przejdź do rozdziału (Wypakowywanie plików instalacyjnych).
|