Passer au contenu principal
Linux, OS

Partitionnement sous Linux : sculpter un disque sans tout effacer

Bienvenue dans le monde légèrement stressant du partitionnement et du formatage sous Linux.

Ici, quelques lettres comme /dev/sda, /dev/sdb ou /dev/nvme0n1 peuvent séparer une opération parfaitement maîtrisée d’une journée consacrée à rechercher « récupération table GPT supprimée urgent ».

Le principe est pourtant assez simple : organiser un périphérique de stockage, créer les structures nécessaires pour y enregistrer des fichiers, puis les rendre accessibles au système.

La difficulté vient principalement du fait que les outils supposent assez raisonnablement que vous savez sur quel disque vous travaillez.

Première règle du partitionnement :
avant toute commande destructive, identifiez le disque.
Puis vérifiez-le une deuxième fois.
Le disque système et le disque USB de test possèdent parfois des noms beaucoup trop proches pour des objets dont l’un contient toute votre vie numérique.

Partitionnement, formatage et montage : trois choses différentes

Ces opérations sont souvent mélangées, alors qu’elles correspondent à trois niveaux distincts.

Opération Rôle Exemple
Partitionnement Découper logiquement un périphérique en zones Créer /dev/sdb1 et /dev/sdb2
Formatage Créer un système de fichiers dans une partition Créer ext4 sur /dev/sdb1
Montage Rattacher ce système de fichiers à l’arborescence Linux Monter /dev/sdb1 dans /mnt/data

On peut comparer cela à un immeuble :

  • partitionner, c’est dessiner les appartements ;
  • formater, c’est aménager l’intérieur ;
  • monter, c’est ouvrir une porte permettant d’y entrer depuis l’arborescence Linux.

Et comme dans l’immobilier, modifier les murs alors que les habitants sont encore dedans mérite quelques précautions.

Avant toute chose : identifier correctement les disques

Ne commencez jamais par :

sudo fdisk /dev/sdX

en choisissant mentalement le X d’après un souvenir approximatif.

Commencez plutôt par regarder la situation réelle.

lsblk : la commande à connaître

lsblk

Pour afficher davantage d’informations :

lsblk -o NAME,SIZE,TYPE,FSTYPE,FSVER,LABEL,UUID,MOUNTPOINTS,MODEL

Une sortie peut ressembler à :

NAME        SIZE TYPE FSTYPE LABEL  MOUNTPOINTS
sda         1.8T disk
└─sda1      1.8T part ext4   DATA   /srv/data
nvme0n1     477G disk
├─nvme0n1p1 512M part vfat          /boot/efi
├─nvme0n1p2  60G part ext4          /
└─nvme0n1p3 416G part ext4          /home

Deux détails importants apparaissent immédiatement :

  • les disques SATA/SAS/USB ressemblent souvent à /dev/sda, /dev/sdb… ;
  • les périphériques NVMe ressemblent plutôt à /dev/nvme0n1, avec des partitions comme /dev/nvme0n1p1.

Le stockage moderne a estimé que nous n’avions pas suffisamment de conventions de nommage.

Afficher les UUID et systèmes de fichiers

sudo blkid

ou :

lsblk -f

Ces informations seront particulièrement utiles plus tard pour configurer /etc/fstab.

Voir ce qui est actuellement monté

findmnt

Avant de reformater une partition, constater qu’elle est actuellement montée sur /home constitue une information qu’il est préférable d’obtenir avant la commande mkfs.

Un disque entier n’est pas une partition

Prenons :

/dev/sdb

Il s’agit généralement du périphérique disque entier.

Ses partitions peuvent être :

/dev/sdb1
/dev/sdb2
/dev/sdb3

Pour un NVMe :

/dev/nvme0n1

et :

/dev/nvme0n1p1
/dev/nvme0n1p2

mkfs.ext4 /dev/sdb1 et mkfs.ext4 /dev/sdb ne désignent pas la même chose.

Il est techniquement possible de placer un système de fichiers directement sur certains périphériques entiers sans table de partitions.

Mais si votre intention était de formater seulement la première partition et que vous avez tapé le nom du disque entier, cette subtilité académique ne vous apportera probablement aucun réconfort.

