Linux sans magie #37 — Disque, partition, filesystem, point de montage : remettre les bons mots au bon endroit

Comprendre la chaîne disque, partition, filesystem et point de montage sous Linux, puis l’observer sans rien modifier avec lsblk et findmnt.

Quand Linux affiche /dev/sda, /dev/sda1, ext4 et / dans la même discussion, il est facile de mélanger plusieurs niveaux différents.

Un disque n’est pas une partition. Une partition n’est pas un filesystem. Un filesystem n’est pas son point de montage.

Ces éléments peuvent être liés, mais ils ne désignent pas la même chose.

L’objectif de cet article est de construire un modèle mental simple du stockage Linux, puis de l’observer avec lsblk et findmnt sans créer, formater, monter ou modifier quoi que ce soit.

Contexte et problème

Dans l’article précédent, nous avons utilisé df et du pour comprendre l’occupation d’un filesystem.

Mais une question reste ouverte : où se trouve réellement ce filesystem ?

Sur une machine Linux classique, vous pouvez rencontrer des noms comme :

  • /dev/sda ;
  • /dev/sda1 ;
  • /dev/nvme0n1 ;
  • /dev/nvme0n1p2 ;
  • ext4 ou xfs ;
  • /, /home ou /var.

Les quatre premiers ressemblent à des objets de stockage. Les suivants désignent un type de filesystem ou un emplacement dans l’arborescence.

Sans distinguer ces couches, on finit facilement par dire « le disque /home » ou « la partition ext4 », alors que ces formulations mélangent plusieurs concepts.

Pour administrer proprement un système, il faut pouvoir répondre à quatre questions différentes :

  1. quel block device Linux voit-il ?
  2. ce périphérique contient-il une ou plusieurs partitions ?
  3. où se trouve le filesystem qui nous intéresse ?
  4. à quel endroit de l’arborescence ce filesystem est-il monté ?

Concept ou architecture

1. Le disque ou block device

Linux représente les périphériques de stockage sous forme de block devices.

Un disque SATA peut par exemple apparaître sous :

/dev/sda

Un périphérique NVMe peut apparaître sous :

/dev/nvme0n1

Ces noms représentent des périphériques bloc vus par le noyau. Ils ne signifient pas à eux seuls qu’un filesystem est directement utilisable à cet endroit.

Le mot « disque » est pratique pour débuter, mais lsblk voit plus largement des block devices : disques physiques ou virtuels, partitions et autres couches de stockage peuvent apparaître dans son arbre.

2. La partition

Une partition découpe logiquement un périphérique de stockage.

Par exemple :

/dev/sda
└─/dev/sda1

ou, avec un nom NVMe :

/dev/nvme0n1
└─/dev/nvme0n1p1

La partition est donc un block device dérivé d’un autre block device.

Il faut cependant éviter une simplification excessive : tout stockage Linux n’est pas obligatoirement organisé selon le modèle “un disque → plusieurs partitions → un filesystem par partition”.

Un filesystem peut par exemple être placé directement sur un block device non partitionné. D’autres technologies ajoutent aussi des couches entre le stockage brut et le filesystem.

Nous garderons LVM, RAID, device mapper et autres architectures pour plus tard.

3. Le filesystem

Le filesystem organise les fichiers, répertoires, métadonnées et allocations de stockage.

Parmi les types courants sous Linux, on rencontre notamment :

  • ext4 ;
  • xfs ;
  • btrfs.

Le filesystem n’est donc ni le nom du disque, ni celui de la partition, ni le répertoire dans lequel vous travaillez.

Dans un cas simple, on peut avoir :

/dev/sda
└─/dev/sda1
   └─ filesystem ext4

Mais cette représentation reste conceptuelle. Selon l’architecture, la relation entre block devices et filesystems peut être plus complexe qu’un simple rapport un-pour-un.

4. Le point de montage

Linux présente les fichiers dans une arborescence unique enracinée en /.

Pour rendre le contenu d’un filesystem accessible dans cette arborescence, Linux l’attache à une cible appelée mount point, ou point de montage.

