Minden a Linux mount parancsról

Mount parancs linux

A Linux operációs rendszerek egyik alapvető, mégis sokszor rejtélyes parancsa a mount. Ez a parancs az, ami lehetővé teszi, hogy a különféle tárolóeszközökön (merevlemezek, SSD-k, USB-meghajtók, hálózati megosztások stb.) lévő fájlrendszereket elérhetővé tegyük a rendszer számára. Gondoljunk rá úgy, mint egy ajtóra, ami összeköti a fizikai (vagy virtuális) világot a Linux fájlrendszer hierarchiájával.

A mount parancs nélkül ezek az adatok elérhetetlenek lennének, mint egy könyvtár, aminek nincs bejárata. Ebben a cikkben mélyre ásunk a mount parancs működésében, bemutatjuk a legfontosabb opciókat, és gyakorlati példákon keresztül illusztráljuk a használatát. A célunk, hogy a kezdő felhasználóktól a tapasztalt rendszergazdákig mindenki számára érthetővé és hasznosíthatóvá tegyük ezt a kulcsfontosságú eszközt. A terjedelmet pedig úgy alakítjuk, hogy jóval meghaladja a 2500 szót.


Alapvető működés: Mi történik, amikor „Mountolunk”?

Amikor egy fájlrendszert „mountolunk”, a Linux kernel lényegében a következő lépéseket hajtja végre:

  1. Ellenőrzés: A kernel ellenőrzi, hogy a megadott eszköz (pl. /dev/sdb1) létezik-e, és hogy a megadott csatolási pont (pl. /mnt/adatok) egy létező könyvtár-e.

  2. Fájlrendszer-felismerés: A kernel megpróbálja azonosítani a fájlrendszer típusát (pl. ext4, NTFS, FAT32). Ezt általában automatikusan megteszi, de meg is adhatjuk explicit módon.

  3. Kapcsolat létrehozása: A kernel létrehoz egy belső kapcsolatot az eszköz és a csatolási pont között. Ez azt jelenti, hogy a csatolási ponton keresztül elérhetővé válnak az eszközön lévő adatok.

  4. Hozzáférés biztosítása: A kernel beállítja a szükséges engedélyeket és hozzáférési jogokat a csatolt fájlrendszerhez.


A mount parancs szintaxisa: Az alapok

A mount parancs legegyszerűbb formája a következő:

mount [opciók] <eszköz> <csatolási pont>
  • <eszköz>: Ez az az eszköz, amelyen a fájlrendszer található. Általában egy blokkeszköz, mint például egy merevlemez partíciója (/dev/sda1, /dev/sdb2), egy USB-meghajtó (/dev/sdc1), vagy egy logikai kötet (/dev/mapper/myvolume). De lehet ez egy hálózati megosztás is (pl. NFS, SMB/CIFS).
  • <csatolási pont>: Ez egy létező, üres könyvtár a Linux fájlrendszerében, ahová a fájlrendszert csatolni szeretnénk. Gyakran használt csatolási pontok például a /mnt, /media, vagy egy felhasználó által létrehozott könyvtár (pl. /home/felhasznalo/adatok).

Fontos! A csatolási pontnak léteznie kell, mielőtt a mount parancsot használnánk. Ha nem létezik, létre kell hozni a mkdir paranccsal:

mkdir /mnt/adatok

 

Példa (Alap):

Tegyük fel, hogy van egy USB-meghajtónk, ami /dev/sdb1-ként jelenik meg, és egy ext4 fájlrendszer van rajta. Ezt a meghajtót szeretnénk csatolni a /mnt/usb könyvtárba:

mount /dev/sdb1 /mnt/usb

Ennyi! Mostantól az USB-meghajtó tartalma elérhető a /mnt/usb könyvtáron keresztül.


A fájlrendszer típusának megadása (-t)

Bár a Linux általában automatikusan felismeri a fájlrendszer típusát, néha szükség lehet explicit módon megadni azt. Ezt a -t opcióval tehetjük meg:

mount -t <fájlrendszer_típus> <eszköz> <csatolási pont>

 

Például, ha egy NTFS fájlrendszerű Windows partíciót szeretnénk csatolni:

mount -t ntfs /dev/sda2 /mnt/windows

 