MBR et GPT : deux façons de décrire les partitions

Une table de partitions indique où commencent et où finissent les partitions d’un disque.

Deux formats dominent historiquement le monde PC :

  • MBR / DOS ;
  • GPT.

MBR : l’ancien système qui refuse de mourir

MBR — Master Boot Record est l’ancien format de partitionnement traditionnel des PC.

La table MBR possède seulement quatre entrées principales.

On peut donc créer :

  • jusqu’à quatre partitions primaires ;
  • ou utiliser l’une de ces entrées comme partition étendue, à l’intérieur de laquelle peuvent être créées plusieurs partitions logiques.

Dire que MBR est « limité à quatre partitions » est donc un raccourci.

Il est limité à quatre entrées primaires.

Les partitions étendues ont été inventées ensuite pour contourner cette limite, parce qu’en informatique une restriction mal conçue est rarement supprimée : on construit généralement un deuxième mécanisme autour.

La fameuse limite des 2 To

Avec le schéma MBR classique et des secteurs logiques de 512 octets, l’adressage atteint environ 2 Tio.

C’est pourquoi GPT est indispensable pour exploiter normalement les grands disques modernes dans les configurations courantes.

La valeur exacte dépend notamment de la taille logique des secteurs : la formule « MBR = maximum absolu de 2 To dans toutes les situations imaginables » est donc un peu trop simpliste.

GPT : le standard moderne

GPT — GUID Partition Table est le format moderne utilisé notamment avec les systèmes UEFI.

Il apporte plusieurs améliorations importantes :

  • adressage des blocs sur 64 bits ;
  • identifiants GUID pour les partitions ;
  • noms de partitions ;
  • sommes de contrôle permettant de détecter certaines corruptions ;
  • copie principale et copie de secours des structures GPT ;
  • beaucoup plus de partitions sans avoir besoin de partitions étendues.

La plupart des outils créent couramment une table permettant 128 partitions, mais ce nombre n’est pas une limite fondamentale du format GPT.

Et la taille maximale ?

GPT utilise des adresses de blocs logiques sur 64 bits.

Avec des secteurs de 512 octets, l’espace théorique adressable se situe autour de 8 Zio, soit environ 9,4 Zo en notation décimale.

Autrement dit, si votre disque personnel est devenu trop gros pour GPT, le problème mérite probablement davantage un communiqué de presse qu’un tutoriel Linux.

GPT et UEFI, MBR et BIOS : attention au raccourci

On résume parfois ainsi :

  • BIOS = MBR ;
  • UEFI = GPT.

C’est une bonne approximation pédagogique, mais pas une loi physique.

Un système utilisant un BIOS traditionnel peut également démarrer depuis un disque GPT avec un chargeur adapté comme GRUB et une petite BIOS Boot Partition.

En revanche, pour une installation moderne démarrant en UEFI, GPT est généralement le choix naturel.

MBR ou GPT : lequel choisir ?

Critère MBR GPT
Époque Historique Moderne
Entrées principales 4 Souvent 128 par défaut
Partitions étendues Oui, pour contourner la limite Inutiles
Grands disques Limité dans le cas classique Oui
UUID de partition Non au niveau GPT Oui
Redondance de la table Très limitée Structures principales et de secours
UEFI Pas le choix moderne habituel Choix standard

Pour un nouveau disque sur un système moderne : choisissez GPT sauf raison précise de faire autrement.

MBR reste utile pour certaines compatibilités anciennes ou des appareils qui vivent encore sereinement dans une époque où 2 To semblaient représenter une quantité obscène de stockage.

Les systèmes de fichiers : donner une organisation aux données

Une partition n’est qu’une plage de blocs.

Pour y stocker des fichiers de manière structurée, on crée généralement un système de fichiers.

Linux en supporte beaucoup.

Parce qu’une seule méthode de ranger des fichiers aurait manifestement été trop reposante.

ext4 : le choix tranquille

ext4 est l’un des systèmes de fichiers Linux les plus utilisés et reste un excellent choix généraliste.

