Menu Fermer

fstab Linux : fonctionnement, structure et exemples

Le fichier /etc/fstab est l’un des fichiers les plus importants d’un système basé sur Linux, car il stocke des informations statiques sur les systèmes de fichiers, leurs points de montage et leurs options de montage.

Dans ce tutoriel, je vous apprends à connaître sa structure en détail et la syntaxe que nous pouvons utiliser pour spécifier chaque entrée dans le fichier.

fstab Linux : fonctionnement, structure et exemples

Qu’est-ce que fstab ?

fstab est le tableau du système de fichiers de votre système d’exploitation.
Il stocke tous les points de montage qui sont exécutés au démarrage du système d’exploitation Linux.
On y trouve donc le montage / et généralement swap puis les partitions séparées si existantes.

L’administrateur peut y ajouter et déclarer n’importe quel point de montage comme une clé USB comme un montage distant NFS ou Samba.
De ce fait, vous pouvez ajouter un nouveau disque dans fstab avec les différents points de montages.

De plus, cela permet de monter un système de fichiers par son nom avec des options préétablies directement avec la commande mount.

Comment accéder à fstab ?

Il s’agit d’un fichier système et donc il requiert un accès root.
Ensuite vous pouvez l’ouvrir avec n’importe quel éditeur.
Par exemple avec vim :

sudo vim /etc/fstab

ou nano :

sudo nano /etc/fstab

Quelle est la structure du fichier fstab ?

La structure du fichier fstab est la suivante :

<File system>   <mnt>   <type fs>  <options>       <dump>  <pass>
Quelle est la structure du fichier fstab

Par exemple ci-dessous le point de montage / et swap avec les informations du périphériques de blocs, le type de système de fichiers et des opérations et paramètres :

UUID=074e5a60-b0b8-4876-8673-bec4bc8394a5       /       ext4    defaults        0       1
UUID=6311c7e5-69e9-400c-bb36-0794501ab22d       swap    swap    defaults        0       0

FileSytem

Le premier champ de chaque entrée fstab contient des informations sur le périphérique de bloc local ou distant qui doit être monté. La façon la plus typique de référencer un périphérique de bloc consiste à utiliser son nœud à l’intérieur du répertoire /dev, par exemple pour faire référence à la première partition du périphérique de bloc sda que nous utilisons /dev/sda1 comme valeur.

Mais la plupart des distributions Linux spécifient les partitions par leurs étiquettes ou UUID (Universal Unique IDentifier) sur les disques GPT.

Pour obtenir des informations sur les systèmes de fichiers, nous pouvons exécuter la commande lsblk, éventuellement avec l’option -o pour spécifier les champs que nous souhaitons récupérer, ou en utilisant le -fs, qui est l’équivalent de l’utilisation de -o et de fournir un nom, type fs, étiquette , UUID, montpoint comme arguments.
Par défaut, le programme affichera des informations sur tous les systèmes de fichiers existants.
Pour éviter ce comportement, une référence du système de fichiers doit être transmise comme argument :

lsblk -d -fs /dev/sda1
NAME  FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda1  ext4   1.0   root  074e5a60-b0b8-4876-8673-bec4bc8394a5    1.7T     1% /
└─sda

On peut donc utiliser cette entrée File system :

UUID=074e5a60-b0b8-4876-8673-bec4bc8394a5  

Point de montage

Dans chaque entrée fstab, le deuxième champ spécifie le point de montage pour le système de fichiers: quel répertoire du système doit être utilisé pour accéder à son contenu.
Cela doit toujours être fourni, sauf si le périphérique de bloc nous faisons référence, il est utilisé comme échange. Dans ce cas, “aucun” doit être utilisé. Supposons que nous voulons monter notre système de fichiers sur «/mnt/exemple»; Nous écrivions:

UUID=074e5a60-b0b8-4876-8673-bec4bc8394a5       /mnt/exemple ext4

Type de système de fichiers

