# Fstab

Le fichier fstab (file systems table) est la table des différents systèmes de fichiers sur un ordinateur sous Unix/Linux: il contient une liste des disques utilisés au démarrage et des partitions de ces disques. Pour chaque partition, il indique comment elle sera utilisée et intégrée à l’arborescence du système de fichiers global (c'est-à-dire le point de montage). Il se trouve généralement à /etc/fstab.
Dans les versions récentes d’Unix/Linux, des outils d’administration peuvent automatiquement générer un fichier fstab complet lors de l'installation du système d'exploitation ou proposer une interface graphique pour modifier ce fichier.
Ce fichier peut avoir des noms différents selon les versions d’Unix ; par exemple, sur Solaris de Sun, ce fichier s’appelle vfstab.

## Exemple

Ce qui suit est un exemple de fichier fstab pour Red Hat :
* 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 ; exemple spécifique à linux:
** /dev/hda1 pour la première partition d’un disque IDE.
** /dev/cdrom pour un CD-ROM.
** /dev/sda1 pour la première partition d’un disque Serial ATA ou USB ou SCSI (historiquement, les disques SCSI sont les premiers à avoir utilisé ce nom de périphérique).
** /dev/fd0 pour une disquette 3 pouce 1/2.
* La deuxième colonne indique le point de montage dans l’arborescence du système de fichiers global ; exemple :
** /var : Partition contenant les données des applications.
** /log : Partition contenant les journaux historisant les évènements.
** /tmp : Partition contenant les fichiers et répertoires temporaires.
** /mnt/WinVista (ou /media/WinVista) pour un ordinateur en multiboot : la partition NTFS.
* La troisième colonne indique le type de système de fichiers ou l’algorithme utilisé pour l’interpréter.
* La quatrième colonne donne les options, par exemple elle indique si le système de fichiers correspondant doit être monté au boot.
    Le contenu de cette colonne est détaillée dans les sous-chapitres suivants.
* La cinquième colonne permet d'ajuster la programmation d'archivage de la partition (utilisé par dump)
* La sixième colonne est utilisée par l’utilitaire fsck pour déterminer dans quel ordre vérifier les partitions.
L’utilitaire graphique Kfstab pour KDE permet de configurer le fichier fstab de façon ergonomique.

## Colonne 4 : Options communes à tous les types de systèmes de fichiers

Les options indiquées dans le fichier fstab sont les mêmes que celles de la commande mount.
Les options communes à tous les types de systèmes de fichiers sont :
| ro / rw | Montage en lecture seulement/lecture-écriture |
| suid / nosuid | Autorise ou interdit les opérations sur les bits suid et sgid |
| dev / nodev | Interprète/n'interprète pas les périphériques caractères ou les périphériques blocs spéciaux sur le système de fichiers |
| exec / noexec | Autorise ou interdit l’exécution de fichiers binaires sur ce système de fichiers |
| auto / noauto | Le système de fichiers est (c’est l’option par défaut) / n'est pas monté automatiquement |
| user / nouser | Permet à tout utilisateur / seulement à root (C’est le paramétrage par défaut) de monter le système de fichiers correspondant |
| sync / async | Selon cette valeur, toutes les entrées/sorties se feront en mode synchrone ou asynchrone |
| defaults | Utilise le paramétrage par défaut (c’est équivalent à rw, suid, dev, exec, auto, nouser, async) |
Dans l'exemple ci-dessus, kudzu (en) est une option spécifique à Red Hat et Fedora Core.

### Les systèmes de fichiers conformes à POSIX.1

Pour qu'un système de fichiers soit conforme à POSIX.1 (alias IEEE 1003.1), il faut que la date de dernier accès de chaque fichier soit conservée. Cette option peut dégrader les performances. Il est possible de la désactiver, même si le système de fichiers est accédé en écriture. C'est l'option noatime de la commande mount.
Ce paramétrage réduit la traçabilité du système.

### ext2

| check={none, normal, strict} | Positionne le niveau de vérification du fsck |
| debug | Imprime des informations de débogage à chaque nouveau montage |
| sb=n | n est le bloc qui devrait être utilisé comme superbloc pour ce système de fichiers |

### fat

| check={r[elaxed], n[ormal], s[trict]} | Positionne le niveau de vérification du fsck |
| conv={b[inary], t[ext], a[uto]} | Fournit une conversion de fichier texte MS-DOS↔UNIX automatique |
| uid=n, gid=n | Positionne l’uid et le gid (identificateur utilisateur et groupe) pour tous les fichiers (et répertoires) du système de fichiers, voir uid et Group identifier, |

### ISO 9660 (c'est-à-dire CD-ROM)

L'option ro est toujours mise pour ce système de fichiers. Elle signifie read only (lecture seulement), elle indique au système d'exploitation qu'il n'est pas possible d'écrire sur ce système de fichier.
L'option norock désactive les extensions Rock Ridge.

### NFS

Il existe une trentaine de paramètres concernant NFS dans fstab ; par exemple pour indiquer le port ou le type de protocole (UDP par défaut ou TCP)
Le délai de polling (scrutation cyclique) nfs_polling_interval n'est pas paramétré par le fichier fstab, mais par le fichier de configuration de FAM (File Alteration Monitor).

### NTFS

NTFS (New Technology File System) est un système de fichiers propriétaire, conçu pour Windows NT (et ses successeurs chez Microsoft) pour stocker des données sur disque dur. Il s’inspire d’HPFS, le système de fichiers conçu pour OS/2. Le support de l'écriture sur des partitions NTFS sous Linux a été un problème. Désormais le support ntfs existe dans le noyau standard Linux. Voici un exemple pour monter une partition ntfs :

## Particularité de l'Unix d'IBM (AIX) sur la table des partitions

Sur AIX (l'Unix d'IBM), la table des partitions est configurée via un fichier qui a une structure totalement différente (fichier /etc/filesystems). Cette structure n'est pas aussi concise que le fstab (en résumé, ce qui tient en une ligne sur /etc/*fstab est décomposé en plusieurs lignes sur /etc/filesystems).