Hyper-V: Risolvere il Problema dello Shrink VHDX

Come ormai tutti sanno, da Windows Server 2012 è possibile effettuare lo Shrink dei volumi VHDX a caldo, anche per il disco del sistema operativo, a patto che questo sia configurato in una macchina virtuale generazione 2. Per chi non sapesse a cosa serve lo Shrink, è un’operazione di riduzione dello spazio disco per ottimizzare le risorse, magari causato da un sovradimensionamento iniziale.

Tuttavia è possibile che l’operazione di riduzione non avvenga nel modo corretto, pur avendo seguito la corretta procedura. Nel mio caso avevo una virtual machine, Windows Server 2016, con uno spazio impiegato di 26GB, come mostra la figura 1.

2016_11_27_vhdx-01

Figura 1 – Volume Virtuale

Il file VHDX, però, risultata molto più grande….addirittura il triplo!

2016_11_27_vhdx-02

Figura 2 – File VHDX

Benché ho provato più volte la procedura di Shrink, il risultato non è cambiato. Evidentemente qualche blocco è rimasto bloccato alla fine del file VHDX, cosa che non permette di riallocare correttamente i blocchi e di ottimizzare lo spazio. Per sbloccare la situazione ho montato il file VHDX direttamente dall’hypervisor in modalità Read-Only, come mostra la figura 3.

2016_11_27_vhdx-03

Figura 3 – VHDX Mount

Dopo averlo smontato ho rieseguito la procedura di Shrink ed il risultato finale è stato quello di riportare il valore del file a quello realmente utilizzato all’interno della macchina virtuale, come mostra la figura 4.

2016_11_27_vhdx-04

Figura 4 – File VHDX