Como diminuir o tamanho de um arquivo VHD / VHDX

Este post é, de certa forma, uma continuação do post de ontem.

Depois que resolvi o problema do desfragmentador, descobri que ainda assim não conseguia diminuir meu VHD. Não importava o que eu fizesse, o tamanho continua em 127 GB.

Até que eu descobri a solução para o problema.

Mesmo desfragmentando o disco (rodando o Defrag dentro da VM), desligando a VM e usando o comando Compact do Hyper-V, não adiantava. O tamanho continuava o mesmo.

A solução é esquecer o Hyper-V e ir direto a quem resolve: a linha de comando Smile

Passo 1: Otimizar o disco virtual

Abra um prompt elevado e digite:

diskpart

select vdisk file="c:\seu\arquivo.vhd"
attach vdisk
list volume

Neste ponto, o DISKPART irá listar os volumes montados em seu computador. O VHD que você acabou de montar deve ser o último volume. Verifique no seu caso qual a letra atribuída ao seu VHD e anote-a.

Disco virtual montado no host. Note que neste exemplo o volume é o G:
Disco virtual montado no host. Note que neste exemplo o volume é o G:

Agora você precisa desfragmentar o disco. Primeiramente digite exit para sair do DISKPART. A seguir, digite o seguinte comando:

defrag G: /o /v

Onde G: corresponde ao drive que você anotou na etapa anterior.

Passo 2: Compactar o disco virtual

Agora vamos terminar o processo no DISKPART. Basicamente o que vamos fazer é:

  • Desmontar o VHD (que está em modo read-write);
  • Remontar o VHD em modo read-only;
  • Compactar o VHD;
  • Desmontar o VHD.

De volta ao nosso prompt elevado, digite:

diskpart

detach disk

select vdisk file="c:\seu\arquivo.vhd"
attach vdisk readonly
compact vdisk
exit

Presto! Agora nosso VHD, que antes se recusava a sair dos 127 GB, chegou no tamanho “correto”:

image
376

 

Um abraço,
Igor

Autor: Igor Abade

Igor Abade V. Leite ([email protected]) é Microsoft MVP (Most Valuable Professional) de Visual Studio ALM desde 2006. Palestrante em diversos eventos da comunidade de desenvolvimento de software (TechEd Brasil, The Developers’ Conference, DevOps Summit Brasil, Agile Brazil, Visual Studio Summit, QCON e outros), é também autor de artigos em revistas e sites como o MSDN Brasil. Desde março de 2011 é um dos sócios da Lambda3, uma consultoria especializada em ALM, desenvolvimento de software e treinamentos. Visite seu blog sobre VS ALM em http://www.tshooter.com.br/ e siga-o no Twitter @igorabade.

3 comentários em “Como diminuir o tamanho de um arquivo VHD / VHDX”

  1. Parabens. Por mais simples que seja o procedimento, não vi alguem postar tão claro assim. Dois comentários: 1. a maior parte pode ser executada via interface gráfica. 2. Não é necessário attachar o VHD no modo R/O para compactar o volume. Abç

    1. Pietro, obrigado pelo elogio e pelas informações complementares! Costumo colocar instruções baseadas em linha de comando porque são mais consistentes para se reproduzir, mas você tem razão: daria para fazer pela interface gráfica.

Deixe seu comentário!