Következő Előző Tartalom

7. A fájlrendszer

Ebben a fejezetben a fájlrendszer szót két különböző értelemben fogom használni. Vannak fájlrendszerek a lemez particiókon és más eszközökön, és van egy fájlrendszer, amit a futó Linux alól látsz. A Linuxban "felcsatolod" (mount) a lemezes fájlrendszereket az operációs rendszer fájlrendszerére.

Az előző fejezetben megemlítettem, hogy az" init" szkriptek leellenőrzik és felcsatolják a fájlrendszereket. Ezt az "fsck" és a "mount" parancsok végzik el.

A merevlemez csak egy nagy tárhely, ahova egyeseket és nullákat írhatsz. A fájlrendszer erre rárak egy szerkezetet, és ettől néz ki úgy, mintha fájlok lennének könyvtárakon belül és azok is további könyvtárakon belül... Minden fájlnak van egy leíró táblája (inode), ami nyilvántartja kié a fájl, mikor hozták létre és hol vannak a részei. A könyvtárakat is inode-ok írják le, de ezekben a tárolódik, hogy hol találhatók azoknak a fájloknak az inode-jai, amik a könyvtárban vannak. Ha a rendszer olvasni akarja a /home/greg/bigboobs.jpeg fájlt, először megkeresi a gyökér (root) / könyvtár leíró tábláját a "superblock"-ban, ezután megkeresi a / tartalmában lévő home könyvtár inode-ját, ezután megkeresi a /home tartalmában lévő greg könyvtár inode-ját, ezután megkeresi a bigboobs.jpeg leíró tábláját, ami jelzi melyik lemezblokkot kell olvasnia.

Ha hozzáfűzünk egy kis adatot egy fájl végéhez, megeshet, hogy először az adat íródik ki, mielőtt a leíró tábla frissülne (ami jelezné, hogy az új blokkok a fájlhoz tartoznak), vagy fordítva. Ha ezen a ponton áramszünet következik be, megsérülhet a fájlrendszer. Ez az a dolog, amit az "fsck" megpróbál felderíteni és kijavítani.

A "mount" parancs egy eszközön lévő fájlrendszert hozzáad a használatban lévő rendszered hierarchiájához. Általában a kernel csak olvasható módban csatolja fel a (root) fájl rendszert. A "mount" parancsot használják arra, hogy újra felcsatolják írható-olvasható módban, miután az "fsck" leellenőrizte, hogy minden rendben.

A Linux támogat másfajta fájlrendszereket is: msdos, vfat, minix stb. Egy bizonyos fájlrendszer részletei el vannak vonatkoztatva egy virtuális fájlrendszerre (VFS). Nem megyek bele a részletekbe, van egy vita erről a "A Linux Kernel"-ben (lásd a A Linux Kernel fejezetet URL-ért).

Egy teljesen más fájlrendszer csatolódik be a /proc könyvtárba. Valójában ez csak a kernelben lévő dolgok megjelenítése. Mindegyik - a rendszerben futó folyamatnak (process) - van egy könyvtára, ahol a folyamat száma a könyvtár neve. Vannak ott fájlok is, mint például interrupts (megszakítások) és meminfo, amik elárulják, hogy hogyan használja a gép a hardvert. Nagyon sokat tanulhatsz a /proc felfedezése közben.

7.1 Beállítás

Vannak az "mke2fs" parancsnak (ami ext2 fájlrendszert hozza létre) paraméterei is. Ezek ellenőrzik a blokkok méretét, a leíró táblák (inode) számát stb. Olvasd el az "mke2fs" kézikönyv-oldalát részletekért.

Hogy mi hova csatolódik a fájlrendszereden, az /etc/fstab fájlban dől el. Ennek is van kézikönyv-oldala.

7.2 Gyakorlatok

Készíts egy nagyon kicsi fájlrendszert, és nézd meg egy hexa editorral. Azonosítsd az inode-okat, szuperblokkokat és a fájl összetevőket.

Biztos vagyok benne, vannak eszközök amik visszadják a fájlrendszered grafikus kinézetét. Keress egyet, próbáld ki, és küldj egy URL-t és leírást nekem e-mailben!

Nézd meg az ext2 fájlrendszer kódját a kernelben.

7.3 További információ


Következő Előző Tartalom