Le partitionnement de disque Linux est une compétence fondamentale pour tout administrateur système ou ingénieur DevOps. Que vous ajoutiez un disque de données à un serveur, configuriez une nouvelle installation ou prépariez du stockage pour une base de données, comprendre comment partitionner des disques avec fdisk et parted — et comment persister les montages dans /etc/fstab à l’aide d’UUID — vous évitera des erreurs coûteuses et des interruptions de service. Ce guide couvre le flux de travail complet, du disque brut au système de fichiers monté et configuré pour le montage automatique.
Prérequis
- Accès root ou sudo sur un système Linux
- Un disque brut ou un disque virtuel attaché à la machine (ex.
/dev/sdb) - Connaissance de base du terminal Linux
- Le paquet
util-linuxinstallé (fournitfdisk,lsblk,blkid— présent par défaut sur la plupart des distributions) partedinstallé :apt install partedoudnf install parted
MBR ou GPT : Choisir la bonne table de partitions
Avant de toucher un disque, vous devez décider quel format de table de partitions utiliser. Les deux standards sont MBR (Master Boot Record) et GPT (GUID Partition Table).
| Fonctionnalité | MBR | GPT |
|---|---|---|
| Taille maximale du disque | 2 To | 9,4 Zo (pratiquement illimité) |
| Partitions primaires max | 4 (ou 3 primaires + étendue) | 128 |
| Firmware de démarrage | BIOS | UEFI (fonctionne aussi avec BIOS via hybride) |
| Redondance | Aucune | En-tête de sauvegarde en fin de disque |
| Support des OS | Tous Linux, Windows XP+ | Linux kernel 2.6.25+, Windows Vista+, macOS |
| Support des outils | fdisk, parted, gdisk | parted, gdisk, fdisk (depuis util-linux 2.23) |
| Récupération | Plus difficile | L’en-tête GPT de sauvegarde permet la récupération |
Règle générale : Utilisez GPT pour tout nouveau disque en 2025. La limite de 128 partitions de GPT, sa résilience grâce à l’en-tête de sauvegarde et l’absence de limite à 2 To en font le choix par défaut. N’utilisez MBR que pour cibler des systèmes très anciens ou du matériel embarqué qui l’exige spécifiquement.
Partitionnement avec fdisk
fdisk est un outil interactif piloté par menus inclus dans util-linux. Les versions modernes (util-linux 2.23+) supportent GPT, ce qui en fait un choix polyvalent pour la plupart des charges de travail.
Inspecter les disques existants
# Lister tous les périphériques bloc avec leur taille et type
lsblk
# Afficher les informations détaillées sur les partitions
fdisk -l
# Afficher un disque spécifique
fdisk -l /dev/sdb
Créer une partition GPT avec fdisk
sudo fdisk /dev/sdb
Dans l’invite interactive :
Command (m for help): g # Créer une nouvelle table de partitions GPT (utilisez 'o' pour MBR)
Created a new GPT disklabel (GUID: ...).
Command (m for help): n # Nouvelle partition
Partition number (1-128, default 1): 1
First sector (2048-..., default 2048): [Entrée]
Last sector, +/-sectors or +/-size{K,M,G,T,P}: +100G # Dimensionner la partition
Command (m for help): t # Changer le type de partition (optionnel)
Selected partition 1
Partition type or alias (type L to list all): 20 # Système de fichiers Linux
Command (m for help): p # Prévisualiser la table de partitions avant l'écriture
Command (m for help): w # Écrire les modifications et quitter
Après l’écriture, le noyau est notifié. Si ce n’est pas le cas, exécutez partprobe /dev/sdb ou udevadm settle pour forcer une relecture.
Commandes clés de fdisk
| Touche | Action |
|---|---|
m | Afficher le menu d’aide |
g | Nouvelle table de partitions GPT |
o | Nouvelle table de partitions MBR |
n | Nouvelle partition |
d | Supprimer une partition |
t | Changer le type de partition |
p | Afficher la table de partitions |
w | Écrire et quitter |
q | Quitter sans enregistrer |
Partitionnement avec parted
parted supporte MBR et GPT et est scriptable — idéal pour les scripts d’automatisation et les outils de provisionnement comme Ansible ou Terraform. Il gère également les disques de plus de 2 To sans problème.
Mode interactif
sudo parted /dev/sdb
(parted) mklabel gpt # Créer une table de partitions GPT
(parted) mkpart primary ext4 0% 100% # Une seule partition couvrant tout le disque
(parted) print # Vérifier
(parted) quit
Mode non interactif (scriptable)
# Créer une table GPT
sudo parted -s /dev/sdb mklabel gpt
# Créer une seule partition utilisant 100% de l'espace disque
sudo parted -s /dev/sdb mkpart primary ext4 0% 100%
# Créer deux partitions : 50 Go de données, le reste pour les journaux
sudo parted -s /dev/sdb mkpart primary ext4 0% 50GB
sudo parted -s /dev/sdb mkpart primary ext4 50GB 100%
L’option -s supprime les invites interactives, rendant parted sûr à utiliser dans l’automatisation.
Alignement avec parted
Utilisez toujours des limites exprimées en pourcentage (0%, 100%, 50%) ou en valeurs MiB/GiB plutôt qu’en numéros de secteurs bruts. Cela garantit un alignement correct des secteurs 4K, ce qui est important pour les performances des SSD et NVMe.
# Vérifier l'alignement après la création des partitions
sudo parted /dev/sdb align-check optimal 1
# Sortie : 1 aligned
Formatage des partitions avec mkfs
Après avoir créé une partition, vous devez y créer un système de fichiers. Le choix du système de fichiers dépend de votre charge de travail.
# ext4 — usage général, le plus compatible
sudo mkfs.ext4 /dev/sdb1
# xfs — haute performance, préféré pour les gros fichiers et bases de données
sudo mkfs.xfs /dev/sdb1
# btrfs — copy-on-write, snapshots, compression
sudo mkfs.btrfs /dev/sdb1
# Ajouter un label (rend les entrées fstab plus lisibles)
sudo mkfs.ext4 -L data /dev/sdb1
| Système de fichiers | Idéal pour | Taille max de fichier | Taille max du volume |
|---|---|---|---|
| ext4 | Usage général, disques VM | 16 To | 1 Eo |
| xfs | Bases de données, gros fichiers | 8 Eo | 8 Eo |
| btrfs | Snapshots, NAS, serveurs domestiques | 16 Eo | 16 Eo |
| vfat/FAT32 | Clés USB, partitions EFI | 4 Go | 2 To |
Montage et montages persistants avec /etc/fstab
Une partition montée manuellement disparaît après le redémarrage. Pour persister le montage, ajoutez-le à /etc/fstab. Utilisez toujours les UUID plutôt que les noms de périphériques comme /dev/sdb1 — les noms de périphériques peuvent changer après un redémarrage ou lorsque des disques sont ajoutés ou retirés.
Obtenir l’UUID
sudo blkid /dev/sdb1
# Sortie : /dev/sdb1: UUID="a1b2c3d4-..." TYPE="ext4" PARTLABEL="primary"
# Alternative : afficher tous les UUID des périphériques bloc
lsblk -o NAME,UUID,FSTYPE,SIZE,MOUNTPOINT
Créer le point de montage et monter immédiatement
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
# Vérifier
df -h /mnt/data
Ajouter à /etc/fstab
Ouvrez /etc/fstab avec votre éditeur :
sudo nano /etc/fstab
Ajoutez une ligne avec ce format :
# <périphérique> <point de montage> <type> <options> <dump> <pass>
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/data ext4 defaults,nofail 0 2
Explication des options critiques :
| Option | Signification |
|---|---|
defaults | rw, suid, dev, exec, auto, nouser, async |
nofail | Le démarrage réussit même si le disque est absent (essentiel pour les disques non-root) |
noatime | Ne pas mettre à jour l’heure d’accès — améliore la durée de vie et les performances des SSD |
0 (dump) | 0 = ne pas sauvegarder ; 1 = inclure dans la sauvegarde dump |
2 (pass) | Ordre fsck : 0 = ignorer, 1 = root uniquement, 2 = vérifier après root |
Vérifier l’entrée fstab sans redémarrer
# Démonter d'abord
sudo umount /mnt/data
# Tester fstab (monte toutes les entrées)
sudo mount -a
# Confirmer
df -h /mnt/data
Si mount -a ne retourne aucune erreur, l’entrée est valide et survivra à un redémarrage.
Scénario Réel : Ajouter un disque de données à un serveur web de production
Vous avez un serveur web de production sous Ubuntu 22.04. Le disque racine est presque plein car /var/www a atteint 180 Go. Vous attachez un nouveau SSD de 500 Go en tant que /dev/sdb et souhaitez y déplacer le contenu web sans interruption de service.
Étape 1 — Identifier et partitionner le nouveau disque :
lsblk
# Confirmer que /dev/sdb est le nouveau disque de 500 Go sans partitions
sudo parted -s /dev/sdb mklabel gpt
sudo parted -s /dev/sdb mkpart primary ext4 0% 100%
sudo partprobe /dev/sdb
Étape 2 — Formater et labelliser :
sudo mkfs.ext4 -L webdata /dev/sdb1
Étape 3 — Copier les données existantes vers le nouveau disque :
sudo mkdir /mnt/newwww
sudo mount /dev/sdb1 /mnt/newwww
sudo rsync -av --progress /var/www/ /mnt/newwww/
Étape 4 — Effectuer la bascule (avec une interruption minimale) :
sudo umount /mnt/newwww
# Obtenir l'UUID
sudo blkid /dev/sdb1
# Modifier /etc/fstab — ajouter le nouveau montage pour /var/www
# UUID=xxxx-xxxx /var/www ext4 defaults,nofail,noatime 0 2
# Déplacer les anciennes données et remonter
sudo mv /var/www /var/www.bak
sudo mkdir /var/www
sudo mount -a
# Vérifier que le serveur web peut lire les fichiers
ls /var/www
Étape 5 — Valider et nettoyer :
df -h /var/www
# /dev/sdb1 500G 180G 320G 36% /var/www
# Après confirmation que tout fonctionne, supprimer la sauvegarde
sudo rm -rf /var/www.bak
Pièges et Cas Particuliers
Dérive des noms de périphériques : /dev/sdb peut devenir /dev/sdc après un redémarrage si un autre disque est ajouté. Utilisez toujours les UUID dans /etc/fstab et les scripts — jamais les chemins de périphériques bruts.
Table de partitions non visible immédiatement : Après l’écriture des modifications avec fdisk ou parted, le noyau peut ne pas relire immédiatement la table de partitions si le disque est en cours d’utilisation. Exécutez sudo partprobe /dev/sdb ou redémarrez.
Alignement des secteurs 4K : Les anciens outils utilisent par défaut un alignement par cylindre, ce qui provoque un désalignement sur les disques modernes à secteurs 4K. Utilisez la syntaxe en pourcentage de parted ou l’alignement de secteur par défaut de fdisk (2048 secteurs = 1 Mio).
ext4 sur les grands disques : Pour les volumes de plus de 16 To, passez à xfs. La commande mkfs.ext4 vous avertira, mais il est facile de manquer cet avertissement.
nofail manquant sur les disques non-root : Sans nofail, un disque secondaire absent fera basculer le système en mode urgence au démarrage. Ajoutez toujours nofail à toute entrée fstab non-root.
GPT sur un système BIOS sans partition de démarrage BIOS : Lorsque vous utilisez GPT avec GRUB sur un système non-UEFI, vous avez besoin d’une petite partition (1 Mio) non formatée avec le type BIOS boot (code ef02 dans gdisk ou type bios_grub dans parted). Sans elle, GRUB ne peut pas installer son stage 2.
Résolution de Problèmes
mount: /mnt/data: can't read superblock — Le système de fichiers n’a pas été créé, ou il a été créé sur le mauvais périphérique. Exécutez file -s /dev/sdb1 pour vérifier si un système de fichiers existe.
mount: wrong fs type, bad option, bad superblock — Incompatibilité entre le type de système de fichiers dans fstab et le type réel sur le disque. Exécutez blkid /dev/sdb1 pour vérifier le champ TYPE et corriger l’entrée fstab.
WARNING: Re-reading the partition table failed — Le noyau n’a pas pu mettre à jour sa vue de la table de partitions car le disque est occupé. Si cela se produit sur un disque autre que le disque de démarrage, exécutez partprobe ou redémarrez.
L’UUID change après mkfs — Chaque appel à mkfs attribue un nouvel UUID. Si vous reformatez une partition sans mettre à jour /etc/fstab, le système ne parviendra pas à la monter. Exécutez toujours blkid après le formatage et mettez à jour fstab immédiatement.
parted: Error: Partition(s) on /dev/sdb are being used — Une ou plusieurs partitions du disque sont actuellement montées. Démontez-les toutes avant de repartitionner ou de redimensionner.
Résumé
- Choisissez GPT pour tous les nouveaux disques en 2025 — il supporte 128 partitions, les disques au-delà de 2 To et fournit un en-tête de table de partitions de sauvegarde.
- Utilisez fdisk pour le partitionnement interactif ; utilisez parted lorsque vous avez besoin de scripts, d’automatisation ou de disques de plus de 2 To.
- Formatez toujours une nouvelle partition avec
mkfsavant de la monter — une partition brute n’a pas de système de fichiers. - Utilisez l’UUID (pas les noms de périphériques comme
/dev/sdb1) dans/etc/fstabpour s’assurer que les montages survivent à la réorganisation des disques. - Ajoutez
nofailà toutes les entrées fstab non-root afin qu’un disque manquant n’empêche pas le système de démarrer. - Vérifiez chaque modification de fstab avec
mount -aavant de redémarrer — une mauvaise entrée peut rendre le système non démarrable. - Alignez les partitions sur des limites Mio (syntaxe en pourcentage de parted ou valeurs par défaut de fdisk) pour des performances optimales sur SSD et NVMe.