Cours Linux / Distinguer disque, partition, système de fichiers et montage

Un disque ou un autre périphérique bloc fournit du stockage, une partition en délimite une zone, et un système de fichiers organise les fichiers et répertoires dans cet espace. Le montage rend ce système de fichiers accessible dans l’arborescence Linux. Distinguez ces objets avant d’interpréter leur taille ou d’envisager une modification : une partition absente ou un montage non affiché ne prouve pas qu’un stockage est vide.

Cette leçon vise une machine virtuelle Ubuntu 26.04 LTS ou Rocky Linux 9. Les premières commandes consultent le stockage existant ; l’atelier crée ensuite un nouveau fichier image dans votre répertoire personnel, sans modifier de périphérique /dev/... ni effectuer de montage. Vérifiez la machine et l’accès de récupération avec le cours sur l’environnement de pratique Linux.

Identifier quatre rôles dans le stockage

Couche Ce que l’on observe Outils courants
Périphérique bloc Capacité, type et relations avec d’autres périphériques lsblk
Partition ou volume logique Zone d’un disque ou stockage construit à partir d’autres espaces lsblk et outils de partitionnement ou de volumes
Système de fichiers Format, métadonnées et identifiant du système de fichiers lsblk -f, blkid et outils adaptés au format
Montage Chemin d’accès, source et options dans le système en cours findmnt, df

Le schéma « disque → partition → système de fichiers → point de montage » est courant, mais il n’est pas obligatoire. Un système de fichiers peut être placé directement sur un périphérique sans partition, ou dans un fichier image comme dans l’atelier. LVM, Logical Volume Manager, construit des volumes logiques à partir d’espaces physiques ; le chiffrement et un ensemble RAID, pour Redundant Array of Independent Disks, peuvent ajouter d’autres couches.

Un exemple courant relie disque, partition, système de fichiers et montage ; une deuxième ligne montre le fichier disk.img contenant directement ext4 sans table de partitions et pas encore monté

Le point /data du schéma est un exemple de chemin, pas un répertoire que vous devez créer ici. Un fichier image n’est pas automatiquement un périphérique bloc exposé par le noyau, et le format qu’il contient ne devient pas accessible comme un répertoire par la seule création du fichier.

Relier les périphériques au chemin réellement utilisé

lsblk -o NAME,TYPE,SIZE,FSTYPE,UUID,MOUNTPOINTS
findmnt -T /
df -hT /

Dans lsblk, NAME identifie le nom affiché, TYPE le type de périphérique, SIZE sa capacité, FSTYPE le format détecté, UUID un identifiant associé au système de fichiers et MOUNTPOINTS ses points de montage connus. L’indentation permet de lire les relations. Si une ancienne version ne reconnaît pas MOUNTPOINTS, utilisez MOUNTPOINT en comprenant qu’une seule position peut être affichée.

Un nom tel que sda, vda ou nvme0n1 reflète le type d’exposition du périphérique et son identification par le noyau. Une partition NVMe porte souvent un nom comme nvme0n1p1. Ces exemples ne désignent pas un disque particulier de votre machine : recoupez capacité, type, montages et identifiant du volume dans l’hyperviseur ou l’hébergeur. Le manuel de lsblk explique aussi que périphériques et systèmes de fichiers n’ont pas toujours une relation un à un.

findmnt -T / recherche le montage contenant le chemin racine. Lisez SOURCE, FSTYPE, TARGET et OPTIONS ; la source peut être un volume logique ou un autre mécanisme plutôt qu’une partition simple. Cette consultation dépend du contexte de montage du processus, ce qui compte dans un conteneur. Le manuel de findmnt distingue un chemin contenu dans un montage d’un point de montage exact.

df -hT / présente l’usage du système de fichiers contenant /. -h choisit des unités lisibles et -T affiche le type. Il ne dresse pas l’inventaire de toutes les régions non montées des disques. Le manuel de df précise ce périmètre. Un périphérique absent de df ne peut donc pas être déclaré inutilisé sur cette seule base.

