Como reduzir o tamanho do disco do VMware

15

Meu disco VMware de imagem do Ubuntu cresceu para 5 GB de tamanho físico. É um disco que cresce dinamicamente com capacidade máxima de 8 GB. Limpei algumas coisas dentro da distribuição Linux e agora ela ocupa 3 GB. Obviamente, o tamanho do arquivo físico não diminuiu automaticamente. Existe uma maneira (se possível gratuitamente) de reduzir esse disco de volta para ~ 3 GB?

Eu preciso disso para ajustar a imagem no DVD.

Marcin Rybacki
fonte

Respostas:

21

Existem três etapas:

  1. Desfragmentar (não é necessário desmontar / remontar nada)

    sudo e4defrag /

    Ignore os erros. Alguns arquivos, como links simbólicos e arquivos de dispositivos, não podem ser desfragmentados.

  2. Preencher com zero todo o espaço não utilizado, para que a VMware saiba que é realmente não utilizado:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  3. Execute a operação de redução:

    sudo vmware-toolbox-cmd disk shrinkonly

Tom Hale
fonte
Esta é a resposta correta para o VMWare Workstation. Obrigado cara, me ajudou muito!
Clonkex
Corrigir. Funciona bem no VMWare Workstation 14, Centos 7 Convidado
odiszapc
1
tenha cuidado se você executar isso com qualquer montado volumes externos, como S3 - o comando zero fill vai tentar criar um wipefile 256TB em seu balde S3 ...
paj
Trabalhou para mim no host do Windows 10 e no convidado do Ubuntu 16. No começo, pensei que a etapa 3 deveria ser executada no host, mas eu estava errado. Depois de todos os passos que eu também executar a verificação do sistema de arquivos, como descrito aqui: askubuntu.com/a/953750/590877
Alex Che
1
+1, no entanto Acho que usando zerofree para o passo 2 seria muito mais rápido e muito mais limpo: manpages.ubuntu.com/manpages/xenial/man8/zerofree.8.html
Étienne
15

Encontrei a solução - você precisa compactar seu disco rígido:

Máquina virtual - Configurações - Geral - Limpar máquina virtual

Marcin Rybacki
fonte
Uau. Finalmente eu encontrei esta resposta. Mas ... por que compactar o disco virtual não recupera o espaço livre?
Wizard79
8
Você precisa fazer isso de dentro do Ubuntu OS convidado (assumindo que você tenha o VMware Tools instalado): "vmware-toolbox-cmd disk shrink /", que deve fazer o trabalho.
DH4
Isso não se aplica ao ESXi. Para isso, veja minha resposta abaixo.
precisa saber é o seguinte
3

Abra o VMware Toolbox no convidado (como root) e reduza o disco. (Documentação)


Se você não possui o VMware Tools, poderá reduzir o disco manualmente em duas etapas. Primeiro, limpe o espaço livre no disco virtual usando uma ferramenta como o zerofree . O Zerofree está disponível no Ubuntu , mas como exige que o sistema de arquivos do SO convidado seja montado como somente leitura, você pode executá-lo em um CD ao vivo. Parted Magic supostamente inclui zerofree.

Após zerar o espaço livre, abra as Configurações da máquina virtual e compacte o disco virtual.

nandhp
fonte
3
A interface do usuário do vmware toolbox não existe mais, mas você ainda pode usar: "vmware-toolbox-cmd disk shrink /", que deve fazer o trabalho.
DH4
3

Usar

sudo vmware-toolbox-cmd disk shrinkonly

no prompt de comando do seu convidado do Ubuntu.

(Testado no Ubuntu 14.04 LTS guest + Windows 10 Host + VMWare Workstation 12.1.1)

YasharF
fonte
1

Redimensionamento do disco rígido do VMWare :

A expansão do disco rígido virtual dinâmico no VMWare é fácil e não requer mais a ferramenta de linha de comando vmware-vdiskmanager.exelocalizada por padrão em C:\Program Files\VMware\VMware Workstation\.

Para redimensionar, use o seguinte comando (abra um prompt de comando pressionando WIN + R e digite cmd): " C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk"

Procedimento :

Os seguintes passos são:

  • Faça o download aqui
  • Instalar
  • Aberto
  • Escolha a partição, clique em Redimensionar / Mover, arraste a alça para sua largura total
  • Clique em Aplicar
  • Concorda em reiniciar
  • Durante a inicialização, não pressione nenhuma tecla
  • Deixe o módulo de inicialização executar sua tarefa
  • Verifique se o tamanho da partição do sistema Windows aumentou.

Para um resumo visual das etapas e informações adicionais, clique aqui .

Lorenz Lo Sauer
fonte
0

Essas etapas funcionaram perfeitamente para mim:

1) Espaço não utilizado de preenchimento zero

cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

2) Encolher o disco com a caixa de ferramentas vmware

sudo vmware-toolbox-cmd disk shrink /

