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-linux installé (fournit fdisk, lsblk, blkid — présent par défaut sur la plupart des distributions)
  • parted installé : apt install parted ou dnf 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éMBRGPT
Taille maximale du disque2 To9,4 Zo (pratiquement illimité)
Partitions primaires max4 (ou 3 primaires + étendue)128
Firmware de démarrageBIOSUEFI (fonctionne aussi avec BIOS via hybride)
RedondanceAucuneEn-tête de sauvegarde en fin de disque
Support des OSTous Linux, Windows XP+Linux kernel 2.6.25+, Windows Vista+, macOS
Support des outilsfdisk, parted, gdiskparted, gdisk, fdisk (depuis util-linux 2.23)
RécupérationPlus difficileL’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

ToucheAction
mAfficher le menu d’aide
gNouvelle table de partitions GPT
oNouvelle table de partitions MBR
nNouvelle partition
dSupprimer une partition
tChanger le type de partition
pAfficher la table de partitions
wÉcrire et quitter
qQuitter 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 fichiersIdéal pourTaille max de fichierTaille max du volume
ext4Usage général, disques VM16 To1 Eo
xfsBases de données, gros fichiers8 Eo8 Eo
btrfsSnapshots, NAS, serveurs domestiques16 Eo16 Eo
vfat/FAT32Clés USB, partitions EFI4 Go2 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 :

OptionSignification
defaultsrw, suid, dev, exec, auto, nouser, async
nofailLe démarrage réussit même si le disque est absent (essentiel pour les disques non-root)
noatimeNe 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 mkfs avant 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/fstab pour 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 -a avant 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.

Articles Connexes