Il est :

  • journalisé ;
  • mature ;
  • robuste ;
  • largement pris en charge par les outils Linux ;
  • bien adapté aux systèmes et volumes de données classiques.

Pour un disque principalement destiné à Linux et sans exigence particulière, ext4 est souvent le choix le moins spectaculaire.

Ce qui, lorsqu’on parle d’un système de fichiers, constitue généralement un compliment.

FAT32 : vieux, limité, mais increvable

FAT32 possède une compatibilité exceptionnelle :

  • Linux ;
  • Windows ;
  • macOS ;
  • appareils photo ;
  • téléviseurs ;
  • consoles ;
  • autoradios ;
  • et probablement quelques cafetières ayant acquis trop de fonctionnalités.

Mais il possède une limite célèbre : un fichier individuel ne peut pas dépasser 4 Gio moins 1 octet.

Une image ISO de 6 Gio ne tiendra donc pas sur un volume FAT32, même si celui-ci dispose de 200 Gio libres.

Le système de fichiers n’est pas impressionné par votre espace disponible.

exFAT : l’échange moderne

exFAT est particulièrement intéressant pour les supports amovibles devant circuler entre plusieurs systèmes.

Il offre notamment :

  • la prise en charge de fichiers bien supérieurs à 4 Gio ;
  • une bonne compatibilité entre Linux, Windows et macOS modernes ;
  • une structure adaptée aux supports flash et volumes d’échange.

Sur Debian, les outils de création et de vérification sont fournis par :

sudo apt install exfatprogs

Ce paquet fournit notamment :

mkfs.exfat
fsck.exfat
exfatlabel

NTFS : lorsque Windows doit également être invité

NTFS est le système de fichiers historique moderne de Windows.

Linux sait aujourd’hui le lire et l’écrire.

Plusieurs solutions existent selon le système :

  • des pilotes NTFS intégrés au noyau Linux ;
  • ntfs-3g, solution historique et toujours disponible utilisant FUSE.

Sous Debian, on peut installer les outils NTFS-3G avec :

sudo apt install ntfs-3g

Ce paquet fournit notamment des outils comme mkfs.ntfs.

NTFS est utile lorsqu’un volume doit principalement rester compatible avec Windows tout en étant accessible depuis Linux.

Pour un système Linux natif, ext4, XFS ou Btrfs seront généralement des choix plus naturels.

XFS et Btrfs : les autres candidats sérieux

L’univers Linux ne s’arrête évidemment pas à ext4.

XFS

XFS est un système de fichiers journalisé mature, particulièrement réputé pour les gros volumes et les charges importantes.

Il est largement utilisé sur les serveurs.

Btrfs

Btrfs propose des fonctions plus avancées, notamment :

  • snapshots ;
  • sous-volumes ;
  • checksums des données et métadonnées ;
  • compression transparente ;
  • gestion intégrée de plusieurs périphériques dans certains scénarios.

Ces fonctions sont puissantes.

Elles ajoutent également suffisamment de vocabulaire pour occuper une autre page entière, ce que nous épargnerons temporairement au lecteur.

Quel système de fichiers choisir ?

Besoin Choix courant
Disque Linux généraliste ext4
Gros volumes / serveurs XFS ou ext4 selon le besoin
Snapshots, compression, fonctions avancées Btrfs
Clé USB compatible avec beaucoup d’anciens appareils FAT32
Clé/disque externe moderne multi-OS exFAT
Volume principalement utilisé sous Windows NTFS

Les principaux outils de partitionnement

Linux dispose de plusieurs outils capables de modifier les tables de partitions.

Leurs fonctionnalités se recoupent fortement.

fdisk : bien plus qu’un outil MBR

fdisk était historiquement associé au partitionnement DOS/MBR.

Ce n’est plus une description correcte des versions modernes.

fdisk sait aujourd’hui gérer notamment MBR et GPT.

Pour ouvrir un disque :

sudo fdisk /dev/sdX

Remplacez évidemment /dev/sdX par le véritable périphérique.

Pas au hasard.

Commandes courantes de fdisk

Commande Fonction
m Afficher l’aide
p Afficher la table actuelle
g Créer une nouvelle table GPT
o Créer une nouvelle table DOS/MBR
n Créer une partition
d Supprimer une partition
t Changer le type d’une partition
v Vérifier la table
w Écrire les changements sur le disque et quitter
q Quitter sans écrire les changements

C’est une propriété très agréable de fdisk : beaucoup de modifications restent en mémoire tant que vous n’avez pas demandé leur écriture avec w.

Vous pouvez donc créer, supprimer et regretter plusieurs partitions avant de quitter avec q.

Une sorte de brouillon pour décisions potentiellement catastrophiques.

cfdisk : les mêmes blocs, moins de lettres mystérieuses

cfdisk fournit une interface en mode texte basée sur curses.

sudo cfdisk /dev/sdX

Il sait lui aussi gérer plusieurs types de tables, notamment :

  • GPT ;
  • MBR/DOS ;
  • et quelques formats plus exotiques.

Son interface est généralement plus confortable pour un administrateur qui préfère voir :

  • les partitions ;
  • leurs tailles ;
  • l’espace libre ;
  • les actions disponibles.

Comme avec fdisk, les modifications ne sont pas nécessairement écrites immédiatement.

Il faut explicitement demander Write.

Le logiciel vous laisse donc encore quelques secondes pour reconsidérer vos choix de vie.

parted : puissant et scriptable

GNU parted est un autre outil capable de gérer plusieurs formats de table, notamment GPT et MBR.

sudo parted /dev/sdX

Commandes courantes :

print
mklabel gpt
mkpart
name
set
resizepart
quit

Créer une table GPT

(parted) mklabel gpt

Attention : créer une nouvelle table de partitions remplace la structure existante.

Si le disque contenait des partitions auxquelles vous teniez, c’est un moment particulièrement inadapté pour découvrir la commande.

Créer une partition

Par exemple :

(parted) mkpart primary ext4 1MiB 100%

Avec GPT, selon la version et la syntaxe utilisée, le premier argument peut notamment servir de nom de partition.

Mais il faut comprendre un point important :

parted mkpart ... ext4 ne formate pas réellement la partition en ext4.

GNU Parted ne réalise plus les opérations de création de systèmes de fichiers.

Il crée la partition.

Il faudra ensuite utiliser :

sudo mkfs.ext4 /dev/sdX1

Parted dessine la pièce.

Le plombier vient après.

sfdisk : pour les scripts

Pour des opérations automatisées, sfdisk est souvent plus adapté que les interfaces interactives.

Il sait lui aussi manipuler MBR et GPT.

Afficher la table :

sudo sfdisk --dump /dev/sdX

Cette possibilité de produire une représentation textuelle est également pratique avant certains travaux importants.

En règle générale :

  • fdisk : très pratique en interactif ;
  • cfdisk : confortable visuellement ;
  • parted : polyvalent, notamment pour les tailles et opérations modernes ;
  • sfdisk : excellent pour les scripts et manipulations reproductibles.

Exemple : créer un disque GPT avec fdisk

Supposons que /dev/sdb soit un disque de test vide.

Après avoir vérifié avec :

lsblk -o NAME,SIZE,MODEL,SERIAL,MOUNTPOINTS

on lance :

sudo fdisk /dev/sdb

Puis :

g
n
1
[Entrée]
[Entrée]
w

Dans cet exemple :

  • g crée une table GPT ;
  • n crée une nouvelle partition ;
  • 1 choisit le numéro 1 ;
  • les valeurs par défaut utilisent l’espace disponible ;
  • w écrit les changements.

Le résultat devrait être une partition :

/dev/sdb1

Mais elle ne contient encore aucun système de fichiers.

Nous avons construit le terrain cadastral.

Personne n’habite encore dedans.

Exemple historique : créer une partition MBR avec fdisk

L’exemple original reste tout à fait valable lorsqu’un schéma MBR est réellement souhaité.

sudo fdisk /dev/sdb

Puis :

o
n
p
1
[Entrée]
[Entrée]
w

Ici :

  • o crée une table DOS/MBR ;
  • n crée une partition ;
  • p demande une partition primaire ;
  • 1 sélectionne la première entrée ;
  • w écrit les modifications.

Sur un nouveau disque destiné à un système moderne, GPT sera toutefois généralement préférable.

Quand le noyau ne voit pas immédiatement la nouvelle table

Après modification de la table de partitions, les outils demandent normalement au noyau de la relire.

Dans certains cas — particulièrement lorsqu’une partition est utilisée — cette relecture peut échouer.

On peut notamment rencontrer des outils comme :

sudo partprobe /dev/sdb

ou :

sudo partx -u /dev/sdb

Mais si le disque est activement utilisé, le bon remède n’est généralement pas de forcer davantage jusqu’à ce que quelque chose cède.

Démontez ce qui doit l’être, ou redémarrez si la situation l’exige.

Formater une partition

Une fois la partition créée, on peut y construire un système de fichiers.

Les commandes mkfs.* sont destructives pour le système de fichiers existant sur la cible.

Vérifiez donc encore :

lsblk -f

Puis choisissez votre système de fichiers.

ext4

sudo mkfs.ext4 /dev/sdX1

Avec une étiquette :

sudo mkfs.ext4 -L DATA /dev/sdX1

FAT32

Sous Debian, installez au besoin :

sudo apt install dosfstools

Puis :

sudo mkfs.fat -F 32 /dev/sdX1

ou l’alias couramment rencontré :

sudo mkfs.vfat -F 32 /dev/sdX1

exFAT

sudo apt install exfatprogs

Puis :

sudo mkfs.exfat /dev/sdX1

NTFS

Avec les utilitaires NTFS disponibles sous Debian :

sudo apt install ntfs-3g

Puis :

sudo mkfs.ntfs /dev/sdX1

XFS

sudo apt install xfsprogs
sudo mkfs.xfs /dev/sdX1

Btrfs

sudo apt install btrfs-progs
sudo mkfs.btrfs /dev/sdX1

Donner un label au système de fichiers

Un label facilite l’identification humaine d’un volume.

Par exemple pour ext4 :

sudo e2label /dev/sdb1 DATA

Puis :

lsblk -f

pour vérifier.

Les UUID sont excellents pour les machines.

Les labels sont excellents pour les humains qui préfèrent « BACKUP » à 3f56db37-c2f4-47a1-b817-cf78....

Monter une partition

Linux ne donne pas à chaque volume une lettre comme C: ou D:.

Les systèmes de fichiers sont rattachés à une arborescence unique.

Créons un point de montage :

sudo mkdir -p /mnt/disque1

Puis montons la partition :

sudo mount /dev/sdX1 /mnt/disque1

Vérification :

findmnt /mnt/disque1

ou :

df -hT /mnt/disque1

Démonter : umount, sans « n »

La commande s’appelle :

sudo umount /mnt/disque1

et non :

unmount

Unix économisait déjà des caractères à une époque où les claviers devaient probablement être facturés à la lettre.

On peut également démonter en indiquant le périphérique :

sudo umount /dev/sdX1

« Target is busy » : quelqu’un est encore dedans

Si umount répond :

target is busy

un processus utilise probablement encore le système de fichiers.

Commencez par vérifier :

findmnt /mnt/disque1

Puis, selon les outils disponibles :

sudo fuser -vm /mnt/disque1

ou :

sudo lsof +f -- /mnt/disque1

Un terminal dont le répertoire courant se trouve dans le point de montage suffit également à empêcher le démontage.

Oui, votre propre shell peut être le processus que vous cherchez depuis dix minutes.

Monter automatiquement au démarrage avec /etc/fstab

Un montage effectué avec mount n’est pas nécessairement permanent après redémarrage.

Les montages persistants sont traditionnellement définis dans :

/etc/fstab

Pourquoi éviter /dev/sdb1 dans fstab ?

Le nom /dev/sdb1 dépend de l’ordre dans lequel les périphériques sont détectés.

Un disque peut un jour devenir /dev/sdc1.

Pour cette raison, on préfère généralement utiliser son UUID.

Obtenez-le avec :

sudo blkid /dev/sdb1

Par exemple :

/dev/sdb1: LABEL="DATA" UUID="8c45d4..." TYPE="ext4"

Une entrée /etc/fstab peut ensuite ressembler à :

UUID=8c45d4...  /srv/data  ext4  defaults  0  2

Créez évidemment le point de montage :

sudo mkdir -p /srv/data

Tester fstab avant de redémarrer

Après modification :

sudo mount -a

Puis :

findmnt --verify

Tester fstab avant le redémarrage permet d’éviter cette variante classique :

« J’ai modifié le stockage distant depuis chez moi. Maintenant le serveur ne démarre plus normalement. »

Les transports publics fonctionnent rarement mieux à 2 h du matin.

UUID, PARTUUID et label : ne pas les confondre

Linux permet plusieurs manières d’identifier un volume.

Identifiant Désigne
UUID Le système de fichiers
LABEL Le label du système de fichiers
PARTUUID L’identifiant de la partition dans la table de partitions
PARTLABEL Le nom de partition GPT

Un reformatage change normalement l’UUID du système de fichiers.

Il ne change pas nécessairement le PARTUUID de la partition.

Deux identifiants, deux couches.

Nous avions peur de manquer d’UUID.

La partition EFI : petite mais importante

Sur une machine démarrant en UEFI, on rencontre généralement une EFI System Partition — ESP.

Elle est habituellement :

  • sur un disque GPT ;
  • formatée en FAT ;
  • de taille relativement modeste ;
  • montée sous Linux sur /boot/efi dans de nombreuses installations.

Elle contient notamment des exécutables utilisés par le firmware UEFI et les chargeurs de démarrage.

Ne la reformatez donc pas simplement parce que 512 Mio vous paraissent mystérieusement inutilisés.

Elle semble petite et discrète parce que son travail consiste justement à faire démarrer la machine avant que vous commenciez à regarder les disques.

Et le swap ?

Une partition peut aussi être utilisée comme espace d’échange Linux plutôt que comme système de fichiers classique.

Création :

sudo mkswap /dev/sdX2

Activation :

sudo swapon /dev/sdX2

Vérification :

swapon --show

Désactivation :

sudo swapoff /dev/sdX2

Les systèmes modernes utilisent aussi fréquemment des fichiers swap, ce qui évite nécessairement de réserver une partition entière.

Partitionnement et LVM : une couche supplémentaire

Dans de nombreuses installations Linux, une partition ne contient pas directement ext4.

Elle peut contenir un Physical Volume LVM, lui-même intégré à un Volume Group, dans lequel sont créés des Logical Volumes.

On obtient alors quelque chose comme :

Disque
└── Partition GPT
    └── Physical Volume LVM
        └── Volume Group
            ├── Logical Volume root
            ├── Logical Volume home
            └── Logical Volume data

LVM apporte beaucoup de souplesse pour :

  • redimensionner certains volumes ;
  • agréger plusieurs périphériques ;
  • créer des snapshots dans certains usages ;
  • décorréler davantage le stockage physique et les volumes logiques.

Mais cela ajoute une nouvelle couche.

Et toute couche supplémentaire possède le potentiel de devenir la couche que l’on avait oubliée lorsque df et lsblk semblaient raconter deux histoires différentes.

Partitionner n’est pas forcément effacer physiquement les données

On dit souvent :

« Partitionner ou formater efface les données. »

Pour l’utilisateur, c’est une excellente règle de sécurité.

Techniquement, elle mérite toutefois une nuance.

Créer une nouvelle table de partitions ou un nouveau système de fichiers écrase certaines métadonnées essentielles et peut rendre les anciennes données inaccessibles.

Mais cela ne signifie pas nécessairement que chaque secteur contenant les anciennes données a été immédiatement réécrit avec des zéros.

Une partie peut parfois rester récupérable tant qu’elle n’a pas été écrasée.

Ce détail possède deux conséquences :

  • une suppression accidentelle n’implique pas toujours que toute récupération est impossible ;
  • un simple formatage ne constitue pas nécessairement une méthode fiable d’effacement sécurisé avant de céder un disque.

Dans le premier cas, arrêtez d’écrire sur le disque.

Dans le second, utilisez une procédure d’effacement adaptée au support et à votre niveau d’exigence.

wipefs : examiner les signatures existantes

