VirtualBox : Réduire la taille d'un disque virtuel au format VDI

Liens :

http://www.kevinsubileau.fr/informatique/astuces-tutoriels/virtualbox-compacter-image-disque-vdi-dynamique.html

https://support.microsoft.com/fr-ca/help/12425/windows-10-free-up-drive-space

Présentation

Les images disques de taille allouée dynamiquement par VirtualBox sont créées avec une taille minimale et grandissent automatiquement au fur et à mesure que des données sont écrites. En revanche, lorsque des données sont supprimées du disque virtuel, l'espace ainsi libéré n'est pas restitué à la machine hôte.

Ces images disques vont régulièrement augmenter en taille jusqu'à atteindre leur taille maximale. De plus lors de 'exportation de la VM, la taille de l'archive OVA sera également disproportionnée.

Pour récupérer cet espace inutilisé dans le disque virtuel au niveau du disque physique et de l'archive OVA lors d'une exportation, vous devez :

supprimer dans votre VM les fichiers inutilisés ;

compacter manuellement l'image disque avec les solutions présentées ci-après.

Libérer de l’espace disque sous Windows 10

Lien : https://support.microsoft.com/fr-ca/help/12425/windows-10-free-up-drive-space

Préparation du disque virtuel

Il faut d'abord préparer le disque virtuel à compacter. En effet, le compactage fonctionne en supprimant de l'image les blocs ne contenant que des zéros. Or, lorsque des fichiers sont supprimés sur le disque virtuel, le système de fichiers ne met pas automatiquement à zéro la zone de stockage associée, et VirtualBox ne peut donc pas récupérer cet espace. Il faut donc au préalable mettre à zéro manuellement l'espace libre du disque virtuel à partir de la VM.

Depuis une machine virtuelle sous Windows

défragmenter le disque virtuel ;

téléchargez SDelete de Sysinternals puis lancez la commande suivante en précisant le disque à traiter :

sdelete -z c:

Compactage de l'image disque

Arrêtez la machine virtuelle ;

En invite de commandes depuis la machine hôte, lancez la commande suivante : <code shell> VBoxManage modifyhd [chemin-du-disque.vdi] –compact </code> Si le chemin d'installation de VirtualBox n'est pas dans votre PATH, vous devrez bien sûr indiquer le chemin complet de l'exécutable (par exemple, “C:\Program Files\Oracle\VirtualBox\VBoxManage.exe” par défaut sous Windows x64).

Notez que cette commande ne fonctionne pour le moment que sur les images disques au format VDI. Si votre image est dans un autre format, notamment VDMK, vous pouvez toutefois obtenir le même résultat en clonant l'image (avec l'option clonehd). Évidemment, vous devrez dans ce cas remplacer le disque original par son clone dans chacune des machines virtuelles qui l'utilisent.

De manière générale, la commande VBoxManage est vraiment très pratique et permet de réaliser de très nombreuses opérations en ligne de commande, dont certaines qui n'ont même pas d'équivalence dans l'interface graphique. On peut ainsi par exemple convertir une image de taille fixe à dynamique et inversement. Je vous conseille de parcourir la page de manuel associée pour découvrir toutes ces fonctionnalités.