Aller au contenu
Administration Linux medium

Monter un système de fichiers et le rendre persistant

12 min de lecture

Une partition formatée n'est utilisable qu'une fois montée sur un répertoire de l'arborescence ; pour qu'elle revienne après un redémarrage, elle doit figurer dans /etc/fstab. Ce guide montre comment monter avec mount, vérifier avec findmnt, démonter proprement, puis rendre le montage persistant par UUID. Il insiste sur le contrôle avant redémarrage, où mount -a seul ne prouve rien : il faut lui adjoindre findmnt --verify. Pour administrateurs débutants à intermédiaires. Sorties issues d'un test AlmaLinux 10.

  • Monter et démonter un système de fichiers (mount, umount)
  • Vérifier un montage avec findmnt
  • Écrire une entrée /etc/fstab fiable par UUID
  • Contrôler le fichier avant de redémarrer avec mount -a, findmnt --verify et systemctl daemon-reload
  • Éviter un démarrage bloqué grâce à nofail

Le point de montage est un répertoire existant où le système de fichiers devient accessible. Créez-le, puis montez :

Fenêtre de terminal
sudo mkdir -p /mnt/data1
sudo mount /dev/sda1 /mnt/data1

Vérifiez avec findmnt, plus lisible que mount car il ne montre que ce qui vous intéresse :

Fenêtre de terminal
findmnt /mnt/data1
TARGET SOURCE FSTYPE OPTIONS
/mnt/data1 /dev/sda1 ext4 rw,relatime,seclabel

La colonne SOURCE confirme le bon périphérique, FSTYPE le système de fichiers et OPTIONS les options actives. Ce montage est temporaire : il disparaît au prochain redémarrage tant qu'il n'est pas inscrit dans /etc/fstab.

Ne vous inquiétez pas si votre liste d'options est plus longue que celle-ci : elle dépend du système de fichiers et de la distribution. Le seclabel ci-dessus vient de SELinux, actif par défaut sur AlmaLinux et RHEL. Un volume XFS en affiche bien davantage, toutes posées automatiquement par le noyau :

TARGET SOURCE FSTYPE OPTIONS
/mnt/data1 /dev/sda1 xfs rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota

Ces options supplémentaires ne signalent aucune configuration particulière : ce sont les valeurs par défaut de XFS. Inutile de chercher d'où elles sortent.

Avant de débrancher un disque externe, démontez pour garantir que toutes les écritures sont terminées :

Fenêtre de terminal
sudo umount /mnt/data1

Le fichier /etc/fstab (file systems table) liste les systèmes de fichiers montés au démarrage. La règle d'or : référencer par UUID, jamais par /dev/sdX (qui peut changer si l'ordre des disques bouge). Récupérez l'UUID :

Fenêtre de terminal
sudo blkid /dev/sda1
/dev/sda1: UUID="16ef4b6e-8295-414a-8450-1e84ce52ca1d" TYPE="ext4"

Ajoutez une ligne à /etc/fstab. Ses six colonnes : périphérique, point de montage, type, options, dump, passe de vérification.

UUID=16ef4b6e-8295-414a-8450-1e84ce52ca1d /mnt/data1 ext4 defaults 0 2
  • UUID : identifiant stable du système de fichiers.
  • Point de montage : /mnt/data1, qui doit exister.
  • Type : ext4, xfs...
  • Options : defaults, ou une liste (defaults,noatime).
  • Dump : 0 (sauvegarde héritée, désactivée).
  • Passe : ordre de vérification par fsck au démarrage.

La passe mérite un mot, parce qu'on lit partout deux règles qui se contredisent : « 1 pour la racine, 2 pour le reste » d'un côté, « 0 pour XFS » de l'autre. Le critère est simple : la passe vaut 0 dès que le système de fichiers ne se vérifie pas par fsck au démarrage, ce qui est le cas de XFS et de Btrfs, qui ont leurs propres outils. Pour les systèmes qui s'y prêtent, comme ext4, on met 1 sur la racine et 2 ailleurs.

C'est le critère qui décide, pas le point de montage. Le /etc/fstab livré par AlmaLinux 10 l'illustre : la racine y est déclarée en XFS avec une passe à 0, malgré la règle du « 1 pour / ».

UUID=1f5fce98-... / xfs defaults 0 0

C'est l'étape que l'on oublie, et qui coûte cher. Une ligne /etc/fstab erronée (faute de frappe, UUID inexistant) bloque le démarrage : le système tombe en emergency mode et attend un mot de passe root. Le contrôle à chaud tient en deux commandes, et il en faut bien deux.

Fenêtre de terminal
sudo mount -a
sudo findmnt --verify

C'est le point qui surprend, et c'est celui qui fait perdre des machines. mount -a monte ce qui n'est pas encore monté, rien de plus. Il ne relit pas ce qui l'est déjà, et il ne juge pas la cohérence du fichier. Trois /etc/fstab cassés, mesurés sur AlmaLinux 10, le traversent en code de retour 0 :

