# fstab (Magyar)

Related articles

- Persistent block device naming
- NTFS Write Support
- Firefox Ramdisk
- Boot debugging
- udev

Az /etc/fstab fájl határozza meg, hogy a lemezek partícióit, más blokkeszközöket, vagy távoli fájlrendszereket hogyan csatolunk a fájlrendszerünkbe.

Minden csatolandó fájlrendszert különálló sor ír le. Ezek a leírások rendszer indításakor dinamikusan systemd csatolási egységgé (mount unit) konvertálódnak, valamint akkor, amikor a rendszerkezelőt újratöltjük. Az alapértelmezett beállítások automatikusan ellenőrzik (fsck) és csatolják a fájlrendszereket, mielőtt az azok felcsatolását igénylő szolgáltatások elindulnának. Például a systemd magától megbizonyosodik róla, hogy a távoli fájlrendszerek, mint az NFS vagy a Samba csak azután induljanak, hogy a hálózatunk már működőképes. Ezért a helyi és távoli fájlrendszer-csatolások, melyek az `/etc/fstab`-ban szerepelnek, külső beavatkozás nélkül is működőképesek. Lásd a `man 5 systemd.mount` leírást részletekért.

A `mount` parancs az fstab-ot hasznája, ha parancsként csak a könyvtárt vagy az eszköz nevét (pl. mount /dev/sdb2 vagy mount /my/mount) adjuk meg, s a parancs ilyenkor az fstab-ból keresi vissza a másik paramétert. Ha így teszünk, az fstab-ban foglalt csatolási opciók lesznek használatosak.

## Példa az fstab állományra

Egyszerű `/etc/fstab` fájl, mely kernel név szerinti leírókat használ:

    /etc/fstab

    # <file system>        <dir>         <type>    <options>             <dump> <pass>
    /dev/sda1              /             ext4      defaults,noatime      0      1
    /dev/sda2              none          swap      defaults              0      0
    /dev/sda3              /home         ext4      defaults,noatime      0      2

## A mezők definíciói

Az `/etc/fstab` állomány a következő szóközzel vagy tabulátorral elválasztott mezőket tartalmazza:

     <file system>        <dir>         <type>    <options>             <dump> <pass>

- <file system> - (fájlrendszer) a csatolandó partíció vagy tárolóeszköz.
- <dir> - (könyvtár) a csatolási pont, ahova a <file system> csatolásra kerül.
- <type> - (típus) a csatolandó partíció vagy tárolóeszköz fájlrendszerének típusa. Sok különböző fájlrendszer támogatott: `ext2`, `ext3`, `ext4`, `btrfs`, `reiserfs`, `xfs`, `jfs`, `smbfs`, `iso9660`, `vfat`, `ntfs`, `swap` és `auto`. Az `auto` típus a mount parancsra bízza a használandó fájlrendszer típusának meghatározását. Ez hasznos lehet az optikai adathordozók esetén (CD/DVD).
- <options> - (opciók) az adott fájlrendszer csatolási opciói. Jegyezzük meg, hogy egyes [csatolási opciók csak egy-egy fájlrendszerre jellemzők. A leggyakoribbak a következők:

  - `auto` - Csatoljuk automatikusan a rendszer indításakor, vagy ha a `mount -a` parancs kerül használatra.
  - `noauto` - Csak akkor csatoljuk, ha ezt külön paranccsal kérjük.
  - `exec` - Engedélyezi a bináris fájlok végrehajtását a fájlrendszeren.
  - `noexec` - Tiltja a bináris fájlok végrehajtását a fájlrendszeren.
  - `ro` - Csak olvashatóan csatolja a fájlrendszert.
  - `rw` - Írhatóan és olvashatóan csatolja a fájlrendszert.
  - `user` - Bármely felhasználónak engedélyezi a fájlrendszer csatolását. Ez automatikusan maga után vonja a `noexec`, `nosuid` és `nodev` opciókat, kivéve, ha ezt külön jelezzük.
  - `users` - Bármely felhasználónak, aki része az users csoportnak, engedélyezi a fájlrendszer csatolását.
  - `nouser` - Csak root csatolhatja a fájlrendszert.
  - `owner` - Csak az eszköz tulajdonosa csatolhatja a fájlrendszert.
  - `sync` - Az I/O szinkronizáltan történik.
  - `async` - I/O nem szinkronizáltan történik.
  - `dev` - Értelmezi a speciális blokkeszközöket a fájlrendszeren.
  - `nodev` - Nem értelmezi a speciális blokkeszközöket a fájlrendszeren.
  - `suid` - Engedélyezi az suid és sgid bitek működését a fájlrendszeren. Ezek teszik lehetővé, hogy a felhasználók időlegesen megemelt privilégiumokkal bináris kódot hajtsanak végre egy bizonyos cél érdekében.
  - `nosuid` - Meggátolja az suid és sgid bitek működését.
  - `noatime` - Nem frissíti az inode-ok elérési idejét a fájlrendszeren - növelheti a teljesítményt, lásd atime opciók).
  - `nodiratime` - Nem frissíti a könyvtár inode-ok elérési idejét a fájlrendszeren - növelheti a teljesítményt, lásd atime opciók).
  - `relatime` - Az inode-ok elérési idejét a módosítás vagy változtatás idejéhez képest frissíti. Az elérési idő csak akkor frissül, ha az előző elérés előbb történt, mint a jelenlegi módosítási vagy változtatási idő. (Hasonló a noatime-hoz, de nem gátolja a mutt és a hasonló programok működését, melyeknek tudniuk kell, hogy egy állomány már olvasásra került-e a legutóbbi módosítása óta.) Növelheti a teljesítményt, lásd az atime opciókat).
  - `discard` - Hajtson végre TRIM parancsokat az alatta elhelyezkedő blokkeszközön, amikor blokkok szabadulnak fel. Használata erősen javasolt, ha a fájlrendszer SSD meghajtón foglal helyet.
  - `flush` - A `vfat` opció, mellyel az adat gyakrabban kerül tisztításra, így a másolási párbeszédablakok és állapotjelző csíkok megmaradnak, míg minden adat ténylegesen írásra kerül.
  - `nofail` - Csatoljuk fel az eszközt, ha elérhető, de ne vegyünk róla tudomást, ha nem az. Ezzel kiküszöbölhetők a hibaüzenetek, ha hordozható eszközről indítjuk a rendszert.
  - `defaults` - Az adott fájlrendszer alapértelmezett csatolási opciói kerülnek használatra. Ezek például az ext4 esetén: `rw`, `suid`, `dev`, `exec`, `auto`, `nouser`, `async`.

- <dump> - (kiírás) a dump eszköz használja annak eldöntésére, hogy készítsen-e biztonsági másolatot, vagy sem. A dump ellenőrzi ezt a mezőt, s annak számértékéből állapítja meg, hogy szükség van-e a fájlrendszer másolatának létrehozására. A lehetséges értékek 0 és 1. Ha 0, a dump nem vesz tudomást a fájlrendszerről; ha 1, a dump készít egy másolatot. Mivel a legtöbb felhasználó nem használ dump-ot, ez a bejegyzés 0 maradhat.

- <pass> - (menet) Az fsck eszköz használja annak megállapítására, hogy milyen sorrendben ellenőrizze le a fájlrendszereket. A lehetséges értékek a 0, 1 és a 2. A root fájlrendszeré az 1-es, legmagasabb prioritás (kivéve, ha ez btrfs fájlrendszer, amikor is ez 0) - minden más ellenőrzendő fájlrendszer prioritása legyen 2-es. Az olyan fájlrendszerek, ahol 0 értéket állítunk be, nem kerülnek ellenőrzésre.

## A fájlrendszerek azonosítása

Háromféle módja van a partíciók vagy tárolóeszközök azonosításának az `/etc/fstab`-ban: a rendszermag szerinti leíró (kernel name descriptor) alapján, címke vagy UUID alapján. Az UUID vagy a címkék használatának előnye az, hogy nem függenek attól a sorrendtől, ahogy a meghajtók fizikai összeköttetésbe kerültek a géppel. Mindez nagyon hasznos lehet, ha a BIOS-ban a tárolóegységek sorrendje megváltozik, vagy egyszerűen csak változtatunk a kábelezésükön. Emellett a BIOS olykor magától is megváltoztathatja a tárolóegységek sorrendjét. Erről a Persistent block device naming cikkben olvashatunk többet.

A partíciókról alapvető információt az alábbi paranccsal szerezhetünk:

    $ lsblk -f

    NAME   FSTYPE LABEL      UUID                                 MOUNTPOINT
    sda
    ├─sda1 ext4   Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff /
    ├─sda2 ntfs   Windows    6C1093E61093B594
    └─sda3 ext4   Storage    f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage
    sdb
    ├─sdb1 ntfs   Games      9E68F00568EFD9D3
    └─sdb2 ext4   Backup     14d50a6c-e083-42f2-b9c4-bc8bae38d274 /media/Backup
    sdc
    └─sdc1 vfat   Camera     47FA-4071                            /media/Camera

### Rendszermag szerinti leíró

Futassuk az `lsblk -f` parancsot a partíciók listázásához, és helyezzük eléjük a `/dev` előtagot.

Lásd a példát.

### Címke

Megjegyzés: Az esetleges ütközéseket kiküszöbölendő, minden címkének egyedinek kell lennie.

Arról, hogy hogyan lássunk el címkével partíciókat vagy meghajtókat, Persistent block device naming#by-label cikkben olvashatunk. A root partíció újranevezését valamiféle "live" médiumról kell elvégeznünk, mert a partíciót első körben le kell választanunk.

Futtassuk az `lsblk -f` parancsot a partíciók listázásához, és helyezzük eléjük a `LABEL=` előtagot:

    /etc/fstab

    # <file system>        <dir>         <type>    <options>             <dump> <pass>
    LABEL=Arch_Linux       /             ext4      defaults,noatime      0      1
    LABEL=Arch_Swap        none          swap      defaults              0      0

### UUID

Minden partíciónak és tárolóegységnek van egy egyedi UUID-je. Ezt a fájlrendszerek segédprogramjai generálják (pl.: `mkfs.*`), amikor a partíciót létrehozzuk vagy formázzuk. Lássuk a Persistent block device naming#by-uuid cikket.

Futtassuk az `lsblk -f` parancsot a partíciók listázásához, és lássuk el őket a `UUID=` előtaggal:

Tip: Ha csak az UUID-kat akarjuk listázni, használjuk a következőt:

    $ lsblk -no UUID /dev/sda2

    /etc/fstab

    # <file system>                            <dir>     <type>    <options>             <dump> <pass>
    UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26  /         ext4      defaults,noatime      0      1
    UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff  /home     ext4      defaults,noatime      0      2
    UUID=4209c845-f495-4c43-8a03-5363dd433153  none      swap      defaults              0      0

## Tippek és trükkök

### Automatikus csatolás systemd-vel

Ha a `/home` partíciónk nagyméretű, jobb, ha a `/home`-tól nem függő szolgáltatásaink már akkor is indulhatnak, míg a `/home` fsck ellenőrzés alatt áll. Ezt úgy érhetjük el, hogy az alábbi opciókat adjuk az `/etc/fstab`-ban a `/home` partícióhoz:

    noauto,x-systemd.automount

Ez akkor ellenőrzi és csatolja a `/home` partíciót, amikor azt először elérjük, a kernel pedig tárolja az összes fájlelérést, míg a `/home` nem áll készen.

Megjegyzés: Ezzel a kis trükkel a `/home` partíció fájlrendszerének típusa csatoláskor `autofs` lesz, melyet az mlocate figyelmen kívül hagy. Ezáltal tehát a `/home` automatikus felcsatolása a rendszerünktől függően egy-két másodperc alatt fog megtörténni, tehát lehet, hogy ez a trükk nem is túl hasznos.

Ugyanez vonatkozik a távoli fájlrendszerek felcsatolására is. Ha azt akarjuk, hogy csak az első hozzáféréskor csatolódjanak, ugyanígy a `noauto,x-systemd.automount` paramétereket kell használnunk. Ehhez még használhatjuk a `x-systemd.device-timeout=#` opciót egy bizonyos várakozási idő megadásához, ha a hálózati erőforrás esetleg nem lenne elérhető.

Ha kulcsokkal titkosított fájlrendszereink vannak, a `noauto` paramétert a megfelelő bejegyzésekhez adhatjuk az `/etc/crypttab`-ban. A systemd így nem nyitja meg a titkosított eszközt a rendszer indulásakor, hanem vár, míg valaki hozzá akar férni, s megnyitja a megjelölt kulccsal, mielőtt felcsatolja. Ez induláskor megspórolhat pár másodpercet, ha például titkosított RAID eszközt használunk, mivel a systemd-nek nem kell várnia, míg az eszköz elérhető lesz. Például:

    /etc/crypttab

    data /dev/md0 /root/key noauto

### Szóköz az elérési utakban

Ha bármely csatolási pont szóközt tartalmaz, használjuk az escape karaktert `\`, melyet `040` háromjegyű nyolcas számrendszerű kód követ, hogy a szóközt emulálja:

    /etc/fstab

    UUID=47FA-4071     /home/username/Camera\040Pictures   vfat  defaults,noatime       0  0
    /dev/sda7          /media/100\040GB\040(Storage)       ext4  defaults,noatime,user  0  2

### Külső meghajtók

A külső eszközök, melyeket jelenlétükben csatolunk, de ha nincsenek jelen, figyelmen kívül hagyunk, a `nofail` opciót igénylik. Így nem kapunk hibaüzeneteket rendszerindításkor.

    /etc/fstab

    /dev/sdg1        /media/backup    jfs    defaults,nofail    0  2

### atime opciók

A `noatime`, `nodiratime` vagy `relatime` opciók használata hatással lehet a meghajtó teljesítményére.

- Az `atime` egy állomány minden egyes elérésekor frissíti annak atime-ját. Ez a leghasznosabb, ha az ember szervert üzemeltet; ám egy asztali rendszer esetében nem sok értelme van. Az `atime` opció használatának egyik hátulütője az, hogy még a gyorsítótárból való olvasás (ha memóriából olvasunk a lemez helyett)is íráshoz vezet!

  A `noatime` opció teljesen kikapcsolja az elérések írását a lemezen, ahányszor csak olvasunk egy állományt. Ez legtöbbször nagyon jól működik, kivéve egyes ritka esetekben (Mutt), melyeknek épp erre az információra van szükségük. A mutt használatához a `relatime` opciót kell használni.

  A `nodiratime` opció kikapcsolja az elérések írását a lemezen, de csak könyvtárak elérésekor, míg minden más állomány elérése továbbra is írásra kerül.
  Megjegyzés: A `noatime` eleve magában foglalja a `nodiratime`-ot. Nem kell mindkettőt jelölni.

- A `relatime` engedélyezi az elérés idejének írását, de csak akkor, ha az állomány módosul (a `noatime`-mal ellenben, ahol a hozzáférési idő nem módosul és mindig régebbi lesz, mint a módosítás ideje). A legjobb kompromisszum ezen opció használata lehet, mert a Mutt és a hozzá hasonló programok működni fognak, de bizonyos mértékben a teljesítmény is megnő, hiszen az állományaink elérési ideje csak módosításkor változik. Ez az opció használatos, ha csak a `defaults` kulcsszót, vagy semmiféle opciót nem adunk meg az fstab-ban egy adott csatolási ponthoz.

### tmpfs

A tmpfs egy ideiglenes fájlrendszer, mely a memóriában és/vagy a cserehelyen található, attól függően, hogy mennyire töltjük meg. Ha könyvtárakat csatolunk tmpfs fájlrendszerként, azzal jelentősen meggyorsul tartalmuk és állományaik elérési ideje; illetve ez biztossá teszi, hogy tartalmuk újraindításkor kiürüljön.

A tmpfs-ként használt könyvtárak között van például a /tmp, /var/lock és /var/run. NE HASZNÁLJUK a /var/tmp esetében, mert ebben a könyvtárban olyan ideiglenes állományok foglalnak helyet, melyeknek két újraindítás közt is meg kell őrződniük. Az Arch tmpfs-t használ a `/run` könyvtárhoz, ahol a `/var/run` és a `/var/lock` csak symlinks-ként létezik a kompatibilitás kedvéért. A systemd alapértelmezett működése szerint a `/tmp`-hez is használatos, ebben az esetben nem igényel külön bejegyzést az `/etc/fstab`-ban, csak ha különösebb beállításokat igénylünk.

Megjegyzés: Ha systemd-t használunk, a tmpfs könyvtárakban levő ideiglenes állományokat a tmpfiles.d használatával újra létrehozhatjuk indításkor.

Alapesetben egy tmpfs partíció mérete a teljes RAM felére állítódik be, de ez igény szerint szerkeszthető. Jegyezzük meg, hogy a tényleges memória/swap fogyasztás csak a kitöltöttségtől függ, mivel a tmpfs partíciók nem fogyasztanak RAM-ot, míg ténylegesen nem szükséges.

Hogy beállítsuk a saját szükségeink szerinti méretet, ebben a példában a `/tmp` csatolásán változtatva, használjuk a `size` csatolási opciót:

    /etc/fstab

    tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0  0

Következzék egy kissé kihegyezettebb példa egy tmpfs csatolására. Ez hasznos lehet weboldalak, ideiglenes mysql állományok, `~/.vim/`, és sok minden más esetében. Az igazán fontos az, hogy az ideális opciókat találjuk meg ahhoz, amit csinálni szeretnénk. A cél az, hogy a beállításaink biztonságosak legyenek. Ha a méretet és a hozzáférési jogot korlátozzuk (uid és gid értékek, valamint mode érték megadásával, az nagyon biztonságos. Ebben a tárgyban tájékozódhatunk még a #See also lista alapján.

    /etc/fstab

    tmpfs   /www/cache    tmpfs  rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700   0  0

Lásd a `mount` parancs man oldalát több információért. One useful mount option in the man page is the `default` option. At least understand that.

A változtatások érvénybe léptetéséhez indítsuk újra a rendszert. Jegyezzük meg, hogy bár csábító lehet a `mount -a` használata az azonnali hatás érdekében, ez az említett könyvtárak állományait hozzáférhetetlenné teszi (ez különösen problémás lehet lock fájlokat használó programok esetén); ám ha mindegyik üres, biztonságos lehet a `mount -a` használata (vagy egyenkénti, manuális felcsatolásuk) az újraindítás helyett.

A válzoztatások érvénybe léptetése után leellenőrizhetjük, hogy minden í kívánt módon működik-e, belenézve a `/proc/mounts`-ba és a `findmnt`-vel:

    $ findmnt --target /tmp

    TARGET SOURCE FSTYPE OPTIONS
    /tmp   tmpfs  tmpfs  rw,nosuid,nodev,relatime

#### Használata

Általánosságban, az I/O-intenzív folyamatok és programok, melyek gyakran futtatnak írás/olvasás műveleteket, hasznot húzhatnak egy tmpfs könyvtár használatából. Bizonyos alkalmazásoknak kifejezetten az előnyére válhat, ha néhány (vagy az összes) adatuk a megosztott memóriába kerül. Így például a Firefox profil RAM-ba való áthelyezése jelentős teljesítmény-növekedést eredményez.

##### Fordítási idők javítása

A csomagfordítás rengeteg apró fájl kezelését és számtalan I/O műveletet igényel; ezért ez az egyik olyan folyamat, mely a legtöbb előnyét élvezi, ha #tmpfs-be helyezzük a munkakönyvtárát.

###### Egy munkamenetre

A `BUILDDIR` értéket parancshéjban exportálhatjuk, hogy a makepkg munkakönyvtárt ideiglenesen valamely létező tmpfs-ben helyezzen el:

    $ BUILDDIR=/tmp/makepkg makepkg

###### Véglegesítve

Csak vegyük ki a kommentet a `BUILDDIR` sor elől a `/etc/makepkg.conf` fájlban, lásd a Makepkg#Improving compile times cikket a részletekért.

### A FAT32 írása egyszerű felhasználóként

A FAT32 partíciókra való íráshoz pár változást kell eszközölni az `/etc/fstab` állományban.

    /etc/fstab

    /dev/sdxY    /mnt/some_folder  vfat   user,rw,umask=000              0  0

A `user` zászló annyit tesz, hogy bármely (nem root) felhasználó képes fel-, vagy lecsatolni az `/dev/sdX` fájlrendszert. A `rw` írás-olvasási hozzáférést ad; `umask` opció elveszi a kijelölt jogokat - például a `umask=111` elveszi a végrehajtás jogát. A gond az, hogy ez elveszi a végrehajtás jogát a könyvtárakról is, ezért a `dmask=000` opcióval kell korrigálnunk. Lásd Umask.

Ezen opciók nélkül minden fájl végrehajtható lenne. A `showexec` opció is használható a umask és dmask helyett, mely a végrehajtható Windows fájlokat (com, exe, bat) végrehajtható színnel jelöli.

Összegzésként, ha például a FAT32 partíciónk a `/dev/sda9`, és a `/mnt/fat32` alá akarjuk csatolni, a következőt kell használnunk:

    /etc/fstab

    /dev/sda9    /mnt/fat32        vfat   user,rw,umask=111,dmask=000    0  0

### A root partíció újracsatolása

Ha valamilyen okból a root partíciót helytelenül csak olvashatóként csatoltuk, a következő paranccsal írható/olvasható-ként csatolhatjuk fel:

    # mount -o remount,rw /

## Lásd még

- Teljes eszközlista, beleértve a blokkeszközöket is
- Fájlrendszer Hierarchia Standard
- 30x Gyorsabb Weblapok (Részletezett tmpfs)
- Adjunk Samba megosztásokat az /etc/fstab-hoz

Categories:

- File systems (Magyar)
- Boot process (Magyar)