La capacité d’un périphérique, la taille d’une partition et l’espace disponible d’un système de fichiers mesurent des objets différents. Métadonnées, blocs réservés, unités et éventuelles couches supplémentaires expliquent certaines différences. Cherchez la bonne couche avant de supposer une perte de stockage.

Distinguer une table de partitions d’un système de fichiers

GPT, GUID Partition Table, et MBR, Master Boot Record, désignent des organisations de la table de partitions. GUID signifie Globally Unique Identifier. ext4 et XFS désignent des systèmes de fichiers : on peut donc trouver ext4 dans une partition d’un disque utilisant GPT. « GPT ou ext4 ? » mélange deux niveaux.

Une table décrit notamment les régions du disque ; elle ne remplace pas les structures de fichiers dans ces régions. La documentation de fdisk décrit les tables reconnues. La réécrire sur un disque utilisé peut rendre les régions existantes difficiles ou impossibles à retrouver normalement : aucune commande de création de table sur un vrai disque n’est nécessaire dans cet atelier.

UUID signifie Universally Unique Identifier. Un identifiant de système de fichiers et l’identifiant d’une partition, souvent présenté comme PARTUUID, ne désignent pas le même objet. Cloner une image peut aussi dupliquer un identifiant : un UUID affiché ne dispense pas d’identifier le support et le contexte.

ext4 et XFS ont leurs outils de création, de vérification et de gestion. Les informations du noyau sur ext4 et la documentation du noyau sur XFS concernent des formats différents. Une possibilité d’agrandissement ou de réduction doit être vérifiée pour le format, les versions et l’état monté ou non ; ne réutilisez pas un outil simplement parce que son nom ressemble à celui d’un autre.

Préparer un nouveau fichier image de 128 Mio

L’atelier initialise uniquement un nouveau fichier ordinaire dans un répertoire de pratique créé par mktemp. La taille choisie est 128 Mio, soit 128 × 1 048 576 = 134 217 728 octets. Réservez suffisamment d’espace et travaillez avec un compte ordinaire, sans sudo pour les commandes de création du fichier et du système de fichiers.

Vérifiez d’abord la présence de chaque outil nécessaire :

command -v mktemp
command -v truncate
command -v mkfs.ext4
command -v file
command -v dumpe2fs

Chaque nom doit correspondre à un outil disponible. mkfs.ext4 et dumpe2fs sont normalement fournis par e2fsprogs sur Ubuntu et Rocky Linux. Si un programme manque, examinez le paquet correspondant avec le gestionnaire de votre distribution, selon le cours APT et DNF, avant de poursuivre. Une version récente du programme de création peut aussi activer des fonctionnalités à vérifier avant un futur montage sur un noyau plus ancien.

Dans un même terminal, créez le répertoire et le fichier neuf :

lab=$(mktemp -d "$HOME/linux-storage-lab.XXXXXX") &&
image="$lab/disk.img" &&
test ! -e "$image" &&
test ! -L "$image" &&
truncate -s 128M "$image" &&
printf 'Image de pratique : %s\n' "$image"

Ne continuez que si toutes les étapes réussissent et si le chemin affiché correspond au nouveau dossier dans votre répertoire personnel. Si mktemp échoue, && empêche les opérations suivantes. Le contrôle d’absence évite de réinitialiser un fichier déjà présent ; ne le retirez pas pour réutiliser une ancienne image.

truncate fixe la taille apparente et peut créer un fichier creux : les zones non allouées se lisent comme des zéros sans forcément occuper immédiatement autant de stockage physique. Le manuel officiel de truncate définit le suffixe M en puissances de 1024. Réduire avec truncate un fichier contenant déjà des données pourrait les perdre ; la commande est réservée ici au fichier neuf.

Créer ext4 uniquement dans cette nouvelle image

La commande mkfs.ext4 initialise sa cible et peut détruire son contenu précédent. Gardez les variables du même terminal et ne remplacez jamais le chemin de cet exercice par un périphérique /dev/... . Vérifiez le chemin attendu et sa nature avant la création :

test -n "$lab" &&
test "$image" = "$lab/disk.img" &&
test -f "$image" &&
test ! -L "$image" &&
test ! -b "$image" &&
mkfs.ext4 -F "$image"

Le garde impose ici un fichier ordinaire et refuse un lien symbolique ou un périphérique bloc. Il complète le nouveau répertoire préparé, sans transformer n’importe quel chemin saisi en cible sûre. Si un contrôle ou la création échoue, arrêtez-vous et lisez le diagnostic. Ne relancez pas au hasard la commande sur un autre nom.

mkfs.ext4 correspond à la création du format ext4 par mke2fs. L’option -F autorise notamment une cible qui n’est pas une partition de périphérique bloc ; elle ne choisit pas la bonne cible à votre place. Le manuel de mke2fs décrit ce comportement et les paramètres dépendant de la configuration locale. Un seul -F est utilisé ici pour cette image neuve.

Après succès, le fichier contient les structures ext4, dont des métadonnées, et non une table GPT ou MBR créée par cet atelier. Aucun montage n’a été demandé. Gardez la sortie et le chemin pour les consultations suivantes.

Vérifier le format et comprendre ce qui reste non monté

file "$image"
dumpe2fs -h "$image"
printf 'Repertoire : %s\nImage : %s\n' "$lab" "$image"

file doit reconnaître une signature de système de fichiers cohérente avec ext4 après une création réussie. Sa formulation varie avec la version et les fonctionnalités du format. dumpe2fs -h affiche les informations du superbloc, une structure de métadonnées du système de fichiers ; cherchez notamment l’UUID, le nombre de blocs et leur taille. Le manuel de dumpe2fs précise l’effet de -h.

Nous conservons les messages d’erreur au lieu de les masquer et de tronquer systématiquement la sortie. Un échec de lecture du superbloc n’est pas une preuve que le disque de la machine est vide ; vérifiez d’abord le fichier ciblé et le résultat de la création. N’inventez pas un UUID ou un nombre de blocs à partir de la taille apparente.

Le fichier disk.img reste un fichier du système de fichiers qui héberge votre répertoire personnel. Consulter df sur ce chemin ne mesure pas automatiquement l’espace libre de l’ext4 contenu dans l’image. De même, une image non associée à un périphérique bloc ne devient pas une nouvelle ligne de disque dans lsblk par sa seule création.

Un montage correctement préparé rendrait le système de fichiers interne accessible à un point de l’arborescence, éventuellement via un périphérique de boucle. Cette leçon s’arrête avant cette opération : créer le format, lui associer un périphérique et le monter sont des actions différentes. La capacité interne utilisable est inférieure à une simple égalité avec tous les octets du fichier, en raison notamment des métadonnées et réserves.

Conserver l’image ou retirer seulement le fichier de pratique

Si vous comptez poursuivre une pratique de montage, conservez le chemin exact et ne recréez pas le système de fichiers dessus. S’il n’est plus utile et que vous n’avez pas monté ou associé cette image ailleurs, relisez son chemin puis retirez uniquement ce fichier et le répertoire devenu vide :

test -n "$lab" &&
test "$image" = "$lab/disk.img" &&
test -f "$image" &&
test ! -L "$image" &&
rm -- "$image" &&
rmdir -- "$lab"

Si le dossier contient d’autres fichiers, rmdir refuse de le retirer ; examinez-les plutôt que de remplacer cette commande par une suppression récursive. Si vous avez utilisé l’image dans une autre leçon, terminez d’abord les usages et le démontage prévus avant sa suppression.

Pour un véritable changement de stockage, l’identification doit aussi couvrir montages, échange mémoire, volumes logiques, ensembles RAID et applications utilisant le support. Préparez une sauvegarde restaurable et le plan de retour avant tout formatage ou repartitionnement. Une taille plausible ou un nom de périphérique familier ne suffit pas à autoriser l’effacement d’un stockage.