Solución:
Apague su VM, haga una copia de seguridad del VHD y ejecute otra máquina virtual (yo uso SystemRescueCD ya que es pequeño y rápido) que tiene la partición ext4 disponible, es decir, un HD para SysRescue (¡pero no lo monte!). Desde SysRescue VM, ejecute ‘zerofree’ en la partición ext4, apague esa VM y luego use su sitio web de administración para compactar el VHD.
Puedo confirmar: zerofree está trabajando para compactar archivos de disco virtual
PERO: no necesita usar ningún CD de rescate o montar el VHDX en otra máquina virtual:
sudo apt-get install zerofree
Arranque en modo seguro, luego ejecute:
zerofree /dev/sda1
Después de eso, tenemos que iniciar la optimización para el archivo del disco virtual. En el servidor que aloja el archivo VHDX, cree el siguiente archivo ShrinkVhdx.ps1:
[CmdletBinding()]
Param(
$VHDFiles
)
#Find the disks
foreach($VHD in $VHDFiles){
Write-Verbose "Working on $VHD, please wait"
Write-Verbose "Current size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
Mount-VHD -Path $VHD -NoDriveLetter -ReadOnly
Optimize-VHD -Path $VHD -Mode Full
Write-Verbose "Optimize size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
Dismount-VHD -Path $VHD
Write-Verbose ""
}
Y ahora ejecute el archivo y disfrute del espacio en disco liberado 🙂
ShrinkVhdx.ps1 .hdd1.vhdx