Por que não consigo redimensionar um comando VDI dinâmico com o comando modifyhd?

17

Eu vejo aqui Como eu aumento o tamanho do disco rígido da máquina virtual .

Deve funcionar com um comando como

VBoxManage modifyhd xp.vdi --resize 2000

Quando o VDI tem um tamanho fixo, você pode obter este erro:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

A discusão e solução para isso é aqui .

Mas recebo esse erro enquanto meu VDI é dinâmico

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

Por que isso?

    
por cipricus 21.10.2014 / 22:09

3 respostas

17

Para usar VBoxManage modifyhd , temos as seguintes ressalvas:

  • As unidades precisam estar no formato .VDI ou .VHD.
  • As unidades devem estar em formato dinâmico, não fixas (um disco fixo pode ser convertido em dinâmico criando um clone).
  • O tamanho do disco só afeta o tamanho lógico , não o tamanho físico.
  • Não é possível encolher uma campanha para igual ou abaixo do tamanho físico.
  • Para reduzir o tamanho físico temos que preencher espaço em disco não utilizado com 0 .
  • Um Windows VDI talvez precise ser desfragmentado antes de diminuir seu tamanho físico.

No exemplo acima, tentou-se redimensionar um disco dinâmico com tamanho físico de 4693 MB a 2000 MB, o que não é possível. Daí o erro.

    
por Takkat 21.10.2014 / 23:06
13

Esta solução funcionou para mim:

  1. Desligar a máquina
  2. Crie uma nova unidade através da interface administrativa com o tamanho desejado
  3. Use o VmlManage clonemedium com a bandeira --existing

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

Observação : agora, o novo disco estará ocupando o espaço excedente como não alocado, e você precisará usar o gparted para estender o tamanho ao máximo.

Não sei por que os caras do VirtualBox não puderam usar o acima para implementar isso em vez de lançar VBOX_E_NOT_SUPPORTED ... pelo menos link para isso:)

    
por ripper234 17.07.2016 / 10:33
2

Aqui está todo o processo, tentarei ser o mais detalhado possível

  1. Certifique-se de que a máquina em que você vai crescer em tamanho esteja no estado "Desligamento" (não em "salvo" ou em qualquer outro estado)

No meu caso, é uma máquina de 32 GB e vai chamar de SMALL VM

  1. Crie uma nova máquina virtual com o novo tamanho desejado

No meu caso , decidi fazer uma nova máquina virtual de 70 GB, enquanto restaurava o conteúdo da pequena máquina dentro dessa nova VM e me referiria a ela como a LARGE VM

  1. Abra o Gerenciador de mídia virtual e copie o GUID da VM SMALL (origem) e copie também o GUID da VM LARGE ( destino)

Com esses GUIDs, crie o seguinte comando

Vonso do Clone de VBoxManage SMALL_VM_GUID LARGE_VM_GUID --existente

No meu caso, ORIGIN - SMALL VM é: 39143127-42b6-478a-afb2-5e58f14218b

No meu caso DESINATION - LARGE VM é: bb808b5b-b88c-49b2-a646-3414af906d84

É claro que seus guias serão diferentes do meu

Certifique-se de não inverter os GUIDs, caso contrário, a nova máquina substituirá o conteúdo da sua máquina existente !!!!

Depois de verificar se você não misturou origem com destino, execute este comando:

  

$ VBoxManage clonemedium 39143127-42b6-478a-afb2-5e58f14218b2   bb808b5b-b88c-49b2-a646-3414af906d84 --existente

     

0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% 100%

     

Meio do clone criado no formato 'VDI'. UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Inicie a nova VM GRANDE criada na etapa 2.

  2. Verifique na ferramenta da janela Gerenciamento do Computador que a máquina possui, de fato, mais espaço não utilizado / sem formatação

  3. Se preferir, pode-se excluir o "chkdsk" na unidade C para ter certeza de que tudo está pronto (isso pode fazer duas reinicializações na VM LARGE )

  4. Usando o gparted-live * .iso, "insira-o" na nova máquina virtual e reinicie-o

  5. Inicialize no ambiente do gparted

  6. Cresça sua partição e salve as alterações

  7. "Ejete" o gparted-live * .iso para inicializar novamente no Windows

  8. Verifique na ferramenta da janela Gerenciamento do Computador que a máquina agora possui uma unidade C maior para resolver seus problemas com a peça

  9. Aproveite e deixe-me saber o que você pensa sobre essas etapas

Eu tenho as capturas de tela desses processos, mas decidi não incluí-las, pois isso tornará minha resposta grande e intimidadora para as pessoas que estão "com pressa" de obter espaço livre em sua máquina virtual do Windows

    
por Mauricio Gracia Gutierrez 06.06.2018 / 04:52