/etc/fstab

Le fichier /etc/fstab est le fichier de configuration spécifiant les points de montage et les options des systèmes de fichier montés.

Pour l'administrateur, ce fichier est essentiellement exploité par la commande mount pour le montage de systèmes de fichier. Il sert aussi à configurer le système de fichier au démarrage en fournissant les points de montage par défaut.

Format du fichier

Chaque ligne du fichier fstab décrit un périphérique configuré. Les lignes commençant par le caractère dièse (#) sont des commentaires et sont ignorées.

Une ligne de configuration est constitué de 6 champs séparés par des espaces ou des tabulations. Les 4 premiers champs sont les plus important pour configurer un périphériques. Les deux derniers champs sont en revanche généralement mal compris et méritent d'être revus.

Voici un exemple de fichier fstab:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda5
UUID=fb1aae00-78fd-4ffe-91c7-42cb587be8bf / jfs defaults,errors=remount-ro 0 1
# /dev/sda7
UUID=8a209e26-953d-11da-9432-0f1297d194f4 /home jfs defaults 0 2
# /dev/sda6
UUID=78ba498c-fc79-4944-b6c7-c3fe950c855c none swap sw 0 0
/dev/cdrom        /media/cdrom0   udf,iso9660 user,noauto     0       0

On peut voir que le fichier est assez difficile à lire car chacun des champs a une taille très variable. Les lignes sont néanmoins systématiquement composées des 6 colonnes suivantes:

  1. système de fichier
  2. point de montage
  3. type du système de fichier
  4. options de montage
  5. drapeau de sauvegarde
  6. drapeau de vérification

La signification de ces colonnes est données ci-dessous.

Système de fichier

La première colonne permet de donner l'emplacement du système de fichier à monter.

Dans le cas d'un disque local, le chemin vers le descripteur de périphérique, son label ou son UUID est utilisé. L'utilisation de l'UUID est expliqué ci-après.

Pour un système de fichier distant, tel que les disque NFS ou Samba, c'est l'adresse de l'ordinateur qui héberge le système de fichier qui est utilisé. Par exemple pour un montage NFS, le descripteur utilisé est de la forme "hôte:répertoire", par exemple

www.linuxcertif.com:/usr/share/ /usr/share nfs auto,ro 0 0

Pour Samba, le point de montage est du type "//hôte/partage_samba", par exemple:

//smbcertif/config /usr/share/config smbfs userid=ikipou,passwd=foobar,rw 0 0

Point de montage

La seconde colonne donne le chemin où le système de fichier sera monté. Le dossier donné dans ce chemin doit exister.

Si un point de montage contient déjà des fichiers, ceux-ci seront inaccessibles une fois le système de fichier monté. Les fichiers ne sont pas supprimé, mais il leur chemin d'accès est rendu indisponible par le montage.

Voici un exemple de montage d'une partition dans le dossier /home

# /dev/sda7
UUID=8a209e26-953d-11da-9432-0f1297d194f4 /home jfs defaults 0 2

Type du système de fichier

La troisième colonne permet de spécifier le type du système de fichier. Dans le cas où le type serait inconnu au moment de l'écriture (pour des disques USB par exemple), il préciser le type auto pour demander que le type soit déterminé automatiquement.

Les types supportés dépendent de la configuration du noyau. Le fichier /proc/filesystems liste quel sont les types de fichiers sont disponibles dans votre noyau :

$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
...
nodev   usbfs
        jfs

Options de montage

La quatrième colonne permet de spécifier les options de montage des systèmes de fichier.

Les options sont nombreuses et elle ne sont pas disponible dans la page de manuel de fstab. Pour obtenir la listes des options et leur description, il faut regarder la page de manuel de mount.

Les options importantes sont détaillées ci-après.

Drapeau de sauvegarde

Les deux derniers champs sont des drapeaux. Leur seul valeur est numérique et précise un type de traitement à affecter au système de fichier.

L'avant dernier champ est le drapeau de sauvegarde, que peut valoir 1 ou 0. Ce champs est utilisé par la commande dump pour savoir quel sont les systèmes de fichiers a sauvegarder.

Ce champ a généralement la valeur 0 car dump n'est plus guère utilisé pour les backup.

Drapeau de vérification

Le dernier champ permet de spécifier l'ordre de vérifications des systèmes de fichiers. Ce champ est utilisé par la commande fsck pour vérifier l'intégrité des systèmes de fichiers.

Le système de fichier racine doit être vérifié en premier, sont drapeau de vérification doit avoir la valeur 1.

Les autres systèmes de fichiers montés sur le système racine sont montés ensuite, leur drapeau doit avoir la valeur 2.

Si un système de fichier ne doit pas être vérifié au démarrage, son drapeau doit avoir la valeur 0. Cela est utile pour les pseudo système de fichier et les systèmes amovible, tel que les disques USB, etc.

Désigner un système de fichier

La première colonne de fstab permet de spécifier le chemin d'accès à la partition à monter. Pour un disque installé sur l'ordinateur, il y a deux façon de spécifier l'accès.

La méthode la plus répandue est de donner le chemin vers la partition dans le pseudo système de fichier /dev. Par exemple la partition 7 du second disque IDE serait désignée par /dev/hdb7. Cette façon de désigner un disque pose un problème majeur: cela force l'emplacement du disque sur un endroit particulier du bus.

Pour éviter ce problème, il faut pouvoir désigner le disque par un autre moyen, indépendant de sa position sur le bus. Une solution est de spécifier le disque par sont identifiant unique, l'UUID (Universal Unique IDentifier).

UUID

L'UUID est un identifiant unique pour chaque partition. Grâce a cette identifiant, mount peut retrouver un disque si sa position a changé.

Pour trouver l'identifiant d'un système de fichier, il faut utiliser la commande vol_id, en spécifiant un descripteur de périphérique d'un disque.

Par exemple, mon système de fichier se trouve sur la cinquième partition du premier disque SCSI (/dev/sda5). Voici comment retrouver son UUID:

# vol_id -u /dev/sda5
d54b1ac9-3714-4b69-840b-0317d8ae2216

Il suffit alors d'utiliser cet identifiant dans fstab. Notez qu'il doit être précédé de UUID=. Voici la ligne correspondante dans fstab:

# /dev/sda5
UUID=d54b1ac9-3714-4b69-840b-0317d8ae2216 /               jfs     defaults,errors=remount-ro 0       1

Utilisation

Pour tout les systèmes de fichiers normaux, il est préférable d'utiliser un identifiant unique tel que l'UUID. Néanmoins, cela n'aurait aucun sens pour les disque amovible car l'identifiant change avec le disque. Dans ce cas, il faut spécifier le chemin vers le lecteur du disque. Par exemple, voici la ligne concernant le lecteur de disque optique:

/dev/hda        /media/cdrom0   udf,iso9660 user,noauto,exec 0       0

Options de montage

Le quatrième champ du fichier fstab précise les options. Ces options sont fournies à mount pour spécifier le type de montage. Les options de la liste sont séparés par des virgules. Il ne faut pas d'espace entre les virgules et les options.

Les options de montage sont nombreuses mais seul un petit nombre d'entre elle sont utilisés. L'option la plus courante est "default", elle cumule l'ensemble des options suivante: rw,suid,dev,exec,auto,nouser et async. Voici le détail de ces options ainsi que des options importantes apparentés:

L'option "user" est généralement spécifiée pour les périphériques amovible accessible aux utilisateurs (disque optiques, etc).

Les options "noexec" et "nosuid" sont essentielles pour la sécurité des disques montés depuis un réseau. Par exemple pour un montage par NFS du système de fichier /usr/share, on précise ces options ainsi que "ro".

Page de manuel

La page de manuel de fstab décrit le format du fichier, et donne des explications sur les identifiants de périphériques.

Néanmoins, il est aussi intéressant de se référer à la page de manuel de mount. En effet, celle-ci reprend l'ensemble des options de montage et fournit des explications sur chacune.