System operacyjny, bez względu na to
czy mamy do czynienia z Linuksem, Windowsem, Mac OS, BSD czy
Solarisem, przechowuje dane w systemie plików opartym na
drzewiastej strukturze katalogów. Znajomość tejże struktury
umożliwia użytkownikowi dotarcie do dowolnych zasobów. Różnice w
organizacji pomiędzy systemami Windows i Linux są jednak znaczące
co może powodować zniechęcenie wśród rozpoczynających przygodę z
Linuksem użytkowników. W niniejszym artykule przybliżymy
organizację drzewa katalogów w systemie Linux oraz wskażemy różnice
pomiędzy tym systemem, a systemami Windows. Opiszemy również
różnice w oznaczaniu dysków, napędów i partycji.
Oznaczenia dysków i partycji
Na pierwszy rzut oka, oznaczenia
dysków czy partycji linuksowych, dla osób pracujących pod
Windowsem, są niezrozumiałe. Weźmy np. oznaczenie dysku C: czy D:
(i innych kolejnych liter w zależności od ilości posiadanych
dysków/partycji) występujące w Windowsie. Jaką ono niesie
informację? Wiemy tylko tyle, że C: jest partycją systemową
(domyślnie, użytkownik oczywiście może zdefiniować partycję
systemową pod inną literą niż C:), ale nie wiemy np. czy partycja
D: znajduje się obok C: na tym samym dysku czy zajmuje całą
przestrzeń dyskową na dysku drugim (slave). Nie wiemy również czy
mamy do czynienia z dyskiem ATA czy SATA. Oczywiście, informacje te
możemy uzyskać korzystając z narzędzi systemowych czy programów
trzecich.
Nazywanie dysków i partycji w Linuksie jest inne, choć w
rzeczywistości oznaczenia te są bardzo proste i logiczne oraz niosą
konkretne informacje.
Dyski HDD
Zacznijmy od oznaczenia dysków ATA i
SATA. Etykieta hdx (hda, hdb, itd.) informuje nas
o tym, że mamy do czynienia z dyskiem ATA. W przypadku dysków SATA
oznaczenie przyjmie postać sdx (sda, sdb, itd.). W
niektórych dystrybucjach nie stosuje się już nazewnictwa
hdx, tylko wszystkie dyski są oznaczane jako
sdx. Na poniższym screenie dysk sda to dysk ATA,
sdb - SATA (na przykładzie dystrybucji Arch Linux)
I tak, w zależności od rodzaju posiadanych dysków: Dysk pierwszy
(primary) będzie posiadał etykietę (nazwę) hda lub sda, dysk drugi
(slave) hdb lub sdb trzeci hdc lub sdc, i tak dalej.
FDD, CD/DVD, Flash, dyski przenośne/wymienne
Na koniec kilka słów o oznaczeniu
napędów FDD (dyskietki), CD/DVD oraz nośników wymiennych takich jak
karty pamięci (Flash) czy dyski przenośne. Napędy FDD (stacja
dysków 3.5'') oznacza się etykietą fd0 (dyskietka
A) i fd1 (dyskietka B). Przyjęto, że stacje dysków
CD/DVD oznaczane są jak dyski ATA (hdx). Ostatnimi czasy,
oznaczenie to zaczyna tracić na rzecz etykiety
scd0, scd1, etc. Karty pamięci i
dyski przenośne/wymienne oznaczane są jak dyski SATA (sdx).
Partycje
W systemie operacyjnym Linux
wyróżniamy partycje główne i rozszerzone/logiczne. Partycji
głównych można być co najwyżej 4. W przypadku gdy chcemy mieć
więcej partycji niż 4, to można stworzyć 3 partycje główne, jedną
rozszerzoną, na której będą partycje logiczne. Partycje główne w
Linuksie są numerowane od 1 do 4, a partycje logiczne od 5 do 8,
niezależnie czy partycji podstawowych jest 4 czy mniej. Główna
partycja na dysku pierwszym oznaczona będzie etykietą hda1 albo
sda1, na dysku drugim hdb1 albo sdb1 i tak dalej. Tak, więc
czytając oznaczenie hda1 mamy więcej informacji dostępnych "od
ręki" niż w przypadku suchego C:, co przydatne jest przy używaniu
programów do partycjonowania dysków (np. Gparted) czy podczas
instalacji innej dystrybucji Linuksa.
Przykładowy podgląd dysków i partycji w programie Gparted
Przykład etykiet i ich prawidłowe czytanie:
/dev/hda1 - pierwsza partycja na dysku ATA primary master
/dev/sdb4 - czwarta partycja na dysku SATA primary slave
/dev/hdc - dysk ATA secondary master
/dev/sdd1 - pierwsza partycja na dysku SATA secondary slave
Struktura katalogów
Katalog główny (nazywany również root
- z angielskiego korzeń), gdzie znajdują się wszystkie katalogi i
pliki systemu Linux oznaczony jest symbolem "/"
(slash). Mówiąc jeszcze prościej - na partycji "/" instalowany jest
system Linux. W systemie Linux tworzone są określone katalogi
przechowujące określone pliki niezbędne do prawidłowej pracy
sytemu. Tworzy się ich określona liczna o zdefiniowanych nazwach. W
poszczególnych dystrybucjach budowa ta może się różnić, co nie
zmienia faktu, że katalogi te istnieją i pełnią takie same funkcje.
Przedstawię ich nazwy i uproszczoną charakterystykę (Szczegółowe
informacje wraz z opisem zawartości podkatalogów czytelnik znajdzie
pod tym linkiem):
/bin - zawiera w sobie pliki binarne (wykonywalne)
podstawowych narzędzi systemowych, które są niezbędne do pracy w
trybie wieloużytkownikowym.
/boot - zawiera w sobie pliki odpowiedzialne za
bootowanie (uruchamianie) systemu oraz jądro systemu
/cdrom - zazwyczaj jest to katalog dowiązany do
katalogu media lub mnt (w zależności od dystrybucji)
/dev - zawiera w sobie pliki odpowiedzialne za
obsługiwanie urządzeń jak np. cdrom. Generalnie pliki w tym
katalogu odpowiadają za komunikację system - urządzenia
komputera.
/etc - zawiera w sobie globalne pliki
konfiguracyjne, ustawienia systemowe
/home - jest miejscem, w którym tworzy się katalog
domowy użytkownika lub użytkowników (/home/nazwa_użytkownika), a w
nim dodatkowo podkatalogi jak: dokumenty, muzyka, obrazy. Możemy
tworzyć również swoje własne według potrzeb.
/lib - zawiera w sobie skompilowane biblioteki
niezbędne do uruchamiania systemu a także moduły jądra
systemu
/lost+found - pliki odnalezione podczas
wykonywania testów dysku
/media - miejsce montowania (podłączania) nośników
wymiennych jak pendrive, dyskietka, karty pamięci, czy napędy
cdrom
/mnt - miejsce montowani dysków - systemów plików
(w niektórych dystrybucjach np. Ubuntu, dyski montowane są w
katalogu /media)
/opt - Katalog do instalowania dodatkowego
oprogramowania nie wchodzącego w skład systemu (wykorzystywany
głównie w dystrybucji SUSE). Obecnie, w niektórych dystrybucjach
służy on do instalacji oprogramowania trzeciego jak np. oracle'a.
Folder ten wychodzi z użycia na rzecz /usr/local
/proc - wirtualny system plików. Tworzy się
podczas uruchamiania systemu. Zawiera w sobie pliki z informacjami
o procesach
/root - katalog superużytkownika "root" - mówiąc w
skrócie, jest to konto administracyjne. Bez niego nie możemy używać
np. narzędzia "sudo" czy dokonywać żadnych zmian w systemie
wymagających hasła administratora np. aktualizacji systemu.
/sbin - zawiera w sobie pliki wykonywalne poleceń,
dostępne tylko dla administratora (root)
/srv - katalog dla serwerów
/sys - interfejs zmiany parametrów jądra (od jądra
w wersji 2.6)
/tmp - zawiera w sobie pliki tymczasowe (również
te, zapisujące się na dysku przy przeglądaniu Internetu)
/usr - zawiera w sobie narzędzia i aplikacje
(programy) zainstalowane na komputerze dostępne dla zwykłego
użytkownika oraz administratora.
/var - zawiera w sobie logi systemowe, pliki
pocztowe czy kolejki drukarki.
Przykład struktury katalogów w systemie Linux na podstawie
dystrybucji:

