OldGentooWiki:Le fichier /etc/fstab
De Gentoo-Quebec.
Introduction
Ce petit wiki a pour but de vous initier au fichier fstab (/etc/fstab). Il vous en donne une brève description et en explique son usage. Le wiki survole les systèmes de fichier reconnus par GNU Linux et il s'attarde tout particulièrement sur les principales options de montage. Des exemples de codification du fichier fstab le complètent.
Qu'est-ce que le fichier fstab
fstab est un fichier de configuration qui contient l'information sur les partitions et les unités de stockage de votre ordinateur. Ce fichier se trouve dans le répertoire /etc/. Le chemin d'accès complet à ce fichier est donc /etc/fstab.
fstab est un simple fichier de type texte. Vous l'éditez avec votre éditeur de texte préféré.
À quoi sert le fichier fstab
L'information contenue dans le fichier fstab instruit le noyau sur les partitions et autres unités de stockage de données et lui indique à quel endroit elles doivent être montées. Ce fichier est en général utilisé pour monter les partitions des disques durs, les unités CD/DVD et de disquettes et les partages réseau tels samba, nfs et sshfs.
Aperçu d'un fichier fstab
Voici un aperçu d'un fichier fstab. Notez que celui se trouvant sur votre machine différera de cet exemple. Tous n'ont pas la même structure de partitions et les composants matériels varient d'un ordinateur à l'autre. Cet aperçu est fourni pour expliquer l'organisation du fichier.
# /etc/fstab: static file system information. # # <fs> <mountpoint> <type> <opts> <dump/pass> /dev/sda1 /boot ext2 noauto,noatime 1 2 /dev/sdb5 / ext3 noatime 0 1 /dev/sda2 none swap sw 0 0 /dev/sdb6 /home ext3 defaults,noatime 0 1 /dev/sda5 /data ext3 defaults,noatime 0 1 #/dev/cdrom/cdrom0 /mnt/cdrom0 auto noauto,user 0 0 #/dev/fd0 /mnt/floppy auto noauto 0 0 none /dev/shm tmpfs nodev,nosuid,noexec 0 0
Le fichier est lu lorsque le système d'exploitation démarre. Une commande mount est exécutée pour chaque fichier de système requis par les opérations. La commande mount utilise les informations se trouvant sur la ligne du fichier de système à monter. Il y a donc une ligne (enregistrement) par fichier de système et toutes les informations nécessaires à mount se retrouvent sur cette même ligne (colonnes).
Toutes les informations concernant un fichier de système à monter doivent être sur une seule et même ligne.
Les colonnes du fichier fstab
Voyons maintenant à quoi sert chaque colonne.
| Colonnes | Usage |
|---|---|
| Colonne 1 <fs> | Cette colonne renseigne mount sur l'unité ou la partition à monter. |
| Colonne 2 <mountpoint> | Cette colonne renseigne mount sur quel point de montage est montée l'unité ou la partition. |
| Colonne 3 <type> | Cette colonne indique le type de système de fichier avec lequel est formaté le média. Une brève présentation des systèmes de fichier est donnée dans la prochaine section. |
| Colonne 4 <opts> | Cette colonne fournit les options de montage. Le contenu de cette colonne porte souvent à confusion et crée bien des maux de tête. Les options sont expliquées un peu plus bas. |
| Colonne 5 <dump> | Cette colonne précise si le système de fichier doit être sauvegardé ou non. La valeur 0 (zéro) annule la sauvegarde. Cette dernière valeur est utilisée dans la majorité des cas. Une valeur autre que zéro indique la fréquence d'exécution de dump en jour. |
| Colonne 6 <pass> | Cette colonne indique l'ordre de vérification . Par exemple, 1 = en premier, 2 = en second. La valeur zéro annule la vérification, ce qui est normal pour CD/DVD, disquette (floppy), le fichier de pagination (swap) et tmpfs. fsck effectue la vérification à tous les 29 ou 30 montages lors du démarrage du système. |
Les systèmes de fichiers
Les systèmes de fichiers déclarés dans fstab ne sont pas que les systèmes de fichiers propres à GNU Linux. Tous les systèmes de fichiers que GNU Linux est en mesure d'exploiter peuvent s'y retrouver.
| Systèmes de fichiers | Description |
|---|---|
| ext2, ext3, ext4 | Les partitions GNU Linux sont la plupart du temps formatées avec ces systèmes de fichiers. ext3 diffère de ext2 par le fait que ce système de fichiers supporte la journalisation. ext4 est le successeur de ext3. |
| reiserfs | Système de fichiers avec journalisation tout comme ext3. Son indexation est optimisée pour un gros volume de petits fichiers. |
| xfs | Système de fichiers journalisé de SGI qui supporte de très gros fichiers. |
| jfs | Système de fichiers journalisé d'IBM qui gère de très gros fichiers. |
| smb, cifs, nfs, sshs | Systèmes de fichiers utilisés par les partitions affectées au partage des données. |
| vfat, ntfs, ntfs-3g | Systèmes de fichiers du monde Microsoft. vfat comprend FAT16 et FAT32. Une clé USB est formatée vfat. |
| udf, iso9660 | Systèmes de fichiers utilisés par les CD/DVD-ROM. |
| swap | Système de fichiers spécial dédié essentiellement à la partition de pagination. |
| tmpfs | Système de fichiers utilisé pour les stockages de données en mémoire. |
| auto | Ce n'est pas un système de fichiers comme tel. Cette valeur est utilisée pour déterminer automatiquement le système de fichiers du média monté. Très pratique pour les disquettes et les CD/DVD-ROM. |
Les options de montage
Les options de montage s'avèrent souvent une source de maux de tête. Voici un tableau expliquant chacune des options. Certaines options sont communes à tous les systèmes de fichiers. D'autres sont spécifiques à certains systèmes de fichiers.
Les options de montage communes
Le tableau présente les options les plus fréquemment utilisées.
| Options de montage | Description |
|---|---|
| auto et noauto | L'option auto permet de monter automatiquement la partition lors du démarrage du système (boot). L'option noauto oblige de monter la partition pour en exploiter son contenu. C'est souvent le cas de la partition /boot qui est montée manuellement lorsque nécessaire. auto est l'option par défaut. Voir defaults. |
| dev et nodev | Interprète ou non les périphériques de types bloc (disque dur) et caractères (terminal). dev est la valeur par défaut. Voir defaults. |
| exec et noexec | Autorise ou interdit l'exécution de fichiers binaires. Le paramètre par défaut est exec. Voir defaults. |
| user, users et nouser | L'option user permet à tout le monde de monter le système de fichiers. Les paramètres noexec, nosuid et nodev sont impliqués à moins qu'ils ne soient invalidés. La différence entre user et users est que users permet le démontage en plus du montage. Le paramètre par défaut nouser n'accorde l'autorisation de montage et démontage qu'au superutilisateur (root). |
| ro | Montage en lecture seule. |
| rw | Montage en lecture et écriture. C'est la valeur par défaut. Voir defaults. |
| suid et nosuid | Autorise ou interdit l'opération de suid et des bits sgid. |
| sync et async | Indique le type de traitement sur les données, synchrone ou asynchrone. Le paramétrage async est le défaut. Voir defaults. Il est cependant sage d'utiliser sync pour les montages des lecteurs de disquettes. Cela permet de retirer la disquette sans démonter le lecteur au préalable. |
| defaults | Le montage s'effectue avec les options par défaut :
|
Les options de montage spécifiques
Le tableau présente les options de montage en indiquant à quel(s) type(s) de systèmes de fichier elles s'appliquent.
| Options de montage | Description |
|---|---|
| _netdev | Ceci prévient le montage prématuré de l'unité réseau. En fait, le montage s'effectuera quand la mise en place du réseau sera complétée. Cette option s'applique au système de fichier nfs. |
| sw | Option uniquement utilisée pour la partition de pagination (swap). |
Édition du fichier fstab
Pour éditer le fichier, il suffit tout simplement de lancer un éditeur de texte. De préférence vous utilisez un éditeur non graphique. Pourquoi un éditeur non graphique ? Parce qu'il arrive qu'un éditeur graphique insère un caractère de contrôle invisible à l'oeil nu mais décelé par le système d'exploitation. Or, ce caractère peut poser problème et rendre le fichier inexploitable.
Lorsque vous éditez le fichier pour la toute première fois à la suite d'une installation du système de base, vous avez alors un fichier exemple que vous modifiez selon vos besoins.
# /etc/fstab: static file system information. # # noatime turns off atimes for increased performance (atimes normally aren't # needed; notail increases performance of ReiserFS (at the expense of storage # efficiency). It's safe to drop the noatime options if you want and to # switch between notail / tail freely. # # The root filesystem should have a pass number of either 0 or 1. # All other filesystems should have a pass number of 0 or greater than 1. # # See the manpage fstab(5) for more information. # # <fs> <mountpoint> <type> <opts> <dump/pass> # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/BOOT /boot ext2 noauto,noatime 1 2 /dev/ROOT / ext3 noatime 0 1 /dev/SWAP none swap sw 0 0 /dev/cdrom /mnt/cdrom auto noauto,ro 0 0 #/dev/fd0 /mnt/floppy auto noauto 0 0 # glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for # POSIX shared memory (shm_open, shm_unlink). # (tmpfs is a dynamically expandable/shrinkable ramdisk, and will # use almost no memory if not populated with files) shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
Vous avez vu dans la section sur la description des colonnes du fichier fstab que la première colonne sert à identifier la partition ou l'unité à monter. On utilise traditionnellement la technique d'identification par le nom de la partition ou de l'unité : /dev/partition-unité.
Il y a d'autres techniques d'identification. Chacune d'elles est expliquée ci-après.
Utilisation du LABEL
Vous pouvez affecter une étiquette (LABEL) à une partition lors de sa création. Vous pouvez également étiqueter une partition après sa création. Vous utilisez alors l'outil pertinent au système de fichier avec lequel la partition a été formatée.
Voir le document sur la Création d'une étiquette pour les unités de stockage pour en savoir plus sur les techniques de création des étiquettes d'identification.
Si vos unités de stockage ont une étiquette, vous en obtenez la liste ainsi :
L'avantage de la technique d'identification par étiquette est que vous n'avez pas à modifier votre fichier fstab lorsque vous changez d'endroit une partition étiquetée en autant qu'elle conserve la même étiquette.
Utilisation du UUID
À l'instar des étiquettes (LABEL), le UUID est une autre façon d'identifier l'unité de stockage à monter. Cet identifiant est unique à chaque partition ou unité de stockage. Vous modifiez votre fichier fstab pour y enlever uniquement l'instruction de montage de la partition que vous avez supprimée. Vous n'avez pas à tenir compte du changement de nom automatique des partitions restantes.
Vous trouvez les UUID à l'aide de cette commande :
Exemples de montage
Voici différents exemples de montage d'une partition ou d'une unité de stockage que vous adaptez à votre structure de partitionnement et à vos besoins.
Traditionnel
Voici la façon traditionnelle de déclarer un fichier du système dans fstab.
/dev/sdb6 /home ext3 defaults,noatime 0 1
Ici la deuxième partition logique (6) du deuxième disque dur (sdb) est montée sur le point de montage /home. Vous aurez deviné qu'il s'agit de la partition /home. Son système de fichier est ext3 et les options de montage par défaut sont utilisées. L'attribut noatime est spécifié pour empêcher l'enregistrement de l'information sur le dernier accès à un fichier. Cela améliore la performance.
Il n'y a pas de sauvegarde, la valeur 0 étant spécifiée dans la colonne 5. Le système de fichier ext3 est un système de fichier avec journalisation. La sauvegarde s'avère inutile. La colonne 6 montre qu'une vérification sera faite au démarrage à tous les 29-30 montages de la partition.
Avec LABEL
Avec UUID
Il est possible de monter un fichier de système en utilisant son UUID. UUID est l'acronyme de Universally Unique IDentifier. L'avantage majeur du UUID est qu'il vous évite de modifier le fichier fstab lorsque vous supprimez une partition.
Supposons que vous avez deux partitions identifiées /dev/sda5 et /dev/sda6. En supprimant /dev/sda5, la partition /dev/sda6 sera automatiquement renommée à /dev/sda5. Vous devrez donc ainsi éditer votre fichier fstab afin de modifier l'instruction de montage de /dev/sda6 en changeant cette valeur pour /dev/sda5.
En effectuant les montages à l'aide du UUID, cette intervention n'est pas nécessaire. Si l'identifiant unique de /dev/sda6 est fbb75c10-3c8e-4885-a4b5-1de933d21022, il demeurera le même malgré le fait que vous supprimiez /dev/sda5.
Vous obtenez la liste des UUID à l'aide de la commande :
En voici un exemple :
total 0 drwxr-xr-x 2 root root 200 oct 14 20:50 . drwxr-xr-x 6 root root 120 oct 14 20:10 .. lrwxrwxrwx 1 root root 10 oct 14 15:11 0f295b57-89f0-4182-8657-c93bfcfcd604 -> ../../sda1 lrwxrwxrwx 1 root root 10 oct 14 15:11 261830d0-e167-4fe5-8a87-640b0ecfbe94 -> ../../sdb5 lrwxrwxrwx 1 root root 10 oct 14 15:11 37644e71-bdfc-4668-bbab-7c64a24b63af -> ../../sdb6 lrwxrwxrwx 1 root root 10 oct 14 15:11 71949990-bc52-485d-a7ed-c6a37f844535 -> ../../sdb8 lrwxrwxrwx 1 root root 10 oct 14 20:50 baa20baa-a026-4a4e-9c40-41457df133c4 -> ../../sdb9 lrwxrwxrwx 1 root root 10 oct 14 15:11 bcafb9ab-dcf3-4766-9e47-86e2d0191262 -> ../../sda5 lrwxrwxrwx 1 root root 10 oct 14 15:11 de6bda91-dfef-4565-abd9-01daee13a43b -> ../../sdb7 lrwxrwxrwx 1 root root 10 oct 14 15:11 fbb75c10-3c8e-4885-a4b5-1de933d21022 -> ../../sda2
Le UUID est la valeur qui précède le ->.
Pour utiliser le UUID dans fstab :
# Partition racine UUID=71949990-bc52-485d-a7ed-c6a37f844535 / ext3 defaults,noatime 0 1
Dans l'exemple, la partition racine est montée avec le UUID de /dev/sdb8 (voir liste précédente) avec les options par défaut. Le système de fichier est ext3 et il n'y a pas de sauvegarde mais une vérification au démarrage sera effectuée à tous les 29 à 30 montages.
Partition de pagination
Voici comment monter la partition de pagination (swap) lors du démarrage du système.
/dev/sda2 none swap sw 0 0
Dans cet exemple de gauche à droite :
- Le nom du fichier est classique (/dev/sda2). Il s'agit de la seconde partition primaire du premier disque dur.
- Le point de montage est none.
- Le système de fichier est swap.
- Les options de montage se résument à sw.
- Aucune sauvegarde et aucune vérification au démarrage.
Système de fichier tmpfs
Ce système de fichier est fort utile pour améliorer les performances. Voire le wiki Utilisation de volumes tmpfs pour plus de détails. Pour les fins de ce wiki sur fstab, voici deux exemples.
Le premier exemple montre comment annuler le montage de volumes en mémoire partagée (shm) pour les opérations shm_open et shm_unlink de POSIX.
none /dev/shm tmpfs nodev,nosuid,noexec 0 0
La clé se trouve dans l'utilisation de none comme fichier du système.
Le second exemple montre comment monter le dossier /tmp en mémoire suivant les instructions données dans le wiki référé plus haut.
tmpfs /tmp tmpfs defaults,-s1g 0 0
- L'option defaults est mise à profit.
- La taille de fichier est de 1 giga octets (-s).
- Pas de sauvegarde ni vérification au démarrage, tout cela étant inutile puisque c'est un fichier temporaire.
Unité de disquette
Lecteur/graveur CD/DVD-ROM
Partition /boot
Voici la technique la plus fréquemment utilisées pour monter la partition /boot au démarrage.
/dev/sda1 /boot ext2 noauto,noatime 1 2
Cet exemple illustre l'utilisation de l'option noauto. Cela signifie que la partition ne sera accessible qu'à la suite de son montage manuel (commande mount) effectué par le super-utilisateur (root).
Partition VFAT
Partition NTFS
Partition SAMBA
Partition NFS
NFS signifie Network File System (Système de fichiers réseau).
Le type NFS sera donc utilisé pour monter un système de fichier qu'un serveur distant va partager. Le serveur est la machine sur lequel les fichiers se trouvent, et qui va partager ces fichiers. Le client est votre machine qui va monter ces fichiers et pouvoir donc y accéder comme des fichiers locaux.
Dans cet exemple, l'adresse ip du serveur est 192.168.1.2. Cette adresse peut être remplacée par le nom du serveur Le répertoire /home/users de ce serveur est partagé. Sur votre machine (machine cliente), vous allez monter ce répertoire dans /mnt/partage
192.168.1.2:/home/users /home/partage nfs noauto,user,users,sync,nolock 0 0
Cet exemple illustre l'utilisation de l'option noauto. Cela signifie que la partition ne sera accessible qu'à la suite de son montage manuel (commande mount). Grâce à l'option user, la commande de montage pourra être lancée par n'importe quel utilisateur, y compris root, et l'option users permettra que tout utilisateur même différent de celui qui a monté la partition puisse la démonter.
Sur le serveur, la définition du partage du répertoire /home/users est définie dans le fichier /etc/exports
/home/users 192.168.1.0/255.255.255.0(rw,sync,subtree_check,no_root_squash)
Sur le serveur, le paquetage net-fs/nfs-utils soit être installé et doit être démarré (/etc/init.d/nfs start)
Vu les possibles instabilités et/ou lenteurs des connections réseau, le système de fichier de type nfs possède beaucoup d'options permettant de pallier à ces inconvénients et de gérer des caches. Vous pouvez consulter la liste et les explications sur la page du manuel nfs (man nfs)