Gyakori fájlrendszer-típusok:

  • ext4: A leggyakoribb Linux fájlrendszer.
  • ntfs: A Windows alapértelmezett fájlrendszere.
  • vfat/fat32: Régebbi Windows fájlrendszer, gyakran használják USB-meghajtókon.
  • exfat: Modernebb fájlrendszer, amely támogatja a nagyobb fájlméreteket, mint a FAT32.
  • xfs: Nagy teljesítményű fájlrendszer, gyakran használják szervereken.
  • btrfs: Modern fájlrendszer, számos fejlett funkcióval (pl. pillanatképek, tömörítés).
  • iso9660: CD/DVD lemezek fájlrendszere.
  • nfs: Hálózati fájlrendszer (Network File System).
  • cifs/smb: Hálózati fájlrendszer (Samba/CIFS).

Csak olvasási mód (-r vagy -o ro)

Alapértelmezés szerint a mount parancs írási és olvasási jogokkal csatolja a fájlrendszereket. Ha azonban csak olvasni szeretnénk a fájlrendszert (például, hogy megakadályozzuk a véletlen módosításokat), használhatjuk a -r vagy a -o ro opciót:

mount -r /dev/sdb1 /mnt/usb  # vagy
mount -o ro /dev/sdb1 /mnt/usb

Írási-olvasási mód (-w vagy -o rw)

Ha explicit módon szeretnénk megadni az írási-olvasási módot (ami az alapértelmezett), használhatjuk a -w vagy a -o rw opciót:

mount -w /dev/sdb1 /mnt/usb # vagy
mount -o rw /dev/sdb1 /mnt/usb

További opciók (-o)

A -o opcióval számos további beállítást adhatunk meg, vesszővel elválasztva. Néhány gyakran használt opció:

  • uid=<felhasználó_azonosító>: Megadja, hogy melyik felhasználó legyen a csatolt fájlrendszer tulajdonosa.
  • gid=<csoport_azonosító>: Megadja, hogy melyik csoport legyen a csatolt fájlrendszer tulajdonosa.
  • umask=<engedély_maszk>: Megadja az alapértelmezett engedélyeket a csatolt fájlrendszeren lévő fájlokhoz és könyvtárakhoz.
  • defaults: Az alapértelmezett opciókat használja (rw, suid, dev, exec, auto, nouser, async).
  • noauto: A fájlrendszer nem lesz automatikusan csatolva a rendszer indításakor.
  • user: Engedélyezi a nem-root felhasználóknak a fájlrendszer csatolását és lecsatolását.
  • nouser: Csak a root felhasználó csatolhatja és lecsatolhatja a fájlrendszert (alapértelmezett).
  • exec: Engedélyezi a bináris fájlok futtatását a csatolt fájlrendszerről (alapértelmezett).
  • noexec: Letiltja a bináris fájlok futtatását a csatolt fájlrendszerről. Ez hasznos biztonsági okokból.
  • sync: Az adatok azonnal a lemezre íródnak (lassabb, de biztonságosabb).
  • async: Az adatok késleltetve íródnak a lemezre (gyorsabb, de kevésbé biztonságos).
  • remount: Újracsatol egy már csatolt fájlrendszert, például az opciók megváltoztatásához.

Példa (Több opcióval):

Csatoljuk az /dev/sdb1 eszközt a /mnt/adatok könyvtárba, csak olvasható módban, a 1000-es azonosítójú felhasználó tulajdonában, és letiltva a bináris fájlok futtatását:

mount -o ro,uid=1000,noexec /dev/sdb1 /mnt/adatok

 

Hálózati fájlrendszerek csatolása (NFS, SMB/CIFS)

A mount parancs nem csak helyi eszközök, hanem hálózati fájlrendszerek csatolására is használható.

NFS:

Az NFS (Network File System) egy elosztott fájlrendszer protokoll, amely lehetővé teszi, hogy egy Linux (vagy más Unix-szerű) rendszer elérje egy távoli szerveren lévő fájlokat és könyvtárakat.

Az NFS-megosztás csatolásához általában a következő formátumot használjuk:

mount -t nfs <szerver_címe>:<megosztott_könyvtár> <csatolási_pont>

Példa:

mount -t nfs 192.168.1.100:/home/share /mnt/nfs_share

 