Avant de réutiliser un disque, wipefs peut montrer les signatures reconnues :

sudo wipefs /dev/sdX

Il peut identifier des traces de :

  • tables de partitions ;
  • systèmes de fichiers ;
  • LVM ;
  • RAID ;
  • et autres structures connues.

wipefs sait aussi supprimer ces signatures, mais cela devient évidemment une opération destructive.

Ne transformez pas une commande d’inspection en commande d’effacement simplement parce que l’option suivante avait l’air intéressante.

Vérifier un système de fichiers

Chaque famille dispose de ses outils.

ext4

sudo fsck.ext4 /dev/sdX1

FAT

sudo fsck.fat /dev/sdX1

exFAT

sudo fsck.exfat /dev/sdX1

Attention : on évite généralement de lancer un fsck destructif ou réparateur sur un système de fichiers monté en lecture/écriture.

Réparer le moteur pendant que la voiture roule demeure une discipline réservée aux gens qui ont d’excellentes assurances.

Redimensionner : la partition et le système de fichiers sont deux choses

C’est un autre piège classique.

Agrandir une partition ne signifie pas nécessairement agrandir automatiquement le système de fichiers contenu à l’intérieur.

On peut avoir :

Partition : 500 Gio
Système de fichiers ext4 : 300 Gio

Les 200 Gio supplémentaires existent alors dans la partition mais ne sont pas encore utilisés par le système de fichiers.

Pour ext4, après avoir agrandi la partition, on utilise généralement :

sudo resize2fs /dev/sdX1

Pour XFS, l’agrandissement s’effectue autrement, généralement sur le système de fichiers monté avec xfs_growfs.

Les possibilités et procédures de réduction diffèrent également fortement selon le système de fichiers.

Ne supposez jamais qu’un outil capable de redimensionner une partition sait également redimensionner ce qu’elle contient.

Une boîte plus grande ne fait pas automatiquement grossir ce qu’on avait dessiné dedans.

Alignement des partitions : laissez les outils modernes travailler

Sur les disques modernes et SSD, l’alignement des partitions avec les caractéristiques physiques ou logiques du périphérique est important pour éviter des opérations d’entrée/sortie inutiles.

Les versions modernes de fdisk, cfdisk et parted prennent ces contraintes en compte.

Dans la majorité des cas, acceptez les valeurs de début proposées par défaut.

Les vieux tutoriels demandant de calculer manuellement cylindres, têtes et secteurs appartiennent désormais à la même catégorie historique que les écrans CRT et les administrateurs capables de réciter leur géométrie CHS de mémoire.

SSD : partitionnement identique, fonctionnement différent

Un SSD se partitionne globalement avec les mêmes outils qu’un disque dur.

Mais son fonctionnement interne est très différent.

Les SSD utilisent notamment un mécanisme appelé TRIM, qui permet au système d’indiquer au périphérique quels blocs ne contiennent plus de données utiles.

Sur de nombreuses distributions Linux, TRIM périodique peut être géré par :

systemctl status fstrim.timer

Et manuellement :

sudo fstrim -av

Il n’est généralement pas nécessaire de transformer cette opération en rituel quotidien compulsif.

Le SSD ne pousse pas mieux si vous le taillez tous les matins.

Cas pratique complet : préparer un nouveau disque de données

Supposons que vous venez d’ajouter un disque vide qui apparaît comme :

/dev/sdb

Cet exemple suppose réellement que /dev/sdb ne contient rien que vous souhaitez conserver.

1. Identifier le disque

lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS

2. Créer une table GPT et une partition

sudo fdisk /dev/sdb

Puis :

g
n
1
[Entrée]
[Entrée]
w

3. Vérifier

lsblk /dev/sdb

Vous devriez voir :

sdb
└─sdb1

4. Créer ext4

sudo mkfs.ext4 -L DATA /dev/sdb1

5. Créer le point de montage

sudo mkdir -p /srv/data

6. Monter temporairement

sudo mount /dev/sdb1 /srv/data

7. Vérifier

findmnt /srv/data
df -hT /srv/data

8. Trouver l’UUID

sudo blkid /dev/sdb1