Un exemple conceptuel :

/dev/sda1
  └─ filesystem ext4
       └─ monté sur /

Autre cas :

/dev/sdb1
  └─ filesystem xfs
       └─ monté sur /data

Le point important est le suivant :

/data est un emplacement dans l’arborescence ; ce n’est pas le disque lui-même.

La primitive Linux de montage attache un filesystem à une cible dans l’arborescence. Cette cible est souvent un répertoire.

Prérequis

Les exemples supposent un système GNU/Linux disposant de lsblk et findmnt, tous deux fournis par le projet util-linux.

Les commandes présentées sont uniquement destinées à l’observation.

Aucune commande de cet article :

  • ne crée de partition ;
  • ne crée de filesystem ;
  • ne monte ou démonte de filesystem ;
  • ne modifie /etc/fstab.

Sur une installation util-linux standard avec les informations udev disponibles, les commandes d’observation utilisées ici sont généralement accessibles sans privilèges root. La documentation de lsblk précise toutefois qu’en l’absence de base udev — ou si lsblk a été construit sans support udev — l’outil peut devoir lire directement les block devices pour obtenir certaines informations comme le type de filesystem, ce qui nécessite alors les privilèges root.

Mise en pratique

L’objectif du lab est de partir de la vue « matériel/block device » puis de rejoindre la vue « filesystem monté ».

Étape 1 — Observer les block devices avec lsblk

Commencez par demander explicitement les colonnes utiles :

lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS

La documentation de lsblk recommande de choisir explicitement les colonnes dans les scripts ou lorsqu’un format stable est important, car la sortie par défaut peut évoluer.

Les colonnes retenues ici permettent de lire plusieurs niveaux :

  • NAME : nom du block device ;
  • TYPE : type d’objet, par exemple disque ou partition ;
  • SIZE : taille ;
  • FSTYPE : type de filesystem lorsqu’il est identifié ;
  • MOUNTPOINTS : points de montage associés.

Ne cherchez pas encore à retenir tous les types possibles.

Observez surtout la structure en arbre.

Sur un système simple, vous pourrez repérer une relation du type :

disque
└─ partition
   └─ filesystem visible via FSTYPE
      └─ point de montage visible via MOUNTPOINTS

Ce schéma aide à relier les mots, mais la sortie réelle peut comporter davantage de couches.

Étape 2 — Distinguer périphérique et montage

Supposons que lsblk montre qu’un filesystem est monté sur /.

Vous pouvez maintenant changer de point de vue et interroger les montages :

findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS

Cette fois, la lecture part de l’arborescence montée.

Les colonnes donnent notamment :

  • TARGET : point de montage ;
  • SOURCE : source associée au montage ;
  • FSTYPE : type de filesystem ;
  • OPTIONS : options de montage.

lsblk et findmnt répondent donc à des questions complémentaires.

lsblk aide à comprendre :

« quels block devices existent et comment sont-ils liés ? »

findmnt aide à comprendre :

« quels filesystems sont montés, depuis quelle source et vers quelle cible ? »

Étape 3 — Interroger un point de montage précis

Pour éviter une longue liste, ciblez directement la racine :

findmnt /

Puis essayez avec un autre chemin correspondant à un point de montage présent sur votre système, par exemple :

findmnt /boot

ou :

findmnt /home

La seconde commande ne produira un résultat que si ce chemin correspond effectivement à un montage dans l’environnement observé.

Ne déduisez donc pas qu’un répertoire possède son propre filesystem simplement parce qu’il existe.

Étape 4 — Relier les deux vues

Prenez un montage identifié avec findmnt.

Repérez sa SOURCE, puis retrouvez-la dans :

lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS

Vous construisez ainsi le chemin logique :

block device
    ↓
partition éventuelle
    ↓
filesystem
    ↓
point de montage
    ↓
répertoires et fichiers accessibles

Le mot éventuelle est important : la partition n’est pas une obligation universelle entre un block device et un filesystem.

Résultat attendu