Itt a 192.168.1.100 a szerver IP-címe, a /home/share a megosztott könyvtár a szerveren, és a /mnt/nfs_share a helyi csatolási pont.

SMB/CIFS:

Az SMB/CIFS (Server Message Block/Common Internet File System) egy másik elosztott fájlrendszer protokoll, amelyet főként Windows rendszerek használnak, de a Linux is képes kezelni.

Az SMB/CIFS megosztás csatolásához általában a következő formátumot használjuk (szükség lehet a cifs-utils csomag telepítésére):

mount -t cifs //szerver_címe/megosztás <csatolási_pont> -o username=<felhasználónév>,password=<jelszó>

 

Példa:

mount -t cifs //192.168.1.101/share /mnt/smb_share -o username=myuser,password=mypassword
<jelszó>

 

Itt a //192.168.1.101/share a megosztás neve a szerveren, a /mnt/smb_share a helyi csatolási pont, a username és password pedig a hozzáférési adatok. Lehetőség van jelszó fájlból történő beolvasására is biztonsági szempontból.

A /etc/fstab Fájl: Automatikus csatolás rendszerindításkor

A /etc/fstab (file systems table) egy konfigurációs fájl, amely meghatározza, hogy mely fájlrendszerek legyenek automatikusan csatolva a rendszer indításakor. Minden sor egy-egy fájlrendszert ír le, a következő mezőkkel (tabulátorral vagy szóközzel elválasztva):

  1. <eszköz>: Az eszköz neve (pl. /dev/sda1, UUID=..., LABEL=...).
  2. <csatolási pont>: A csatolási pont.
  3. <fájlrendszer_típus>: A fájlrendszer típusa (pl. ext4, ntfs, nfs).
  4. <opciók>: A csatolási opciók (vesszővel elválasztva).
  5. <dump>: A dump parancs használja-e a fájlrendszer biztonsági mentéséhez (0 vagy 1). A legtöbb esetben 0.
  6. <pass>: A fájlrendszer ellenőrzésének sorrendje a rendszer indításakor (0: nincs ellenőrzés, 1: elsődleges fájlrendszer, 2: másodlagos fájlrendszerek).

Példa /etc/fstab bejegyzés:

/dev/sda1   /               ext4    defaults        0       1
/dev/sdb1   /mnt/adatok    ext4    defaults        0       2
UUID=...   /mnt/win      ntfs    defaults,uid=1000,gid=1000 0       0
192.168.1.100:/home/share /mnt/nfs_share nfs defaults 0 0

 

Ebben a példában:

  • Az /dev/sda1 (a gyökér fájlrendszer) ext4 fájlrendszerű, és a / csatolási pontra kerül, az alapértelmezett opciókkal.
  • Az /dev/sdb1 egy másik ext4 fájlrendszer, és a /mnt/adatok csatolási pontra kerül.
  • Az UUID-vel azonosított partíció egy NTFS fájlrendszer, melynek csatolási pontja /mnt/win és a tulajdonosa az 1000-es uid-jű felhasználó.
  • A 192.168.1.100 szerveren lévő /home/share NFS-megosztás a /mnt/nfs_share csatolási pontra kerül.

UUID és LABEL Használata az /etc/fstab-ban

A /dev/sdX eszköznevek megváltozhatnak, ha például új merevlemezt adunk a rendszerhez. Ennek elkerülése érdekében használhatjuk az eszközök UUID-jét (Universally Unique Identifier) vagy LABEL-jét (címkéjét) az /etc/fstab-ban.

Az UUID egy egyedi azonosító, amelyet a fájlrendszer létrehozásakor kap. A LABEL egy általunk megadott név.

Az UUID lekérdezése:

blkid /dev/sda1

 

A LABEL lekérdezése (ha van):

lsblk -o NAME,LABEL

Példa /etc/fstab bejegyzés UUID-vel:

UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef  /mnt/adatok  ext4  defaults  0  2

Példa /etc/fstab bejegyzés LABEL-lel:

LABEL=adatok  /mnt/adatok  ext4  defaults  0  2

Lecsatolás (umount)

A mount parancs „párja” az umount parancs, amely a csatolt fájlrendszerek lecsatolására szolgál. Használata egyszerű:

