Virtual Machine Windows, recuperare spazio

Virtual Machine

Le Virtual Machine sono molto comode, permettono di fare un backup dell’intera macchina e ripristinare un sistema in poco tempo in caso di problemi. Si possono testare aggiornamenti critici del sistema e tornare sui propri passi se qualcosa va storto.

Quando si crea una virtual machine, la scelta ideale per il disco è crearne uno con dimensione dinamica. Questo vuol dire che il disco può essere ad esempio di 1Tb ma occupare sul disco solo lo spazio dei file che effettivamente ci sono dentro, per espandersi poi all’occorrenza in base all’uso.

Gestisco un server da diversi anni, una VM Windows 10 su una macchina host Linux con Ubuntu server e VirtualBox come Hypervisor.

Ebbene, all’inizio la macchina windows con installazione pulita occupava solo 50Gb. Col tempo, dopo aggiornamenti e utilizzo, il disco virtuale ha raggiunto i 750 Gb anche se effettivamente a livello logico (nella macchina Guest) lo spazio occupato è di soli 288 Gb.

Ebbene, c’è un modo per portare la macchina virtuale ad occupare soli 288 Gb utilizzando il comando compact messo a disposizione da virtualbox.

Comprimere un disco vdi dinamico

Prima di eseguire qualsiasi operazione mi raccomando, fate un backup.

Per prima cosa bisogna preparare il sistema guest. Questa guida è solo per Virtual Machine Windows ma si può fare anche su Linux. Nel sistema guest dovete utilizzare il tool sdelete, lo trovate su https://learn.microsoft.com/en-us/sysinternals/downloads/sdelete. Vi basterà digitare nella cmd di Windows, come amministratore il comando sdelete -z C: (la lettera del disco potrebbe essere diversa, ma di default dovrebbe essere C).

Con questo comando tutto lo spazio libero del disco sarà impostato a 0 (quando cancellate qualcosa questa non scompare dal disco, viene cancellato solo il collegamento, con sdelete invece verrà eliminato fisicamente il file dal disco).

Dopo aver eseguito sdelete, dovete lanciare il tool di deframmentazione di windows e fare un bel defrag, potete farlo anche da cmd digitando defrag C:

Infine possiamo procedere a compattare il file disco vdi. Spegniamo la macchina virtuale, lanciamo il terminale sul sistema host (per linux il terminale, per windows la cmd) e digitiamo

vboxmanage modifymedium --compact /path/to/thedisk.vdi

Alla fine del processo la vostra macchina virtuale sarà molto più leggera.