À la fin de cette observation, vous devez pouvoir regarder une sortie lsblk et distinguer :

  • le périphérique bloc principal ;
  • les partitions éventuelles ;
  • le type de filesystem lorsqu’il est identifié ;
  • les points de montage associés.

Avec findmnt, vous devez pouvoir partir d’un point de montage et retrouver :

  • sa source ;
  • son type de filesystem ;
  • ses options de montage.

Le résultat attendu est une compréhension des relations, pas la mémorisation des noms de périphériques de votre machine.

Vérification

Exécutez :

lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS

puis :

findmnt -o TARGET,SOURCE,FSTYPE

Choisissez ensuite un montage réel affiché par findmnt.

Vérifiez que vous savez répondre, sans modifier la machine, aux questions suivantes :

  1. quelle est la cible de montage ?
  2. quelle source est associée à ce montage ?
  3. quel est le type de filesystem ?
  4. cette source apparaît-elle dans la vue lsblk ?
  5. si elle apparaît, est-ce un disque, une partition ou un autre type de block device ?

Si vous savez répondre à ces cinq questions, le modèle mental est en place.

Bonnes pratiques

Utilisez des commandes d’observation avant toute commande de modification.

Avant de toucher au stockage, il faut être capable d’identifier précisément l’objet concerné.

Ne confondez jamais un nom comme :

/dev/sda1

avec un chemin comme :

/data

Le premier peut désigner un block device. Le second est un chemin dans l’arborescence.

N’inférez pas non plus qu’un répertoire possède son propre filesystem. /var, /home ou /opt peuvent être de simples répertoires du filesystem racine ou des points de montage séparés.

Pour les usages automatisés, sélectionnez explicitement les colonnes de lsblk et de findmnt plutôt que de dépendre d’une sortie par défaut destinée avant tout à la lecture humaine.

Sécurité

Le lab est volontairement limité à des commandes de lecture.

Cette restriction est importante car les outils qui viennent naturellement après ce chapitre — partitionnement, création de filesystem, montage et modification de la configuration persistante — peuvent rendre des données inaccessibles ou les détruire s’ils sont utilisés sur le mauvais périphérique.

Une règle opérationnelle simple consiste donc à séparer deux phases :

  1. identifier et comprendre avec des outils d’observation ;
  2. modifier seulement après validation explicite du périphérique, de la cible et de l’effet attendu.

Dans le cas standard avec udev disponible, aucune élévation de privilèges n’est nécessaire pour atteindre l’objectif pédagogique de cet article. L’exception documentée par lsblk s’applique lorsqu’il doit lire directement les block devices faute d’informations udev.

Coûts

Les commandes présentées n’utilisent aucun service facturable.

Sur une machine virtuelle ou un serveur cloud, les disques attachés peuvent évidemment avoir un coût, mais cet article ne demande ni création ni modification de ressource.

Limites et points de vigilance

Ce chapitre présente volontairement le modèle de base.

Il ne couvre pas encore :

  • GPT ou MBR ;
  • fdisk ou parted ;
  • mkfs ;
  • le montage manuel avec mount ;
  • /etc/fstab ;
  • LVM ;
  • RAID ;
  • device mapper ;
  • les loop devices ;
  • les particularités des filesystems réseau.

Ces technologies peuvent ajouter des couches et rendre la relation entre source, block device et filesystem plus complexe.

Autre point important : lsblk présente les informations disponibles dans sysfs et, selon sa construction, dans la base udev. La commande peut donc montrer des topologies plus riches que le schéma pédagogique « disque → partition → filesystem ».

Le schéma est un point de départ, pas une règle d’architecture universelle.

Rollback ou nettoyage

Aucun rollback ni nettoyage n’est nécessaire.

Toutes les commandes proposées consultent l’état du système sans modifier la configuration du stockage.

Références officielles

Conclusion

Disque, partition, filesystem et point de montage décrivent quatre niveaux différents.

lsblk permet d’observer les block devices et leurs relations. findmnt montre comment les filesystems sont attachés à l’arborescence Linux.

Avant de modifier le stockage, savoir passer d’une vue à l’autre est la première compétence à maîtriser.