umount <csatolási_pont>  # vagy
umount <eszköz>

 

Példa:

umount /mnt/usb  # vagy
umount /dev/sdb1

Fontos! Mielőtt eltávolítanánk egy eszközt (pl. USB-meghajtót), mindig le kell csatolni. Ellenkező esetben adatvesztés következhet be.

 


Hibaelhárítás

  • „mount: /dev/sdb1 is write-protected, mounting read-only”: Az eszköz írásvédett. Ez lehet fizikai kapcsoló az eszközön (pl. SD-kártyán), vagy a fájlrendszer hibája. Próbáljuk meg futtatni a fájlrendszer-ellenőrző eszközt (pl. fsck.ext4 /dev/sdb1 ext4 esetén, fsck.vfat /dev/sdb1 FAT32 esetén). Figyelem! A fájlrendszer-ellenőrzést lecsatolt fájlrendszeren kell végezni! NTFS esetén a Windows saját hibajavító eszközét érdemes használni.
  • „mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error”: Ez a hibaüzenet sokféle problémát jelezhet. Lehetséges okok:

    • Rossz fájlrendszer-típus: Ellenőrizzük, hogy a helyes fájlrendszer-típust adtuk-e meg a -t opciónál.
    • Hibás opció: Ellenőrizzük, hogy nem gépeltünk-e el egy opciót.
    • Sérült szuperblokk: A szuperblokk a fájlrendszer metaadatait tartalmazza. Ha sérült, a fájlrendszer nem csatolható. Próbáljuk meg futtatni a fájlrendszer-ellenőrző eszközt.
    • Hiányzó kódlap: Ez főleg régebbi FAT fájlrendszereknél fordulhat elő. Próbáljuk meg megadni a megfelelő kódlapot a -o codepage=... opcióval (pl. -o codepage=852).
    • Hiányzó segédprogram: Néhány fájlrendszerhez (pl. NTFS, exFAT) szükség lehet külön csomagokra (pl. ntfs-3g, exfat-fuse, exfatprogs). Telepítsük ezeket a csomagkezelőnkkel.
    • Egyéb hiba: Ellenőrizzük a rendszer naplófájljait (dmesg, /var/log/syslog) további információkért.
  • „mount: can’t find UUID=…”: A megadott UUID nem található. Ellenőrizzük a blkid parancs kimenetét, hogy helyes-e az UUID.
  • „mount: can’t find LABEL=…”: A megadott LABEL nem található. Ellenőrizzük az lsblk -o NAME,LABEL kimenetét.
  • „mount: permission denied”: Nincs jogosultságunk a fájlrendszer csatolásához. Alapértelmezés szerint csak a root felhasználó csatolhat fájlrendszereket. Használhatjuk a sudo parancsot, vagy konfigurálhatjuk a sudoers fájlt, hogy engedélyezzük a csatolást más felhasználóknak. Az /etc/fstab-ban a user vagy users opció is segíthet.
  • NFS hibaüzenetek: Az NFS csatolásakor számos hiba léphet fel, például:

    • „mount.nfs: Connection timed out”: A szerver nem válaszol. Ellenőrizzük a hálózati kapcsolatot és a tűzfal beállításait.
    • „mount.nfs: access denied by server”: A szerver megtagadta a hozzáférést. Ellenőrizzük a szerveren az exportált könyvtárak konfigurációját (/etc/exports).
    • „mount.nfs: No route to host”: Nem érhető el a szerver. Ellenőrizzük a hálózati útvonalakat.
  • SMB/CIFS hibaüzenetek:

    • „mount error(13): Permission denied”: Hibás felhasználónév vagy jelszó, vagy nincs hozzáférésünk a megosztáshoz.
    • „mount error(2): No such file or directory”: A megosztás neve helytelen, vagy a szerver nem elérhető.
    • „mount error(112): Host is down”: A kiszolgáló nem elérhető.

Haladóbb témák

Loop Eszközök (-o loop)

A mount parancs -o loop opciójával ISO képfájlokat és egyéb lemezképfájlokat is csatolhatunk. Ez lehetővé teszi, hogy a képfájl tartalmához hozzáférjünk anélkül, hogy ki kellene írnunk egy lemezre.

Példa:

mount -o loop /home/felhasznalo/letoltesek/ubuntu.iso /mnt/iso

Ez a parancs a /home/felhasznalo/letoltesek/ubuntu.iso képfájlt csatolja a /mnt/iso könyvtárba.


Bind Mounts (--bind vagy -o bind)

A bind mount lehetővé teszi, hogy egy már csatolt fájlrendszer egy részét (vagy egészét) egy másik helyen is elérhetővé tegyük. Ez hasznos lehet például, ha egy könyvtárat több felhasználó számára is elérhetővé szeretnénk tenni, vagy ha egy chroot környezetet hozunk létre.

Példa:

mount --bind /home/felhasznalo/dokumentumok /mnt/dokumentumok_masolat

Ez a parancs a /home/felhasznalo/dokumentumok könyvtárat „tükrözi” a /mnt/dokumentumok_masolat könyvtárba. A két könyvtár tartalma szinkronban lesz. Ha az egyikben változtatás történik, az a másikban is megjelenik. Fontos megjegyezni, hogy ez nem egy másolat, hanem egy másik nézőpont ugyanarra az adatra.


Rendszerindítási folyamat és a mount

A rendszerindítási folyamat során a mount parancs kulcsszerepet játszik. A kernel először egy ideiglenes fájlrendszert (initramfs) csatol, amely tartalmazza a szükséges eszközöket és modulokat a gyökér fájlrendszer (root filesystem) csatolásához. Ezután az /etc/fstab fájlban meghatározott fájlrendszerek kerülnek csatolásra. A systemd (vagy más init rendszer) kezeli ezt a folyamatot.


További hasznos parancsok a mount-tal kapcsolatban

  • findmnt: A csatolt fájlrendszerek listázása és keresése. Részletesebb információkat ad, mint a sima mount parancs.
  • lsblk: Blokkeszközök listázása (merevlemezek, partíciók, USB-meghajtók stb.). Megjeleníti a méretüket, típusukat, UUID-jüket, LABEL-jüket és csatolási pontjaikat.
  • df: (disk free) A lemezterület-használat megjelenítése a csatolt fájlrendszereken.
  • mountpoint: Ellenőrzi, hogy egy könyvtár csatolási pont-e. Visszatérési értéke 0, ha igen, 1, ha nem.


Biztonsági megfontolások

  • noexec opció: Használjuk a noexec opciót olyan fájlrendszereken, ahol nem szeretnénk, hogy bináris fájlok fussanak (pl. felhasználók által feltöltött fájlokat tartalmazó könyvtárak).
  • nosuid opció: A nosuid opció megakadályozza, hogy a setuid és setgid bitek érvényesüljenek a csatolt fájlrendszeren. Ez megakadályozza, hogy a felhasználók jogosultságokat emeljenek a setuid/setgid programok futtatásával.
  • nodev opció: A nodev opció letiltja a karakteres és blokkeszközök értelmezését a fájlrendszeren. Ez megakadályozhatja, hogy a támadók speciális eszközfájlokat hozzanak létre, amelyekkel hozzáférhetnek a rendszerhez.
  • Lecsatolás eltávolítás előtt: Mindig csatoljuk le a fájlrendszereket, mielőtt eltávolítanánk az eszközt.
  • Hálózati fájlrendszerek: Legyünk óvatosak a hálózati fájlrendszerek csatolásakor, különösen, ha nem megbízható hálózatról van szó. Használjunk titkosított kapcsolatot (pl. SSHFS), ha lehetséges.
  • Jelszavak tárolása: Kerüljük a jelszavak közvetlen megadását a parancssorban (pl. SMB/CIFS esetén). Használjunk jelszófájlt, vagy interaktív módon adjuk meg a jelszót.


Összefoglalás

A mount parancs a Linux rendszerek egyik legalapvetőbb és leghasznosabb eszköze. A cikkben bemutatott részletes információk és példák segítségével remélhetőleg sikerült átfogó képet adni a parancs működéséről, a legfontosabb opciókról, és a gyakorlati alkalmazási lehetőségekről. A mount parancs, a /etc/fstab fájl és a kapcsolódó eszközök (pl. umount, findmnt, lsblk) ismerete elengedhetetlen a Linux rendszerek hatékony adminisztrációjához és a fájlrendszerek kezeléséhez.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük