A bekapcsolástól a bash promptig: A fájlrendszer

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ó

- A "The Linux Kernel" című LDP könyv 9. fejezete kitűnő leírást ad a fájlrendszerekről. Megtalálhatod például. a TLDP egyik ausztrál tüköroldalán.
- A "`mount`" parancs az util-linux csomag része, van egy hivatkozás hozzá a Building a Minimal Linux System from Source Code doksiban.
- A "`mount`, "`fstab`", "`fsck`"," `mke2fs`" és a `proc` kézikönyv-oldalai.
- A `Documentation/proc.txt` fájl a Linux forrásában elmagyarázza a `/proc` fájlrendszert.
- Az EXT2 fájlrendszer segédprogramjai, az ext2fsprogs honlapja, vagy az ext2fsprogs ausztrál tüköroldal. Itt van még egy Ext2fs-áttekintés, bár már régi és nem olyan olvasmányos, mint a "The Linux Kernel" 9. fejezete.
- Unix Fájlrendszer Standard. Másik link a Unix Fájlrendszer Standard-hoz. Ez leírja, minek hova kell kerülnie egy Unix fájlrendszerben, és miért. Szintén ebben található egy leírás arról, hogy a `/bin`, `/sbin` stb. könyvtáraknak mit kell tartalmaznia. Jó referencia, ha a célod egy minimális, mégis teljes rendszer megépítése.

Következő Előző Tartalom