.


[*]
[*]
[*]

[*]
index


Háttér

Ez a fejezet a `Linux Fájlrendszer Standard' (FSSTND) 1.2-es változatán (lásd a [Qui95] irodalmat) alapul, amely megkísérli egy szabványos Linuxos fájlrendszerstruktúra felállítását. Egy ilyen standard felépítésnek meg van az az előnye, hogy könnyebb lesz írni vagy áthozni programokat Linux alá, illetve adminisztrálni egy Linuxos gépet, ha minden a szokásos helyén található. Ezen standard mögött nem áll hatalom, amely mindenkit kényszerítene ennek betartására, de ezt támogatja a legtöbb (ha ugyan nem minden) Linux terjesztés. Nem túl jó ötlet eltérni az FSSTND-tól nagyon alapos indok nélkül. Az FSSTND megpróbálja a UNIX szokásokat és az aktuális tendenciákat követni, ezáltal a Linux rendszer ismerős lesz a más Unix rendszereken gyakorlatot szerzettek számára is.

Ez a fejezet nem olyan részletes, mint az FSSTND. A rendszeradminisztrátoroknak célszerű elolvasni az FSSTND-t is a teljes megértés kedvéért.

Ez a fejezet nem magyaráz minden fájlt részletesen. A cél nem minden fájl részletes leírása, hanem a rendszer áttekintése a fájlrendszer oldaláról. A fájlokról további információkat találhatunk a kézikönyvben, illetve az elektronikus kézikönyv-lapokban (man pages).

A teljes könytárfa struktúra úgy lett tervezve, hogy kisebb részekre lehessen bontani, melyek külön lemezpartíción helyezkednek el, hogy a korlátos lemezméreteket összegyűjthessük és könnyebb legyen a biztonsági mentés valamint az egyéb rendszeradminisztráció. A legfontosabb részek: a gyökér (root), /usr , /var , és /home  fájlrendszerek (lásd 3.1. ábra). Mindegyik résznek különböző a feladata. A könyvtárfa úgy lett tervezve, hogy jól működjön hálózatba kötött Linuxos gépek esetében is, amikor egyes részek csak olvasható módon kerülnek megosztásra, pl. CD-ROM-ról vagy NFS-en keresztül.

  
3.1. ábra: A Unix könyvtárfa részei. A szaggatott vonalak particiókorlátokat jelölnek.
\includegraphics{walkabout/fstree.ps}

Az egyes részek szerepeinek leírását az alábbiakban adjuk meg.

  • A gyökér fájlrendszer minden gépnél egyedi kell hogy legyen, és tartalmaznia kell mindazt, ami a boot-oláshoz kell addig a pillanatig, amikor már a többi fájlrendszer is beilleszthető (mount-olható). Ez a fájlrendszer általában helyi lemezen helyezkedik el, habár lehet ramdiszken vagy hálózaton is. Ezért a gyökér fájlrendszer tartalma csak az egyfelhasználós (single user) üzemmódhoz elegendő. Ez a rendszer tartalmaz továbbá az elromlott rendszer javításához és az elveszett fájlok biztonsági mentésből való visszaállításához szükséges eszközöket is.

  • A /usr  fájlrendszer tartalmazza a parancsokat, könyvtárakat, kézikönyv lapokat, és egyéb, a normális üzem alatt nem változó fájlokat. A /usr -beli fájlok nem specifikusak egyetlen gépre vonatkozóan sem. Ezek miatt lehetőség van a fájlok hálózaton keresztüli megosztására, ami nagyon takarékos, hisz sok lemezterület megtakarítható így. (Könnyen lehet több száz megabájtnyi a /usr  tartalma.) További előny, hogy könnyebb lesz a rendszer karbantartása, mert csak a központi /usr  partíción kell az alkalmazásokat frissíteni, nem minden gépen külön-külön. De még helyi lemez esetén is megtehetjük, hogy a /usr -t csak olvasható módon csatlakoztatjuk, ami csökkenti a fájlrendszer sérülésének veszélyét egy rendszerösszeomlás esetén.

  • A /var  fájlrendszer változó fájlokat tartalmaz, mint pl. a spool könyvtárak (a levelezéshez, hírekhez, nyomtatáshoz), naplófájlokat (log file), formázott kézikönyvlapokat és ideiglenes fájlokat. A hagyományok szerint minden, ami a /var -ban van, kerülhetne akár valahova a /usr -be is, de akkor nem lehetne a /usr -t csak olvasható módban csatlakoztatni.

  • A /home  fájlrendszer tartalmazza a felhasználók home-könyvtárait, azaz minden igazi adatot a rendszerben. A home-könyvtárak külön fájlrendszerbe való elkülönítése könnyebbé teszi a biztonsági mentéseket; a többi részt általában nem, vagy csak ritkábban kell elmenteni, mivel ritkábban változnak. Egy nagy /home  fájlrendszert esetleg érdemes néhány fájlrendszerre szétszedni, ami egy plusz elnevezési szint bevezetését követeli meg a /home  alatt, mint pl. /home/students  és /home/staff .

Habár a különböző részeket fájrendszereknek neveztük az előbb, nem feltétlenül szükséges, hogy valóban külön fájlrendszereken legyenek. Egy kicsi, egyfelhasználós rendszeren akár egyetlen fájlrendszeren is tárolhatók, ami egyszerűbbé teszi a dolgokat. A könyvtárfa esetleg máshogy is felsztható fájlrendszerekre annak függvényében, hogy mekkora lemezeink vannak és hogy hogyan foglaljuk a helyet különféle célokra. A fontos az, hogy minden standard név működjön, pl. ha a /var  és a /usr  egy partíción van, a /usr/lib/libc.a  és /var/adm/messages  neveknek működniük kell, mondjuk úgy, hogy a /var  alatti fájlokat az /usr/var -ba másoljuk és a /var  csak egy szimbolikus kötés a /usr/var -ra.

A Unix fájlrendszer szerkezete a fájlokat cél szerint csoportosítja, azaz pl. a parancsok egy helyen vannak, az adatfájlok máshol, a dokumentáció egy harmadik helyen, és így tovább. Egy alternatíva lehetne a fájlok csoportosítására, hogy melyik programhoz tartoznak, pl. minden Emacs-hoz tartozó fájl egy könyvtárban lenne, a TEX-hez tartozók egy másikban, és így tovább. Az utóbbi megközelítéssel az a baj, hogy nehézzé tenné a fájlmegosztásokat (a programkönyvtárak gyakran tartalmaznak statikus, megosztható, változó és nem megosztható fájlokat egyaránt), és néha még a fájlok (mondjuk a kézikönyvlapok) megtalálása is nagyon bonyolult lenne.

[*]
Linux rendszeradminisztrátorok kézikönyve (első javított változat; SAG-HU 0.6b1)