/etc/fstab casséCe que fait mount -a
Type de système de fichiers erroné sur un point déjà montérc=0, aucun message. La ligne n'est jamais évaluée
Source introuvable avec l'option nofailrc=0, aucun message, rien n'est monté
Ligne incomplète (deux champs au lieu de six)parse error at line 15 -- ignored, et rc=0 quand même

Le premier cas est le plus vicieux : tant que le point de montage reste occupé, tout paraît sain. Démontez, relancez mount -a, et la vérité tombe d'un coup :

mount: /mnt/data1: wrong fs type, bad option, bad superblock on /dev/sda1,
missing codepage or helper program, or other error.

Sauf qu'au redémarrage, tout est démonté. Le moment où l'erreur apparaît est donc précisément celui où vous n'avez plus la main.

findmnt --verify ne monte rien : il relit le fichier et le confronte à l'état réel des périphériques. Les trois cas ci-dessus lui échappent pas.

Fenêtre de terminal
sudo findmnt --verify
0 parse errors, 0 errors, 2 warnings
/mnt/data1
[W] xfs does not match with on-disk ext4
[W] your fstab has been modified, but systemd still uses the old version;
use 'systemctl daemon-reload' to reload

Deux enseignements dans cette sortie. Le premier, xfs does not match with on-disk ext4, c'est exactement l'erreur que mount -a avait laissée passer : le fichier annonce xfs, le disque porte ext4. Le second est un rappel que le fichier seul ne suffit pas, et il amène la troisième commande.

Éditer /etc/fstab ne suffit pas à en informer systemd, qui en fabrique des unités .mount au démarrage et conserve la version précédente jusqu'à ce qu'on la lui fasse relire :

Fenêtre de terminal
sudo systemctl daemon-reload

Ce n'est pas une précaution de notre invention : l'en-tête du /etc/fstab livré par AlmaLinux le réclame noir sur blanc, et findmnt --verify le rappelle de lui-même dans sa sortie.

# After editing this file, run 'systemctl daemon-reload' to update systemd

La séquence complète avant un redémarrage est donc : mount -a, puis findmnt --verify dont on lit la sortie, puis systemctl daemon-reload.

Quelques entrées /etc/fstab selon le besoin :

# Disque de données interne (boot dépend de lui)
UUID=... /data xfs defaults 0 2
# Disque externe USB (ne doit pas bloquer le boot)
UUID=... /mnt/backup ext4 defaults,nofail,x-systemd.device-timeout=5 0 2
# Volume en lecture seule
UUID=... /mnt/archive ext4 ro 0 2

L'option x-systemd.device-timeout=5 limite l'attente à 5 secondes si le périphérique tarde, utile combinée à nofail.

Les pannes de montage se ressemblent toutes vues de loin : « ça ne remonte pas ». Le tableau ci-dessous les sépare par symptôme observable, parce que c'est ce dont vous disposez au moment où le problème tombe. Les deux premières lignes couvrent le cas le plus coûteux, celui où le contrôle a menti avant le redémarrage.

SymptômeCause probableSolution
Boot en emergency mode après modif fstabUUID erroné ou option invalidecorriger la ligne, ou la commenter ; mount -a et findmnt --verify avant tout reboot
mount -a muet, mais le boot casse quand mêmele point était déjà monté, ou la ligne porte nofailfindmnt --verify : il relit le fichier au lieu de se contenter de monter
umount: target is busyprocessus dans le point de montagefuser -vm <pt>, quitter le répertoire
Disque externe bloque le démarragepas de nofailajouter nofail à la ligne
Montage absent après rebootligne oubliée dans /etc/fstabajouter l'entrée, puis mount -a, findmnt --verify et systemctl daemon-reload
Le montage se comporte comme avant l'éditionsystemd utilise encore l'ancienne version du fichiersystemctl daemon-reload

Une entrée /etc/fstab ne se juge qu'après un redémarrage : c'est exactement ce que le lab vérifie. Vous montez un disque supplémentaire sur /srv/data, référencé par UUID plutôt que par nom de périphérique, et vous validez la ligne avec mount -a puis findmnt --verify avant de prouver que le montage persistant survit au reboot.

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • Un système de fichiers n'est utilisable qu'une fois monté ; findmnt vérifie le résultat.
  • Démontez (umount) avant de débrancher ; fuser -vm trouve ce qui bloque.
  • Dans /etc/fstab, référencez par UUID (stable), jamais par /dev/sdX.
  • La passe vaut 0 pour les systèmes qui ne se vérifient pas par fsck (XFS, Btrfs), 1 pour une racine ext4 et 2 ailleurs.
  • Le contrôle avant redémarrage, c'est mount -a et findmnt --verify : mount -a seul sort en 0 sur au moins trois /etc/fstab cassés.
  • findmnt --verify sort en 0 même quand il proteste : lisez sa sortie, ne testez pas $?.
  • Après édition, systemctl daemon-reload : systemd garde sinon l'ancienne version du fichier.
  • nofail sur les disques non essentiels évite un démarrage en emergency mode.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn