Introduction
Le stockage sous Linux comporte plusieurs couches liées entre elles. Un périphérique peut contenir des partitions, une partition ou une image peut contenir un système de fichiers, et un système de fichiers devient accessible lorsqu’il est attaché à l’arborescence des répertoires via un point de montage. En distinguant clairement ces notions, vous comprendrez beaucoup plus facilement les commandes de gestion des disques.
Dans ce laboratoire, vous allez inspecter le stockage en toute sécurité, analyser l’utilisation de l’espace, créer un système de fichiers ext4 dans un fichier ordinaire, le monter puis le démonter, consulter les informations de partition et créer un fichier fstab d’entraînement. Toutes les opérations d’écriture ciblent des fichiers temporaires créés pour le laboratoire ; vous ne partitionnerez pas un disque réel et vous ne modifierez pas le fichier /etc/fstab du système.
Comprendre les couches de stockage Linux
Dans cette étape, vous allez examiner les relations entre les périphériques bloc, les systèmes de fichiers et les points de montage, puis préparer un espace de travail sûr.
La commande lsblk signifie « list block devices », c’est-à-dire « lister les périphériques bloc ». Son option -o sélectionne les colonnes à afficher :
lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS
Lisez la sortie de gauche à droite :
NAMEidentifie le périphérique ou la partition.TYPEdistingue les disques, les partitions et les périphériques loop.SIZEindique la capacité.FSTYPEindique le type de système de fichiers détecté, lorsqu’il y en a un.MOUNTPOINTSindique l’emplacement où le système de fichiers est attaché à l’arborescence des répertoires.
Un disque peut contenir une ou plusieurs partitions. Un système de fichiers tel qu’ext4 organise les fichiers à l’intérieur d’une partition ou d’un autre objet de stockage. Un point de montage est un répertoire ordinaire par lequel Linux expose ce système de fichiers.
Utilisez findmnt pour identifier le système de fichiers qui contient actuellement le répertoire du projet. L’option -T accepte n’importe quel chemin et recherche le système de fichiers monté correspondant :
findmnt -T /home/labex/project
Le périphérique source exact peut varier, mais la sortie indique la source, la cible, le type de système de fichiers et les options de montage.
La commande blkid lit les signatures des systèmes de fichiers, leurs labels et leurs UUID. Un accès administratif est nécessaire pour inspecter tous les périphériques bloc disponibles :
sudo blkid
Un UUID est un identifiant de système de fichiers conçu pour rester stable même lorsque le nom d’un périphérique change. Vous utiliserez cette notion plus loin pour étudier les montages persistants.
Créez un espace de travail dédié et placez-vous dans ce répertoire :
mkdir -p /home/labex/project/storage-lab
cd /home/labex/project/storage-lab
pwd
La dernière sortie doit être /home/labex/project/storage-lab.
Analyser l’utilisation des systèmes de fichiers et des répertoires
Dans cette étape, vous allez comparer df, qui indique l’espace disponible sur des systèmes de fichiers complets, et du, qui mesure l’espace utilisé par des fichiers et des arborescences de répertoires.
Créez deux fichiers d’exemple dont la taille apparente est connue. L’option truncate -s définit efficacement la taille d’un fichier sans le remplir de données utiles :
cd /home/labex/project/storage-lab
mkdir -p usage/reports usage/archive
truncate -s 2M usage/reports/weekly.log
truncate -s 5M usage/archive/records.bin
Utilisez df -h sur l’espace de travail. L’option -h affiche les tailles dans des unités lisibles telles que MiB et GiB :
df -h /home/labex/project/storage-lab
df répond à la question : « Quelle quantité d’espace est utilisée et disponible sur le système de fichiers qui contient ce chemin ? » Ses colonnes principales sont Size, Used, Avail, Use% et Mounted on.
Utilisez du -sh pour obtenir un résumé du répertoire d’exemple. Ici, -s signifie résumé et -h sélectionne des unités lisibles :
du -sh usage
Contrairement à df, du répond à la question : « Quelle quantité d’espace appartient à ce fichier ou à cette arborescence de répertoires ? » Les fichiers creux créés avec truncate peuvent avoir une taille apparente importante tout en consommant peu d’espace disque alloué. L’option --apparent-size mesure leur taille logique :
du -h --apparent-size --max-depth=1 usage
Vous devriez constater que usage/archive est plus grand que usage/reports. Combinez du avec un tri pour afficher d’abord les éléments dont la taille apparente est la plus importante :
du -ah --apparent-size usage | sort -rh | head -n 5
Le tube transmet la sortie de du à sort ; -r inverse l’ordre et -h comprend les suffixes de tailles lisibles. head -n 5 conserve les cinq premiers résultats.
Créer et inspecter un système de fichiers ext4
Dans cette étape, vous allez créer une image de disque virtuelle, la formater en ext4 et inspecter les métadonnées de son système de fichiers sans toucher à un disque réel.
Créez un fichier image de 128 MiB. Ce fichier servira de stockage temporaire pour la suite du laboratoire :
cd /home/labex/project/storage-lab
truncate -s 128M virtual.img
Vérifiez sa taille apparente :
ls -lh virtual.img
Avant le formatage, file ne voit qu’une donnée générique ou un fichier vide :
file virtual.img
La commande mkfs.ext4 crée un système de fichiers ext4. L’option -F confirme qu’un fichier ordinaire est volontairement utilisé comme cible, et -L attribue le label LABEXDATA :
sudo mkfs.ext4 -F -L LABEXDATA virtual.img
Le formatage crée les structures du système de fichiers à l’intérieur de l’image. Inspectez le résultat avec deux outils :
file virtual.img
sudo blkid -p virtual.img
La sortie doit identifier ext4, afficher le label LABEXDATA et contenir un UUID généré. Affichez uniquement cet UUID :
sudo blkid -s UUID -o value virtual.img
La valeur de l’UUID est générée lors du formatage et sera différente pour chaque personne.
Monter, utiliser et démonter le système de fichiers
Dans cette étape, vous allez attacher le système de fichiers virtuel à l’arborescence des répertoires Linux, écrire un fichier, puis le détacher correctement.
Un point de montage est le répertoire dans lequel un système de fichiers devient visible. Créez-en un sous /mnt, emplacement standard pour les montages administratifs temporaires :
sudo mkdir -p /mnt/labex-virtual
Montez l’image. L’option -o loop demande à Linux d’associer le fichier ordinaire à un périphérique loop afin de pouvoir le traiter comme un stockage bloc :
cd /home/labex/project/storage-lab
sudo mount -o loop virtual.img /mnt/labex-virtual
Inspectez le montage actif :
findmnt /mnt/labex-virtual
La source apparaît généralement comme un périphérique loop, la cible est /mnt/labex-virtual et le type de système de fichiers est ext4. Vous pouvez également interroger df pour ce système de fichiers précis :
df -h /mnt/labex-virtual
Écrivez un fichier dans le système de fichiers monté. La commande sudo sh -c est utilisée parce que la redirection est effectuée par le shell et que le répertoire racine du système de fichiers monté appartient à root :
sudo sh -c 'echo "stored inside the virtual filesystem" > /mnt/labex-virtual/welcome.txt'
cat /mnt/labex-virtual/welcome.txt
Le démontage écrit les données encore en attente et détache le système de fichiers de son point de montage :
sudo umount /mnt/labex-virtual
Vérifiez qu’il n’est plus monté :
findmnt /mnt/labex-virtual
Aucune sortie n’est attendue et findmnt renvoie un code différent de zéro, car aucun montage actif ne correspond à cette cible. Le répertoire du point de montage existe toujours, mais le contenu de l’image n’est plus accessible par ce chemin tant que l’image n’est pas montée à nouveau.
Inspecter les tables de partitions en toute sécurité
Dans cette étape, vous allez utiliser fdisk en mode d’affichage en lecture seule et distinguer une table de partitions d’une signature de système de fichiers.
Listez les disques et les partitions visibles par le système :
sudo fdisk -l
L’option -l signifie list. Elle indique les tailles des disques, les tailles de secteur, les types de tables de partitions et les partitions, sans les modifier. Ne lancez jamais une session interactive de partitionnement sur un disque de production que vous ne connaissez pas.
Inspectez maintenant l’image virtuelle :
cd /home/labex/project/storage-lab
sudo fdisk -l virtual.img
L’image possède une taille de disque, mais aucune entrée de partition. Dans cet exemple contrôlé, ext4 a été créé directement dans l’ensemble de l’image. Sur un disque physique, une organisation courante est la suivante :
disk device -> partition table -> partition -> filesystem -> mount point
Créez une deuxième image vide pour effectuer une comparaison :
truncate -s 64M partition-demo.img
sudo fdisk -l partition-demo.img
Elle ne possède pas non plus de table de partitions. Comparez les signatures des systèmes de fichiers avec wipefs, dans son mode par défaut en lecture seule :
sudo wipefs virtual.img partition-demo.img
virtual.img doit afficher une signature ext4, tandis que l’image vide de comparaison ne doit afficher aucune signature de système de fichiers. N’utilisez pas l’option destructive wipefs -a dans ce laboratoire.
Créer et valider un fichier fstab d’entraînement
Dans cette étape, vous allez découvrir les six champs d’une entrée fstab et tester en toute sécurité un fichier distinct, sans modifier /etc/fstab.
Le système lit /etc/fstab pour déterminer quels systèmes de fichiers doivent être montés de manière persistante. Affichez ses lignes qui ne sont pas des commentaires, sans modifier le fichier :
grep -Ev '^\s*(#|$)' /etc/fstab
Une entrée fstab comporte six champs séparés par des espaces :
source mount-point filesystem-type options dump fsck-order
Pour les partitions physiques, UUID=<value> est généralement plus sûr qu’un nom tel que /dev/sdb1, car les noms des périphériques peuvent changer lorsque l’ordre de détection du matériel change.
Récupérez l’UUID de votre image et placez un exemple d’UUID commenté dans un fichier d’entraînement :
cd /home/labex/project/storage-lab
uuid=$(sudo blkid -s UUID -o value virtual.img)
printf '## Real block device example: UUID=%s /mnt/data ext4 defaults,nofail 0 2\n' "$uuid" > practice-fstab
Comme ce laboratoire utilise un fichier ordinaire plutôt qu’une partition physique, son entrée active d’entraînement utilise le chemin absolu de l’image et l’option loop :
printf '%s\n' '/home/labex/project/storage-lab/virtual.img /mnt/labex-virtual ext4 loop,nofail 0 2' >> practice-fstab
Affichez et validez le fichier d’entraînement. L’option --tab-file indique à findmnt de ne pas utiliser le véritable fichier /etc/fstab :
cat practice-fstab
findmnt --verify --tab-file practice-fstab
Le résumé final doit indiquer 0 parse errors et 0 errors. Il signale également un avertissement indiquant que la source est un fichier ordinaire. Cet avertissement est attendu ici, car ce laboratoire utilise volontairement un système de fichiers loop basé sur un fichier plutôt qu’un périphérique bloc physique.
Utilisez le fichier d’entraînement pour effectuer un montage contrôlé. L’option -T indique à mount de lire le fichier fstab alternatif spécifié :
sudo mount -T practice-fstab /mnt/labex-virtual
findmnt /mnt/labex-virtual
Le fichier welcome.txt créé précédemment doit toujours exister, ce qui prouve que le montage expose les données stockées dans le système de fichiers :
cat /mnt/labex-virtual/welcome.txt
Démontez-le à nouveau afin de terminer le laboratoire dans un état détaché et sûr :
sudo umount /mnt/labex-virtual
Vous avez validé la syntaxe d’un montage persistant sans modifier la configuration de démarrage du système. Une erreur dans le véritable fichier /etc/fstab peut perturber le démarrage ; les administrateurs valident donc généralement les modifications avant de redémarrer.
Résumé
Vous avez relié les principales couches du stockage Linux : périphériques, partitions, systèmes de fichiers et points de montage. Vous avez utilisé lsblk, blkid et findmnt pour les inspecter, puis comparé l’utilisation globale d’un système de fichiers avec df et l’utilisation des fichiers et des répertoires avec du.
Vous avez créé et étiqueté un système de fichiers ext4 dans une image temporaire, l’avez monté via un périphérique loop, conservé les données après un démontage et inspecté les informations de partition sans modifier de disques réels. Enfin, vous avez appris les six champs de fstab, compris l’importance des UUID stables et validé un fichier fstab d’entraînement distinct avant de l’utiliser.



