Une VM Debian utilisée pour des tests peut finir avec un VMDK bien plus lourd que les données qu’elle contient réellement.
Même après avoir supprimé des fichiers dans Debian, l’espace libéré reste souvent présent dans le disque virtuel. Pour une VM que l’on souhaite archiver, quelques commandes permettent de récupérer cette place avec VMware Virtual Disk Manager.
Nettoyer Debian
On supprime les paquets inutiles, les caches et les anciens journaux.
Libérer les blocs
On remplit temporairement l’espace libre avec des zéros pour le rendre récupérable.
Compacter le VMDK
VMware retire les blocs inutilisés du fichier avant son archivage.
Compacter n’est pas redimensionner
La commande vmware-vdiskmanager -k réduit la place occupée par un VMDK extensible sur le disque
de l’hôte. Elle ne change pas sa capacité maximale visible dans Debian.
Avant de commencer
Cette méthode convient surtout à un VMDK extensible stocké localement avec VMware Workstation.
Si VMware Workstation est installé sur votre PC, vmware-vdiskmanager.exe est normalement déjà disponible. Sinon, Broadcom propose également le VMware Virtual Disk Development Kit (VDDK), qui regroupe des bibliothèques et utilitaires pour manipuler les disques virtuels VMware.
Avant toute manipulation :
- ➡️ sauvegardez la VM
- ➡️ supprimez ou consolidez ses snapshots
- ➡️ vérifiez que l’hôte dispose de suffisamment d’espace libre
- ➡️ arrêtez les services importants dans Debian
Ne travaillez jamais sur l’unique copie
Le remplissage de l’espace libre et le compactage sollicitent fortement le disque. Une sauvegarde reste indispensable avant de préparer une VM pour archivage.
1. Nettoyer Debian
Dans la VM, on commence par retirer ce qui ne mérite pas d’être archivé :
sudo apt clean
sudo apt autoremove --purge
sudo journalctl --vacuum-time=7d
On peut ensuite vérifier l’espace réellement utilisé :
df -h /
2. Remplir l’espace libre avec des zéros
Pour que VMware distingue les blocs devenus inutiles, on crée temporairement un gros fichier rempli de zéros :
sudo dd if=/dev/zero of=/zero.fill bs=1M status=progress || true
sudo rm -f /zero.fill
sync
La commande dd se termine normalement avec une erreur indiquant que le disque est plein. C’est attendu : le fichier est supprimé juste après.
À faire juste avant l’arrêt
Pendant cette étape, la partition atteint temporairement 100 %. Ne laissez pas tourner la VM ainsi et évitez toute écriture importante en parallèle.
3. Arrêter complètement la VM
Une fois le nettoyage terminé :
sudo shutdown -h now
Dans VMware Workstation, vérifiez que la VM est bien éteinte, pas suspendue.
4. Compacter le VMDK
Sur l’hôte Windows, ouvrez PowerShell. Si vous ne connaissez pas l’emplacement de l’utilitaire, recherchez-le dans les dossiers principaux :
Get-ChildItem "C:\Program Files","C:\Program Files (x86)","C:\Tools" -Recurse -Filter vmware-vdiskmanager.exe -ErrorAction SilentlyContinue
Avec VMware Workstation, il se trouve généralement ici :
C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe
Option A : compacter le VMDK directement
La méthode la plus rapide consiste à compacter le disque existant avec l’option -k :
& "C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -k "D:\VM\Debian\Debian.vmdk"
Pour un disque découpé en plusieurs fichiers, ciblez le fichier descripteur principal Debian.vmdk, pas les fichiers -s001.vmdk, -s002.vmdk, etc.
Option B : créer un nouveau VMDK compact
Pour conserver le disque source intact, l’option -r permet de le convertir vers un nouveau VMDK extensible monolithique avec -t 0 :
& "C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -r "D:\VM\Debian\Debian.vmdk" -t 0 "E:\VM\Debian-compact\Debian.vmdk"
La méthode prudente
La conversion vers un nouveau fichier permet de garder le VMDK original jusqu’à validation de la copie. Elle nécessite toutefois assez d’espace libre sur le disque de destination.
Une fois l’opération terminée, comparez la taille du dossier de la VM avant et après compactage.
Le résultat
Le gain dépend de l’historique de la VM. Une machine qui a téléchargé puis supprimé beaucoup de données peut perdre plusieurs gigaoctets, tandis qu’une VM déjà compacte changera peu.
La capacité virtuelle reste identique, mais le VMDK occupe moins de place sur l’hôte : exactement ce qu’il faut avant de copier ou compresser une VM d’archive.
Cet article vous a-t-il été utile ?
Votre retour aide à mieux choisir les prochains sujets.
0 retour