Redimensionner un disque dur virtuel VMware VMDK ayant une partition LVM

Attention ! Avant de commencer, il faut savoir que cette opération n’est pas sans risque car nous allons toucher à la structure du disque dur, des pertes de données sont donc possible. Cependant, la procédure décrite ci-dessous a été testée à plusieurs reprises sur des machines en production sans présenter de soucis.

Présentation

Mon disque dur virtuel VMDK de 4 Go dispose de l’organisation suivante :

  • Une seule et unique partition nommée « sda1 » occupant tout l’espace,
  • Un groupe LVM « vg0 » utilisant tout « sda1 »,
  • Deux volumes LVM nommés « lv_root » (3,72 Go) et « lv_swap » (280 Mo) sont présents sur « vg0 »

Partitionnement disque LVM

Procédure

Tout d’abord, il faut commencer par éteindre la machine virtuelle afin de pouvoir augmenter la taille du disque. Dans mon cas, j’ai édité les paramètres de ma machine virtuelle pour faire passer le disque dur de 4 Go à 8 Go. Il faut savoir que le disque ne peut dépasser une taille de 2 To, et qu’il est impossible de le réduire par la suite.

Nous pouvons à présent démarrer la machine virtuelle pour continuer le travail et commencer en utilisant l’outil « fdisk » pour modifier la table des partitions.

fdisk /dev/sda

  • p pour afficher la table des partitions
  • d et choisir la partition 1 et supprimer
  • n, p, 1 pour créer (ici il proposera de prendre tout l’espace disponible, 2x Entrée pour valider le secteur de début et de fin)
  • t, 8e changer type (LVM)
  • p pour afficher nouvelle table
  • w

A nouveau, une redémarrage pour que la machine prenne en compte totalement le changement de taille.

reboot

La commande « pvdisplay » doit pour le moment retourner une taille de 4 Go.

pvdisplay

On va demander à vg0 de prendre la taille de « sda1 ».

pvresize vg0 /dev/sda1

Cette fois, « pvdisplay » doit nous retourner une taille de 8 Go.

pvdisplay

Pour connaitre précisément la taille restante disponible, utilisez la commande suivante et relevez la valeur de la colonne « PFree ».

pvs

On peut maintenant étendre le volume « lv_root » à la taille voulue.

lvextend -L +4G /dev/vg0/lv_root

On demande au système de fichier de « lv_root » de prendre en compte sa nouvelle taille.

resize2fs /dev/vg0/lv_root

Enfin, on vérifie nos changements sur « lv_root ».

lvdisplay

Liens utiles