fstab : Explications sur le fichier et sa structure

Introduction



Le fichier fstab (situé dans /etc/fstab) est le fichier de configuration qui contient les informations statiques sur le montage des systèmes de fichiers que vous utilisez régulièrement.
Il liste, tous les disques et partitions disponibles, et indique comment ils peuvent être initialisés, et intégrés dans le système de fichiers du système global.


A quoi ressemble le fichier



Le fichier fstab ressemble à ceci sur mon serveur :

Code BASH :
# / was on /dev/sda1 during installation
UUID=fd0587f2-d0d0-404c-b4c3-aa358b8dacd6 / ext4 noatime 0 1
# /home was on /dev/sda4 during installation
UUID=377d38df-2140-4440-80fd-904271438ad1 /home ext4 noatime 0 0
# /var was on /dev/sda3 during installation
UUID=46a177d7-9856-4137-95a1-432e61085bde /var ext4 noatime 0 0
# swap was on /dev/sda2 during installation
UUID=1bd06a09-070e-447d-a3bf-553670128bf8 none swap sw 0 0



Explications



Le fichier est composé d'une ligne par système de fichier et de 6 champs, séparés par un espace ou une tabulation :

Code BASH :
<filesystem>   <mnt>   <type>  <options>       <dump>  <pass>


Je vais reprendre la ligne de mon exemple pour décrire à quoi sert chaque option :

Code BASH :
UUID=fd0587f2-d0d0-404c-b4c3-aa358b8dacd6/ext4noatime0 1



Première colonne



La première colonne indique le nom du périphérique ou les autres moyens de localiser la partition ou la source de données.

Ici, elle est repérée grâce à son UUID (chose commune de nos jours)

Pour info : UUID = Universal Unique Identifier. Il est possible d'obtenir ces UUID avec la commande lsblk -f, en root :

Code BASH :
NAME        FSTYPE     LABEL     UUID                                 MOUNTPOINT
sda
|-sda1     ext4       CSS-14.16 fd0587f2-d0d0-404c-b4c3-aa358b8dacd6 /
|-sda2     swap                 1bd06a09-070e-447d-a3bf-553670128bf8 [SWAP]
|-sda3     ext4                 46a177d7-9856-4137-95a1-432e61085bde /var
`-sda4     ext4                 377d38df-2140-4440-80fd-904271438ad1 /home


Mais il est possible de renseigner la partition concernée de plusieurs façons :
  • /dev/sda1(Par le nom du périphérique)
  • UUID=ffffffff-ffff-ffff-ffff-ffffffffffff (Par le UUID)
  • LABEL=root (Par son LABEL)



Deuxième colonne



La deuxième colonne indique le point de montage dans l’arborescence du système de fichiers global.

Dans mon exemple, /.

Les valeurs peuvent prendre n'importe quel dossier le l'arborescence


Troisième colonne



La troisième colonne indique le type de système de fichiers ou l’algorithme utilisé pour l’interpréter.
Dans mon exemple, c'est ext4.

Parmi ces valeurs, on peut rencontrer : ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, btrfs, vfat, ntfs, swap


Quatrième colonne



La quatrième colonne définit des options particulières pour les systèmes de fichier. Certaines options sont pour le système de fichiers lui même. Les options indiquées dans le fichier fstab sont les mêmes que celles de la commande mount. Les options les plus répandues sont :

  • defaults - paramètres de montage par défaut (équivalent à rw,suid,dev,exec,auto,nouser,async).
  • auto - le système de fichiers sera monté automatiquement au démarrage, ou quand la commande 'mount -a' sera joué.
  • noauto - le système de fichiers est monté que quand on lui demande de le faire.
  • discard - Active la fonctionnalité TRIM sur un disque dur SSD
  • nofail - si la partition n'est pas disponible au démarrage, elle n'est pas montée et ne bloque pas le démarrage
  • rw - monte le système de fichiers en lecture et en écriture.
  • ro - monte le système de fichiers en lecture seulement.
  • relatime - mettre à jour la date d'accès sur l'inode par rapport au modification ou au changement de date.
  • noatime - ne pas mettre à jour la date d'accès sur l'inode pour le système de fichier
  • user - permet à n'importe quel utilisateur de monter le système de fichiers (cela implique noexec,nosuid,nodev).
  • nouser - autorise seulement le compte root à monter le fichier système (par défaut).
  • sync - Les entrées/sorties (I/O) devraient être faites de manière synchrone.
  • async - Les entrées/sorties (I/O) devraient être faites de manière asynchrone.
  • suid - autorise les opérations sur les bits suid et sgid. Le plus souvent cela permet d'autoriser un utilisateur sur un ordinateur à exécuter un binaire avec une élévation temporaire des privilèges dans le but d'effectuer une tache spécifique.
  • nosuid - bloque les opérations sur les bits suid et sgid.
  • exec - autorise l'exécution de binaire qui sont sur cette partition (par défaut).
  • noexec - n'autorise pas l'exécution de binaires sur le système de fichier.
  • acl- autorise la gestion des acl sur cette partition.


Il est possible de spécifier plusieurs options et de les séparer par une virgule.

Dans mon exemple, si je veux en plus de noatime spécifier acl :

Code BASH :
UUID=fd0587f2-d0d0-404c-b4c3-aa358b8dacd6/ext4noatime,acl0 1



Cinquième colonne



Cette colonne a toujours été mystérieuse pour moi. D'après quelques documentations sur Internet j'en suis arrivé à l'utilisation suivante :

Cette valeur est utilisée par l'utilitaire dump pour décider quand faire des sauvegardes. Quand il est installé, dump vérifie le chiffre inscrit et décide si le système de fichiers doit être sauvegardé. Les valeurs possibles sont 0 et 1. Si 0, dump va ignorer le système de fichier, si 1, dump fera une sauvegarde. La plupart des utilisateurs n'auront pas dump d'installé, ils pourront donc inscrire 0 dans le champ <dump>.


Sixième colonne



Cette colonne indique la priorité de vérification du système de fichiers par l'utilitaire fsck.

fsck lit le chiffre et détermine dans quel ordre les systèmes de fichiers vont être vérifiés. Le champ peut prendre les valeurs 0,1 et 2. Le système de fichiers root devra avoir la priorité la plus haute : 1, tout les autres systèmes que vous voulez vérifier devront avoir un 2. Les systèmes de fichiers avec un 0 ne seront pas vérifiés par l'utilitaire fsck.
Cette page a été vue 6260 fois