Tutoriel Linux

Étendre la partition racine Ubuntu après agrandissement du disque

Débutant8 min de lecture

Vous avez augmenté la taille d’un disque virtuel dans l’hyperviseur, mais Ubuntu n’utilise pas encore tout l’espace pour sa racine. Le disque doit d’abord être agrandi côté hyperviseur et sa nouvelle capacité visible dans l’invité. Ce parcours concerne uniquement une racine / directement montée sur une partition ext4 simple, suivie d’espace libre contigu.

Technicien intervenant sur une baie serveur avec un SSD lors d’une maintenance Ubuntu
Avant d’étendre la racine, identifiez le disque et prévoyez un accès de reprise.

La partition et le système de fichiers sont deux couches différentes. La procédure agrandit d’abord l’entrée de partition, puis ext4. Ne passez à l’étape suivante que si les contrôles précédents correspondent à votre machine.

Identifier la racine ext4, le disque et la partition

Commencez par repérer la source et le type de système de fichiers montés sur /, puis examinez les périphériques et leurs relations :

findmnt -no SOURCE /
findmnt -no FSTYPE /
lsblk

La première commande doit désigner la partition qui porte la racine ; la deuxième doit indiquer ext4. Dans lsblk, remontez de cette partition à son disque parent. Pour obtenir des colonnes explicites, vous pouvez compléter l’inspection ainsi :

lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN

Ne déduisez pas le nom du disque à partir d’un exemple. Une racine peut, par exemple, se trouver sur /dev/vda2 : le disque est alors /dev/vda et le numéro de partition 2. Sur NVMe, /dev/nvme0n1p2 correspond au disque /dev/nvme0n1 et au numéro 2. Vérifiez toujours ces éléments dans vos propres sorties.

Dans les commandes ci-dessous, /dev/sdX est un placeholder pour le disque entier, jamais pour une partition. N représente le numéro réel de la partition racine. Remplacez-les avant toute exécution ; ne copiez pas ces exemples tels quels.

Examinez ensuite la table et les limites des partitions sur le disque identifié. Dans la commande suivante, remplacez /dev/sdX par le chemin vérifié du disque entier :

sudo fdisk -l /dev/sdX

fdisk -l sert ici à lire la table, pas à la modifier. Comparez la capacité du disque, les limites des partitions et leur ordre. L’espace disponible doit se trouver immédiatement après la partition racine, sans autre partition entre les deux. La documentation de fdisk décrit les informations de table affichées par cet outil ; cette lecture ne remplace pas la vérification de la topologie réelle.

Avant toute écriture, faites le diagnostic à blanc. Remplacez les deux placeholders par le disque et le numéro de partition réellement identifiés :

sudo growpart --dry-run /dev/sdX N

Le mode --dry-run rapporte ce que l’outil ferait sans modifier la table. Il doit annoncer une extension possible de la bonne partition dans l’espace contigu disponible. La documentation Ubuntu de growpart précise la syntaxe disque-numéro de partition et le rôle du diagnostic à blanc.

Arrêtez-vous si la racine passe par LVM, LUKS ou RAID, si le système de fichiers est Btrfs ou XFS — ou n’est pas ext4 —, si une partition étendue/logique ou une autre couche rend la topologie ambiguë, si l’espace libre est avant la racine ou non contigu, ou si une autre partition suit la racine. Arrêtez-vous aussi si le disque agrandi n’est pas visible, si l’outil manque, si le diagnostic n’annonce pas l’extension attendue ou renvoie une erreur. Ne tentez pas de contourner ces cas avec une manipulation de partition.

Préparer le changement et un retour arrière

Avant la seule commande de cette procédure qui écrit la table de partitions, vérifiez que vous disposez d’une sauvegarde restaurable, que vous savez comment la restaurer et que les sorties d’inspection sont conservées. Un snapshot n’est utile comme retour arrière que si vous pouvez effectivement le restaurer.

Confirmez également l’accès à la console de reprise de la machine et à l’hyperviseur, ainsi que la possibilité de redémarrer Ubuntu. Prévoyez une fenêtre d’intervention : un redémarrage pourra être nécessaire si le noyau ne reconnaît pas la nouvelle taille de partition à chaud. Si la sauvegarde, l’accès console ou la possibilité de redémarrage ne sont pas assurés, arrêtez-vous.

Relevez la situation actuelle du système de fichiers et gardez les résultats de findmnt, lsblk, fdisk -l et du diagnostic à blanc pour les comparer ensuite :

