Vous venez d’agrandir le disque d’une machine virtuelle (ou physique) sous Debian et vous souhaitez exploiter l’espace nouvellement disponible sans redémarrage. Selon l’organisation des volumes, deux cas se présentent :

  • Partition directe : le filesystem est posé directement sur une partition (ex : /dev/sda2), sans couche intermédiaire.
  • LVM : la partition est un Physical Volume, et le filesystem est sur un Logical Volume.

Dans les deux cas, la logique est la même : agrandir la partition physique, puis propager l’agrandissement vers le haut de la pile.

Prérequis : vérifier l’état actuel

Commencez par vous orienter :

lsblk
fdisk -l /dev/sda

Repérez la taille totale du disque, les partitions existantes, et l’espace libre disponible en fin de disque (non alloué).


Cas 1 – Partition directe (sans LVM)

Dans ce cas, /dev/sda2 monte directement / avec un filesystem ext4 (ou xfs).

Étape 1 : agrandir la partition

L’outil growpart (paquet cloud-guest-utils) est la méthode la plus simple et la plus sûre :

apt install cloud-guest-utils
growpart /dev/sda 2

Notez l’espace entre le disque (/dev/sda) et le numéro de partition (2). growpart étend la partition pour qu’elle occupe tout l’espace libre qui la suit sur le disque.

Alternative avec parted si growpart n’est pas disponible :

parted /dev/sda resizepart 2 100%

Étape 2 : agrandir le filesystem

Pour ext4resize2fs supporte le redimensionnement en ligne, sans démontage :

resize2fs /dev/sda2

Pour XFS — passer le point de montage, pas le device :

xfs_growfs /

Vérification

df -h /
lsblk

La partition /dev/sda2 et le filesystem / doivent maintenant afficher la nouvelle taille.


Cas 2 – Avec LVM

Ici, /dev/sda2 est un Physical Volume (PV) LVM. Le filesystem est posé sur un Logical Volume (LV). La pile est : partition → PV → VG → LV → filesystem. Il faut propager l’agrandissement à chaque couche.

Commencez par identifier les noms de votre VG et LV :

pvs
vgs
lvs

Notez le nom du Volume Group (souvent debian-vg sous Debian) et du Logical Volume racine (souvent root).

Étape 1 : agrandir la partition

Même opération que dans le cas 1 :

apt install cloud-guest-utils
growpart /dev/sda 2

Étape 2 : agrandir le Physical Volume

Informez LVM de la nouvelle taille disponible sur la partition :

pvresize /dev/sda2

Vérifiez que le PV a bien gagné en espace libre :

pvs

La colonne PFree doit maintenant afficher l’espace libéré.

Étape 3 : agrandir le Logical Volume

Étendez le LV pour absorber tout l’espace libre du VG (adaptez les noms à votre configuration) :

lvextend -l +100%FREE /dev/debian-vg/root

Pour allouer une valeur fixe (exemple : ajouter 50 Go) :

lvextend -L +50G /dev/debian-vg/root

Étape 4 : agrandir le filesystem

Pour ext4 :

resize2fs /dev/debian-vg/root

Pour XFS :

xfs_growfs /

Vérification complète

pvs
vgs
lvs
df -h /
lsblk

Récapitulatif des commandes

Sans LVM (ext4) :

apt install cloud-guest-utils
growpart /dev/sda 2
resize2fs /dev/sda2
df -h /

Avec LVM (ext4) :

apt install cloud-guest-utils
growpart /dev/sda 2
pvresize /dev/sda2
lvextend -l +100%FREE /dev/debian-vg/root
resize2fs /dev/debian-vg/root
df -h /

Points de vigilance

  • Espace libre en fin de disque : growpart ne peut étendre une partition que si l’espace libre se trouve immédiatement après elle sur le disque. Si une autre partition suit, ce n’est pas possible sans la déplacer au préalable.
  • resize2fs fonctionne en ligne sur ext4 : pas besoin de démonter /. Pour XFS, xfs_growfs fonctionne également sur un filesystem monté.
  • Noms LVM variables : sous Debian, le VG s’appelle souvent debian-vg et le LV racine root, mais ce n’est pas systématique. Toujours vérifier avec lvs avant d’agir.
  • Vérifier le type de partition : si le disque utilise GPT (machines modernes, VMs récentes), growpart et parted fonctionnent tous les deux. Si c’est MBR (dos), growpart est préférable.
  • Pas de redémarrage nécessaire : toutes ces opérations s’effectuent sur un système en production, sans interruption de service.