Étendre un disque principal à chaud sous Linux sans perte de données

Lorsqu’une machine virtuelle (VM) hébergée sur XCP-ng atteint la limite de l’espace disque disponible, il est possible d’étendre dynamiquement son volume principal sans perte de données. Ce tutoriel décrit l’ensemble des étapes nécessaires pour augmenter la taille d’un disque principal contenant un système de fichiers EXT4, en ligne de commande, et dans des conditions réelles.

Exemple utilisé : une VM Debian 12 avec un disque virtuel initialement configuré à 49 Go, étendu à 100 Go via l’interface de gestion XCP-ng.

Prérequis

  • Une VM Linux avec accès root ou sudo
  • Un disque virtuel étendu (depuis l’hyperviseur)
  • Le paquet cloud-guest-utils installé :
sudo apt install cloud-guest-utils

Vérifier l’état initial du disque

Avant toute modification, il est recommandé de visualiser l’état actuel du disque :

lsblk

Exemple de sortie :

xvda            202:0    0  100G  0 disk
├─xvda1         202:1    0   49G  0 part /
├─xvda2         202:2    0    1K  0 part
└─xvda5         202:5    0  975M  0 part [SWAP]

Faut-il supprimer la partition principale ?

Dans la majorité des cas, la suppression de la partition principale xvda1 n’est pas requise si elle est en début de disque et qu’aucune autre partition ne bloque son extension.

Cas où la suppression n’est pas nécessaire :

  • xvda1 est la première partition
  • Il n’existe aucune autre partition après elle

Cas où la suppression est nécessaire :

  • Une autre partition bloque l’extension
  • La commande growpart échoue avec un message du type :
NOCHANGE: partition 1 could only be grown by 2046 [fudge=2048]

Suppression des partitions bloquantes

  1. Désactiver le swap :
sudo swapoff -a
  1. Lancer fdisk :
sudo fdisk /dev/xvda

Dans fdisk :

  • Taper p pour afficher la table
  • Supprimer les partitions 5 (swap) puis 2 (étendue)
  • Écrire avec w
  1. Recharger la table de partition :
sudo partprobe

Extension de la partition principale

  1. Étendre la partition avec growpart :
sudo growpart /dev/xvda 1
  1. Étendre le système de fichiers EXT4 :
sudo resize2fs /dev/xvda1

Vérification

df -h /

Exemple de sortie :

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       99G   37G   58G  39% /

Recréer un fichier de swap

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Ajouter au fichier /etc/fstab :

/swapfile none swap sw 0 0

Vérifier avec :

free -h
               total        used        free      shared  buff/cache   available
Mem:            11Gi       6.6Gi        181Mi       276Mi       5.5Gi       5.1Gi
Échange:       1.0Gi        106Mi        917Mi

Conclusion

Étendre un disque principal sous Linux dans une machine virtuelle XCP-ng peut être effectué sans perte de données en supprimant uniquement les partitions bloquantes et en étendant intelligemment la partition racine. Cette méthode permet d’éviter toute réinstallation ou manipulation risquée, tout en maintenant un système stable et fonctionnel.

5/5 - (1 vote)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles de la même catégorie

Retour en haut