df -hT /

Cette sortie est un point de comparaison, pas une preuve que la partition et ext4 ont déjà été étendus.

Agrandir l’entrée de partition

Ne poursuivez que si toutes les vérifications précédentes sont conformes, que la sauvegarde restaurable est prête et que l’accès de reprise et le redémarrage sont possibles. La commande suivante modifie la table de partitions. Remplacez impérativement /dev/sdX et N par le disque et le numéro validés ; le premier désigne le disque entier, le second la partition racine.

sudo growpart /dev/sdX N

Le résultat attendu est un compte rendu d’agrandissement de l’entrée de la partition racine vers l’espace contigu disponible. growpart change la taille de la partition, pas celle du système de fichiers ext4.

Si la commande renvoie une erreur, ne rapporte aucun agrandissement, signale un avertissement sur la table ou semble viser un autre périphérique, arrêtez-vous. N’enchaînez pas avec resize2fs et ne tentez pas de recréer ou de corriger la partition à l’aveugle.

Vérifier la taille reconnue par le noyau

Après l’opération, confrontez la table et les périphériques. Remplacez /dev/sdX par le disque identifié :

lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
sudo fdisk -l /dev/sdX
findmnt -no SOURCE /

La même partition doit toujours porter la racine, et sa taille courante, telle que présentée par le noyau dans lsblk, doit être supérieure et correspondre à l’entrée de partition agrandie. Une modification visible dans la table ne suffit pas si le noyau expose encore l’ancienne taille.

Si la taille n’a pas changé, si la relecture de la table a échoué, si table et noyau ne concordent pas, ou si la partition reconnue n’est pas celle montée sur /, arrêtez-vous : ne lancez pas resize2fs. Si seule la relecture à chaud manque alors que l’agrandissement de la table est confirmé, planifiez un redémarrage contrôlé en utilisant la console de reprise. Après le redémarrage, relancez les vérifications de source, de type et de taille. Si la taille attendue n’est toujours pas reconnue ou si le démarrage pose problème, arrêtez-vous et faites diagnostiquer la machine ; ne multipliez pas les commandes au hasard.

Agrandir ext4 après confirmation de la partition

Cette étape est réservée au cas où findmnt confirme toujours la même racine ext4 et où lsblk confirme que sa partition a effectivement la nouvelle taille. Le placeholder /dev/sdXN désigne ici le chemin complet de la partition racine, et non le disque entier. Remplacez-le par la source vérifiée ; pour NVMe, un nom de partition ressemble notamment à /dev/nvme0n1p2.

sudo resize2fs /dev/sdXN

Le résultat attendu est l’extension du système de fichiers ext4 dans la partition désormais plus grande. La documentation de resize2fs distingue cette opération de la modification de la table : resize2fs ne change pas la partition. L’extension en ligne dépend du support du noyau et du système de fichiers ; ne présumez pas qu’elle réussira sur toute configuration.

Arrêtez-vous si le type n’est pas ext4, si la partition conserve son ancienne taille, si la source ne correspond plus à la racine montée ou si la commande signale une erreur. Ne démontez pas / pour improviser une autre procédure ; n’exécutez ni réduction ni e2fsck sur la racine montée. Une erreur demande un diagnostic adapté, pas une nouvelle commande au hasard.

Contrôler l’espace utilisable

Terminez par les contrôles de la source, du type, de la taille de partition et de l’espace utilisable :

findmnt -no SOURCE /
findmnt -no FSTYPE /
lsblk -b -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PKNAME,PARTN
df -hT /

Pour conclure à une extension effective, il faut retrouver la même source de racine, le type ext4, la nouvelle taille de partition reconnue par le noyau et une capacité de système de fichiers supérieure dans df -hT /. La taille de la partition et l’espace rapporté par df ne sont pas identiques : ext4 utilise une partie de sa capacité pour ses propres structures.

Si df n’a pas augmenté, si les valeurs ne concordent pas ou si une commande a signalé une erreur, ne déclarez pas l’opération réussie et ne répétez pas growpart. Conservez les sorties pour un diagnostic. Pour une partition de données ext4 non racine à agrandir avec fdisk, le parcours est différent et cette procédure ne s’applique pas.

En bref : identifiez précisément la racine, confirmez l’espace contigu et le résultat du diagnostic à blanc, préparez sauvegarde et reprise, puis vérifiez séparément la partition reconnue par le noyau et ext4. Au moindre écart, arrêtez-vous avant l’étape suivante.