Dystrybucje Linuksa, a właściwie ich struktura katalogów,
powinny być zgodne ze standardem FHS - Filesystem Hierarchy
Standard, będącego częścią LSB - Linux Standard
Base.
Kilka uwag i praktycznych rad przy instalacji systemu
Linux
Przy tworzeniu partycji systemowej
/, określamy również partycję wymiany
swap (służy do tymczasowego przechowywania danych
w sytuacji, gdy ich ilość przekracza ilość wolnej pamięci RAM lub,
gdy z różnych powodów korzystniej jest przechowywać je na dysku -
tak zwana pamięć wirtualna. W dystrybucjach linuksowych, zamiast
tworzyć osobną partycję swap możemy stworzyć plik wymiany w
systemie). Zaleca się również utworzenie partycji
/home - dzięki temu, nasze dokumenty czy
skopiowane ustawienia systemu, możemy bezpiecznie trzymać podczas
formatowania dysku z systemem, gdy chcemy zainstalować system na
nowo lub zainstalować inną dystrybucję. Tak, tak - podczas
instalacji innej dystrybucji, instalator wykryje partycję /, swap
oraz /home (oraz inne linuksowe, jeśli istnieją) i wykorzysta je
przy instalacji. Po zainstalowaniu nasze dokumenty i ustawienia
będą nieruszone i gotowe do wykorzystania. Podobnie możemy zrobić z
prawie każdym folderem (za wyjątkiem katalogów /etc, /bin, /sbin,
/lib ani /dev - jeżeli to zrobimy, system nie załaduje się po
instalacji) - stworzyć dla niego osobną partycję, czego się nie
robi z powodu tego, że musimy umieć przewidzieć ile miejsca
potrzebujemy dla każdej z nich. Wygodnie więc pozwolić, żeby system
zrobił to za nas i dynamicznie przydzielał miejsce na dysku w razie
potrzeby.
Przedstawiliśmy tutaj minimum podstawowych informacji odnośnie tego
zagadnienia, które w samo w sobie jest ciekawe. Ogrom informacji,
zwłaszcza tych szczegółowych - jeżeli będzie taka potrzeba,
przedstawimy w osobnych artykułach.
Od autora
W przygotowaniu materiału pomogli mi Areh, Kaka' i Reza, którym
serdecznie za pomoc dziękuję.