Testado no Ubuntu 16.04, VMware Workstation 12.1.0 Player, Windows 7 Host

dontbyteme
fonte
0

É possível reduzir os discos no ESXi.

  1. Encontre o arquivo grande e exclua-o.

    find / -type f -size + 50M

  2. Desfragmentar (não é necessário desmontar / remontar nada). Ignore os erros. Alguns arquivos, como links simbólicos e arquivos de dispositivos, não podem ser desfragmentados.

    sudo e4defrag /

  3. Preencher com zero todo o espaço não utilizado, para que a VMware saiba que é realmente não utilizado:

    dd se = / dev / zero de = arquivo de limpeza bs = 1M; sincronizar; arquivo de limpeza rm

  4. Execute a operação de redução: Se 4 falhar, prossiga para 5.

    disco sudo vmware-toolbox-cmd shrinkonly

  5. Reinicie o sistema linux com a opção try e edite a tabela de partições com o gparted. Reduza o sistema de arquivos raiz e exclua e mova a partição swap para perto da partição raiz.

  6. SSH para ESXi e emita este comando:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. Precisamos editar o arquivo * .vmdk. Após as letras RW, define o tamanho do disco virtual VMware (VMDK)

    * 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Migre-o para outro armazenamento de dados para refletir o novo tamanho.

Kondapaneni
fonte
(1) A questão não é sobre como diminuir o uso do sistema de arquivos; diz que o OP já fez isso. Portanto, seu findcomando não é realmente relevante. (2) O que vmkfstools -Kfaz? (3) Editar manualmente um arquivo? Verdade? (4) Não entendo suas instruções para quais alterações o usuário precisa fazer no arquivo. (5) O que você está dizendo sobre a migração para outro armazenamento de dados? (0) A maior parte do que você diz já foi coberta. …………………………………………………… Por favor não responda nos comentários; edite  sua resposta para torná-la mais clara e completa.
Scott
Bem, eu sou um cara da VMware (eu acho que qualquer um que tente isso também deveria ser). Portanto, essa resposta não é apenas a ÚNICA que se aplica ao ESXi (já que o ESXi NÃO suporta convidados linux reduzidos via vmtools), mas finalmente se tornou perfeito sentido para mim. Com isso dito, a etapa 7 não é apenas desnecessária, é apenas incorreta. Como a redução não altera o tamanho real do VOLUME, você simplesmente para após a etapa 6. A etapa 8 (migração do armazenamento) é usada apenas quando você deseja reduzir um disco SEM executar vmkfstools, que cuida forçosamente do motivo, e é por isso que essa solução também requer etapas 5a-DESLIGUE o convidado.
precisa saber é o seguinte
Veja minha resposta acima. O cmd baseado em vmtools listado na etapa 5 também está incorreto, pois nunca foi suportado (ou até funciona) em QUALQUER cenário do host ESXi.
precisa saber é o seguinte
0

Afinando (diminuindo) os discos VMDK no ESXi / vSphere Linux Guests

Nota: "Encolhimento" é frequentemente usado de forma intercambiável para se referir ao processo de redução do tamanho de um arquivo de disco do tipo fino. VMware usa o termo "encolher" para se referir à redução do tamanho subjacente do disco disponível para o convidado e "thinning" como o processo mais tendente a recapturar o espaço não utilizado sem alterar o tamanho disponível subjacente.

Como o ESXi não oferece suporte à redução baseada em vmtools em convidados Linux, as seguintes etapas devem ser usadas. Consulte o link de referência abaixo para obter mais informações.

  1. (se possível) Pare todos os aplicativos e serviços que exigem muita gravação em disco, pois as etapas a seguir preencherão momentaneamente o volume de destino

  2. Desfragmente o (s) volume (s) no VMDK de destino e ignore os erros como links simbólicos / arquivos de dispositivos / etc. não pode ser desfragmentado.

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. Preencher com zero todo o espaço não utilizado:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. Desligar e desligar o convidado

  2. SSH para o host ESXi e emita estes comandos:

    # Check current vmdk allocation
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Shrink it
    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Check again to verify shrinkage
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
  1. Ligue o convidado

Fonte

https://kb.vmware.com/s/article/1002019

A exclusão de arquivos na maioria dos sistemas de arquivos não os removerá completamente; apenas tabelas de arquivos serão alteradas. O uso de utilitários de exclusão segura de arquivos freeware é útil, como Eraser ou SDelete, para zerar o espaço para 'zerar' o espaço livre no volume, limpando efetivamente o espaço livre de dados. É então que o disco pode ser adequadamente diluído. Em seguida, você pode usar o comando vmkfstools -K (ESXi / ESX 4.1 e posterior) para concluir a recuperação de bloco ou usar o Storage vMotion para migrar a máquina virtual para um armazenamento de dados com tamanho de bloco VMFS diferente.

Collin Chaffin
fonte