Le troisième champ d’une entrée fstan spécifie le type de système de fichiers utilisé sur le périphérique de bloc ou la partition. Le système de fichiers doit être parmi ceux pris en charge par le système d’exploitation comme, par exemple ext2/3/4, ReiserFS, jFS, etc.
Dans le cas de système de fichiers distant, nous pouvons utiliser, par exemple CIFS comme valeur de ce champ si le système de fichiers est partagé via Samba ou NFS si Il est partagé via le système de fichiers réseau.

Les options

Les options est le quatrième champ représente les options de montage que vous pouvez séparer par des virgules, par exemple :

  • RW/RO : Permissions en lecture-écriture ou passer la partition en lecture seule
  • umask (user file-creation mode) : le mode de création de fichiers utilisateur, est une commande Linux qui est utilisée pour attribuer les ensembles d’autorisation de fichier par défaut pour les dossiers et fichiers nouvellement créés. Exemple : umask=0077
  • SUID : respect setuid et setgid bits
  • dev : interpréter les caractères et bloquer les appareils sur le système de fichiers
  • exec : permettre l’exécution de binaires et de scripts
  • Auto : montez le système de fichiers lorsque l’option -a de la commande de montage est utilisée;
  • User/Nouser : rendre le système de fichiers non montable par un utilisateur standard;
  • Synac/Async : effectuer des opérations d’E/S sur le système de fichiers de manière asynchrone. Sinon les opérations en Async sont effectuées lors d’une baisse d’activité

Ces options diffèrent selon le type de système de fichiers, par exemple NFS ou Samba ont leur propre options.

Dump

Dump est une méthode de sauvegarde qui n’est plus utilisé, on l’activé par 1 ou désactivé par 0. En général, il faut laisser à 0 car plus très utilisé de nos jours.

Pass

Cette option de fstab indique si fsck doit vérifier le système de fichier en cas d’erreurs de périphérique / partition. 0 signifie pas de vérification alors que 1 non.
On le désactive en général sur les FS non journalisé ou non supporté complètement comme NTFS, SWAP ou FAT16/32. Vous pouvez l’activer pour les fs comme Ext3 / 4 et ReiserFS

Quelques exemples fstab

Monter un lecteur local

Voici un exemple de montage de la partition racine et swap :

UUID=074e5a60-b0b8-4876-8673-bec4bc8394a5       /       ext4    defaults        0       1
UUID=6311c7e5-69e9-400c-bb36-0794501ab22d       swap    swap    defaults        0       0

Dans le cas d’un disque GPT, on peut aussi rencontrer le montage de /boot avec le répertoire efi :

UID=11EC-726C  /boot/efi       vfat    umask=0077      0       1

Monter un lecteur amovible

Voici un exemple de fstab pour déclarer un CD-Rom ou DVD-Rom :

/dev/cdroms/cdrom0     /mnt/cd   iso9660   ro,user,noauto,unhide     0    0
/dev/cdroms/cdrom0     /mnt/dvd  udf       ro,user,noauto,unhide       0    0

Par exemple le fstab pour un lecteur de disquette :

dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

Monter un ramdisk

Un ramdisk est un répertoire que l’on monte en mémoire RAM.
Il existe de nombreuses raisons de créer un système de fichiers basé sur la mémoire dans Linux, dont le moins consiste à fournir une latence presque nulle et une zone extrêmement rapide dans les fichiers d’histoire.
Une utilisation principale d’un disque RAM concerne les répertoires de mise en cache d’application ou les zones de travail.

Certaines distributions Linux monte le répertoire temporaire /tmp dans un ramdisk, ce qui donne :

tmpfs       /tmp          tmpfs     defaults                     0      0

On peut aussi spécifier des options avec la taille maximale etc.
Par exemple :

nodev,nosuid,noexec,nodiratime,size=1024M

Monter un partage NFS

mote.server:/dir /media/nfs  nfs      defaults    0       0
10.1.1.100:/media/share /share-nfs nfs rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard 0 0

Monter un partage CIFS (Samba)

Voici un exemple de montage CIFS :

//SRV/Partage /media/srvshare/Interne cifs _netdev,users,noauto,users,credentials=/home/malekalmorte/.smbcred 0 0