Eu prefiro jkdefrag fazer meu trabalho de desfragmentação. Nunca usei em uma VM exatamente o que você quer fazer, mas pode valer a pena.
Eu tenho uma máquina Windows XP VirtualPC com um disco rígido virtual. É um disco dinâmico, o que significa que se expande conforme necessário.
Neste momento, é cerca de 13.8GB, principalmente porque eu fiz um monte de coisas para ele.
Há apenas cerca de 9 GB de material, menos quando eu limpo um pouco mais.
Eu tentei desfragmentar o disco usando o desfragmentador interno do XP e ele mostra uma enorme lacuna no layout do disco - provavelmente todas as coisas que eu removi.
No entanto, depois de desfragmentar a lacuna gigante ainda está lá, embora, obviamente, alguma desfragmentação ocorreu.
Meu raciocínio é: se eu conseguisse que esse disco realmente desfragmentasse completamente, eu poderia compactar a imagem e recuperar o tamanho do arquivo. E como o objetivo final é distribuir isso para alguns colegas de trabalho, isso seria uma grande vantagem.
Então - existem ferramentas de desfragmentação gratuitas que fazem um trabalho completo?
Jeff escreveu sobre como fazer Máquinas virtuais menores e sugeriu o uso do Whitney Defrag. Nos comentários, John Mitchell sugeriu o uso do SDelete, (para escrever zeros no espaço vazio para auxiliar a compressão), como uma alternativa livre ao que Jeff recomenda em sua etapa 5.
A melhor ferramenta de desfragmentação de janelas que usei é o Diskeeper. Não é barato, mas faz bem o trabalho.
Eles têm versões específicas para ambientes virtuais, mas eu usei apenas as versões independentes.