Fstab

De Wiki doc

Révision datée du 28 décembre 2020 à 12:31 par Ycharbi (discussion | contributions) (Ajout de l'option "nofail" + corrections de mise en forme + correction de fautes de syntaxe + ajout de sources + actualisation des accents dans "fstab".)


Le fstab sous UNIX/Linux est un fichier contenant la table des systèmes de fichiers à monter au démarrage. Il est lu par le système de gestion de services au démarrage de la machine (sur la plupart des Linux, c'est Systemd qui ce charge de cette tâche).

ASTUCE

Afin de tester le fonctionnement d'un montage automatique sans redémarrer (ce qui, en cas de non fonctionnement, causerai un temps d'attente de malade - merci Systemd... - et obligerai le système à passer en mode "maintenance" - voir l'option nofail pour corriger ça), il est possible d'utiliser la commande mount <le premier champ de la ligne fstab à monter> pour un montage ciblé ou mount -a pour monter l'ensemble des lignes spécifiés dans le fstab.

Structure

Ce fichier se compose de six champs séparés par des espaces/tabulations :

# <partition> <point de montage> <type> <options> <déversement> <poids fsck>

Explications :

  • <partition> : chemin du périphérique de type bloc (peut être indiqué via son chemin ou son UUID)
  • <point de montage> : lieu de montage de la partition
  • <type> : nom du système de fichiers de la partition
  • <options> : options de montage
  • <déversement> : Aucune idée de l'utilité (laisser à zéro)
  • <poids fsck> : défini l'ordre du test fsck de la partition (plus c'est faible et plus c'est prioritaire)

Chaque ligne du fichier représente un point de montage différents.

Options de montages

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
nofail Si le système de fichiers n'est pas disponible, aucune erreur n'est renvoyée, ce qui ne bloque pas le démarrage (utile avec les périphériques amovibles)
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)

Sources :

Exemples de montage

Systèmes de fichiers locaux

# Montage avec le chemin de la partition
/dev/mapper/vHD-vPart1 /               btrfs   defaults        0       0

# Montage avec l'UUID de la partition
UUID=b856b332-77cf-4103-ae4b-7672d3393844 /boot           ext2    defaults

Samba

Un montage Samba se monte de la sorte via le fstab :

//192.168.170.178/partage/ /media/partage cifs rw,user,iocharset=utf8,username=toto,password=SonMotDePasse,uid=1000,gid=1000,file_mode=0755,dir_mode=0755

NFS

Pour un partage NFS, on utilisera cette syntaxe :

192.168.1.10:/home/toto /media/toto nfs rw 0 0

On peut y adjoindre les options suivantes :

  • Hard/soft :
    • Lorsque l'option hard est utilisée et que le serveur NFS crash ou devient injoignable, les requêtes NFS seront retentées indéfiniment. Vous pouvez la coupler à l'option intr (décrite plus bas) pour permettre la gestion des coupures. Quand le serveur redevient en ligne, le processus peut reprendre depuis l'endroit où il s'est arrêté.
    • Si c'est l'option soft qui est utilisée, le processus reportera une erreur lorsque le serveur NFS est injoignable après une période d'attente (définie par l'option timeo). Dans certains cas, elle peut causer des corruptions et des pertes de données. Donc il est plutôt recommandé d'utiliser le premier couple décrit plus haut.
  • timeo=n : Cette option définie le temps en secondes où le client NFS va attendre une réponse avant de ré-envoyer une requête au serveur.
  • intr : Autorise les requêtes NFS à être interrompus si le serveur tombe ou devient injoignable. Il est mieux d'utiliser cette option couplée à hard plutôt que d'utiliser soft afin d'éviter les corruptions.
  • rsize=num et wsize=num : Ces paramètres définissent le nombre maximum d'octets à chaque requête de lecture/écriture que le client NFS peut émettre et recevoir lorsque il communique avec le serveur. les valeurs rsize/wsize doivent obligatoirement êtres des entiers positifs multiples de 1024. Une valeur rsize plus petite que 1024 est remplacée par 4096 tandis qu'une valeur wsize plus large que 1048576 est remplacée par cette dernière. Si une valeur comprise entre 4096 et 1048576 mais non multiple de 1024 est définie, elle sera arrondie à la valeur correcte la plus proche.
  • retrans=n : Nombre de fois où un client NFS réessaie avant d'aller plus loin dans les actions de restauration (aucune idée de ce que ça veut dire). Si retrans n'est pas spécifié, le client essayera tout les 3 temps (l'unité de mesure n'est pas précisée...). Le client NFS générera un message "le serveur ne répond pas" avant de réessayer (je ne vais pas aller plus loin dans la traduction. C'est du charabia cette option...)
  • tcp : Montage via le protocole tcp
  • udp : Montage via le protocole udp

Source de la section

Accents dans le fstab

INFORMATION

D'après des tests effectués récemment sur une Debian Sid (26/12/2020), les accents sont gérés nativement. Il n'y a plus besoin de sauter dans des cerceaux en feux !

Pour des partage avec accent, il faut les noter sous forme octale. Une valeur octale doit toujours être égale à 3 caractères, si il y a un 0 à 040 (pour l'espace) c'est par ce que le code 40 (qui correspond à l'espace) ne respecte pas cette règle (on ajoute donc un 0).

Dans le cas où l'on veux mettre un caractère accentué é (qui a comme code octal 0303 0251) il faut respecter la règle des 3 caractères en supprimant le 0 devant chaque octet et en les collant avec un échappement sur chacun d'eux comme ceci:

/home/toto/Film/ /home/titi/Vid\303\251os/ none bind 0 0

Ces éléments sont décrits dans ce post et provenant de cette source, le script perl unum.pl (disponible dans nos fichiers) permet de trouver le code octal d'un caractère donné.

Sources