9. Ajouter le volume à /etc/fstab

Par exemple :

UUID=VOTRE-UUID  /srv/data  ext4  defaults  0  2

10. Tester avant de redémarrer

sudo umount /srv/data
sudo mount -a
findmnt /srv/data

Vous disposez maintenant d’un disque GPT, d’une partition ext4 et d’un montage persistant.

Le tout sans sacrifier accidentellement /home.

Une excellente journée.

Les erreurs classiques

Formater le mauvais disque

sudo mkfs.ext4 /dev/sda1

alors qu’on voulait :

sudo mkfs.ext4 /dev/sdb1

La différence typographique tient à une lettre.

La différence émotionnelle est beaucoup plus importante.

Formater le disque au lieu de la partition

Confondre :

/dev/sdb

avec :

/dev/sdb1

peut produire une organisation assez différente de celle prévue.

Modifier un disque monté

Avant toute opération sensible :

lsblk
findmnt

doivent devenir des réflexes.

Créer la partition mais oublier de la formater

Une entrée dans GPT n’est pas un système de fichiers.

Formater mais oublier de monter

Le système de fichiers existe.

Il est simplement introuvable dans votre arborescence parce que vous n’avez ouvert aucune porte vers lui.

Monter manuellement mais oublier fstab

Tout fonctionne jusqu’au redémarrage.

Puis le disque « disparaît » mystérieusement.

Il n’a pas disparu.

Personne ne lui a simplement donné rendez-vous au prochain boot.

Modifier fstab sans le tester

Utilisez :

sudo mount -a
findmnt --verify

avant de redémarrer un serveur situé à 600 kilomètres.

La géographie est une discipline souvent sous-estimée dans l’administration système.

Avant une opération destructive : la checklist

  1. Ai-je une sauvegarde des données importantes ?
  2. Ai-je vérifié le nom du disque avec lsblk ?
  3. Ai-je vérifié sa taille et son modèle ?
  4. Est-il actuellement monté ?
  5. Contient-il LVM, RAID, chiffrement ou autre chose que je n’avais pas remarqué ?
  6. Est-ce le disque ou la partition que je veux réellement modifier ?
  7. Ai-je relu la commande avant d’appuyer sur Entrée ?

Si la réponse à l’une de ces questions est :

« Probablement. »

ne lancez pas encore mkfs.

Résumé des outils

Outil Fonction principale
lsblk Afficher les périphériques bloc et leur organisation
blkid Afficher UUID, labels et types de systèmes de fichiers
findmnt Afficher les montages
fdisk Partitionner notamment en GPT ou MBR
cfdisk Partitionnement avec interface texte
parted Manipuler les tables et partitions
sfdisk Partitionnement adapté aux scripts
mkfs.* Créer un système de fichiers
mkswap Créer une zone swap
mount Monter un système de fichiers
umount Démonter un système de fichiers
fsck.* Vérifier ou réparer certains systèmes de fichiers
wipefs Examiner ou supprimer des signatures de stockage
partprobe Demander au noyau de relire une table de partitions

Conclusion : mesurer deux fois, formater une fois

Partitionner un disque sous Linux n’est pas particulièrement compliqué.

Il faut simplement comprendre les couches :

  1. le périphérique bloc ;
  2. la table de partitions ;
  3. les partitions ;
  4. éventuellement LVM, RAID ou chiffrement ;
  5. le système de fichiers ;
  6. le point de montage.

Pour un nouveau disque moderne, la recette la plus classique reste donc :

GPT → partition → système de fichiers → UUID → montage.

fdisk, cfdisk et parted permettent de sculpter les partitions.

mkfs crée les systèmes de fichiers.

mount les rattache à l’arborescence Linux.

Et lsblk est l’ami qu’il faut consulter avant de faire quoi que ce soit d’irréversible.

Un disque bien partitionné est un disque dont personne ne parle.

Il démarre, il monte, il stocke ses données et il traverse les années dans une remarquable indifférence générale.

Un disque mal partitionné, en revanche, peut réunir trois administrateurs, deux sauvegardes incomplètes et un consultant un dimanche matin.

Mesurez deux fois. Formatez une fois.