Augmenter la taille d’un disque virtuel vdi sous VirtualBox

Il m’arrive fréquemment d’utiliser des machines virtuelles pour tester tout un tas de choses.
Par défaut, je donne en général 8Giga maximum au disque dur virtuel.
Il est vrai qu’en n’allouant pas la place tout de suite je pourrais être moins avare en disque, mais cela me permet aussi de bien maitriser le volume total qui pourra être utilisé par les machines virtuelles.

Malheureusement, 8 Giga ne sont pas toujours suffisant. Deux solutions s’offrent à nous :

1) Ajouter un nouveau vdi en plus de l’existant
2) étendre le disque virtuel existant

La première solution c’est comme si vous ajoutiez un nouveau disque dur à votre ordinateur.
Il suffit donc d’ajouter un nouveau vdi, et sur la machine virtuelle ajouter le nouveau disque à LVM il vous restera ensuite à distribuer la volumétrie disponible au volume groupe et logique qui sont à l’étroit.

Je vais donc détailler la solution 2.

Étendre le disque virtuel

Cette solution n’est pas réalisable dans l’interface graphique, il sera nécessaire de passer par une ligne de commande

VBoxManage modifyhd MonDisque.vdi --resize 20000

Cette commande permet de redéfinir la taille du disque à 20 Giga.

Étendre sur la machine virtuelle

On constate bien dans VirtualBox que le disque est passé à 20 giga.

Créer une partition

Il est nécessaire de créer une partition dans l’espace disponible, je vous conseille si vous avez une interface graphique d’utiliser l’excellent Gparted, sinon il vous reste fdisk …


Ma machine virtuelle utilise LVM, il n’est donc pas nécessaire de formater la partition, ni de choisir un système de fichier.

LVM

L’objectif est maintenant d’ajouter la volumétrie au système grâce à LVM.
On peux le faire soit via l’interface graphique (system-config-lvm), soit directement ligne de commande. Je vous présente ci dessous les captures d’écran de la méthode par l’interface graphique ainsi que les commandes à lancer pour ceux qui doivent passer par le terminal.

Nous allons commencer par initialiser la volumétrie ajoutée.

Cliquer sur « initialiser l’entité ». Cela va créer un « volume physique » ce qui correspond à lancer la commande suivante :

# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created

On a maintenant un volume physique qui n’est pas alloué.

# pvs
PV         VG          Fmt  Attr PSize PFree
/dev/sda2  vg_fedora14 lvm2 a-   9,50g    0
/dev/sda3              lvm2 a-   9,53g 9,53g

On choisi donc d’ajouter le volume physique au « groupe de volume » existant (vg_fedora14 ici), ce qui se fera via la commande :

# vgextend vg_fedora14 /dev/sda3
Volume group "vg_fedora14" successfully extended

Il faut maintenant étendre le volume logique

Cliquer sur « éditer les propriétés » et choisir ce que vous désirez faire.
Ce qui correspond à la commande suivante :

# lvdisplay
--- Logical volume ---
LV Name                /dev/vg_fedora14/lv_root
VG Name                vg_fedora14
LV UUID                mB1JCC-N7VF-YSZA-IaTt-W3Ch-GylR-Czg7WB
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                7,56 GiB
Current LE             242
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:0

--- Logical volume ---
LV Name                /dev/vg_fedora14/lv_swap
VG Name                vg_fedora14
LV UUID                9NZFBl-T10T-Wdt5-2AIX-WTxI-NjxT-Ubp2TR
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                1,94 GiB
Current LE             62
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:1

Pour connaitre le nom des volumes logiques disponibles. Le volume que je compte étendre c’est « lv_root ».

# lvresize --size +5G /dev/vg_fedora14/lv_root
Extending logical volume lv_root to 12,56 GiB
Logical volume lv_root successfully resized

Il faut ensuite adapter la taille du filesystem au volume, grâce à la commande resize2fs :

# resize2fs /dev/vg_fedora14/lv_root
resize2fs 1.41.12 (17-May-2010)
Le système de fichiers de /dev/vg_fedora14/lv_root est monté sur / ; le changement de taille doit être effectué en ligne
old desc_blocks = 1, new_desc_blocks = 1
En train d'effectuer un changement de taille en ligne de /dev/vg_fedora14/lv_root vers 3293184 (4k) blocs.
Le système de fichiers /dev/vg_fedora14/lv_root a maintenant une taille de 3293184 blocs.

Et voila on a désormais un peu plus de place :

# df -h /
Sys. de fichiers                   Taille  Uti. Disp. Uti% Monté sur
/dev/mapper/vg_fedora14-lv_root       13G  6,2G  5,6G  53% /
Vus : 15240
Publié par C-quad : 36