
Problema
Quando se tem um Sistema operacional virtualizado, é comum faltar espaço em disco após sucessivas atualizações.
Este post retrata o seguinte cenário: a partir de um Windows 10, iremos expandir o Ubuntu Linux virtualizado (.vdi) do Oracle VM VirtualBox.
Solução
Em resumo, tudo o que você precisa fazer é executar um comando via Terminal (CMD) para (Passo 1) aumentar o tamanho do disco virtual e (Passo 2) depois expandir a partição com o GParted. Vamos lá:
Passo 1 | Aumentar o tamanho do disco virtual da sua VM
1.1 Abra o Terminal CMD como Administrador
Para isto, digite na busca do Windows “CMD” e quando aparecer a opção Command Prompt, clique nele com o botão direito e selecione “Executar como administrador“.
1.2 Acesse o diretório de instalação do seu VirtualBox
No CMD, posicione-se no diretório de instalação do seu VirtualBox, por default em C:\Program Files\Oracle\VirtualBox:
cd C:\Program Files\Oracle\VirtualBox |
1.3. Execute o comando para aumentar o tamanho do disco virtual da sua VM
Antes porém, se você não sabe onde sua VM está fisicamente salva no computador, é só dar uma olhada no VirtualBox e procurar por um arquivo .vdi, conforme a seguir:
Configurações > Armazenamento > Controladora: SATA > [SuaVM].vdi > Informações > Localização (Exemplo: D:\VM\Ubuntu\Ubuntu.vdi) |
O endereço para seu .vdi está no rótulo “Localização” (D:\VM\Ubuntu\Ubuntu.vdi):
Agora sim! Com esta informação do arquivo .vdi, basta executar o comando:
VBoxManage modifyhd D:\VM\Ubuntu\Ubuntu.vdi --resize 20480 |
Observação:
– Substitua “D:\VM\Ubuntu\Ubuntu.vdi” pelo caminho para seu .vdi. Neste exemplo estou aumentando o disco para 20gb (20gb x 1024mb = 20480).
– Note que inicialmente o “Tamanho Virtual” é de 12gb e no final chegaremos aos 20gb desejados.
Veja então como ficou todo o PASSO 1:
Passo 2 | Expandir a partição em todo o disco criado
Entendendo a solução:
Pode parecer estranho, mas o fato de você agora já ter um disco maior, não significa que o sistema de arquivos está ocupando todo esse espaço disponível.
Dê uma olhada na figura abaixo e veja como ficou o disco. Repare que tem 8gb livres, que é justamente o espaço que nós aumentamos, só que não está ocupado:
A pergunta aqui é: como unir aqueles 11gb com os 8gb se a partição “estendida + swap” está bem no meio?
Bem, para resolver isso, você vai excluir (e depois recriar) a partição swap e estendida usando o Gparted.
2.1 Instale o GParted
Na busca do Ubuntu, procure por “Software”. Clique no Ubuntu Software e procure por GParted, então, instale-o!
2.2 Remova a partição Swap + Estendida
Sem medo, remova a partição Swap e depois a Estendida que está entre a sua partição original (cheia) e o novo espaço criado (vazio), de modo que fique um grande bloco de espaço não alocado, conforme mostra figura abaixo:
2.3 Expanda a partição original
Utilizando o recurso gráfico do GParted (Resize/Move), posicione o mouse na divisão entre as partições e arraste a partição original (da esquerda para a direita) sobre o espaço não alocado, deixando apenas um espaço para posteriormente recriar a swap.
No meu caso, deixei no final do espaço não alocado (vazio), um espaço de 2048mb para recriar swap, representado pelo contorno azul claro na figura acima.
2.4 Recrie a partição Estendida + Swap
Clique no espaço não alocado que você reservou e então crie primeiro uma partição Estendida e depois uma Swap.
Verificando o resultado
Comparando as figuras do início do Post com as figuras abaixo, vemos que tanto o Gerenciador de disco do Ubuntu quanto o Virtual Box apontam que conseguimos o resultado esperado.
Gerenciador de disco do Ubuntu:
Virtual Box:
E é isso, esta feito!
Boa tarde Taylor,
Parabéns pelo tutorial. Me ajudou muito!!! Deus te abençoe.
Obrigado,
Matos
O único tutorial que realmente me ajudou. Obrigado mesmo!
O meu da esse erro:Syntax error: Invalid parameter ‘VMs\Ubuntu\Ubuntu.vdi’
Mesmo problema que acontece para mim.
Invalid parameter ‘VMs\Windows’
É pq o caminho (path) das suas máquinas virtuais contém espaço em branco. Eu tive o mesmo problema e resolvi tirando o espaço, e depois de pronto o procedimento, recoloquei o espaço, pois senão o VirtualBox não enxerga o local das máquinas.
Exemplo:
C:\Users\admin\VirtualBox VMS\Windows\Windows.vdi
Vá até a pasta, renomeie e tire o espaço em branco. Depois deixe assim o comando:
C:\Users\admin\VirtualBoxVMS\Windows\Windows.vdi
Ao concluir, renomeie novamente e recoloque o espaço em branco na pasta.
Coloca o caminho entre aspas duplas que resolve
Você é Dez. Obrigado. Funcionou.
Por aqui não rolou:
D:\Program Files\Oracle\VirtualBox>VBoxManage modifyhd D:\VirtualBoxVMs\Desenvolvimento\Desenvolvimento.vdi –resize 51200
VBoxManage.exe: error: Cannot register the hard disk ‘D:\VirtualBoxVMs\Desenvolvimento\Desenvolvimento.vdi’ {0d46624b-3753-40d0-a025-9f1f784e9885} because a hard disk ‘D:\VirtualBox VMs\Desenvolvimento\Desenvolvimento.vdi’ with UUID {0d46624b-3753-40d0-a025-9f1f784e9885} already exists
VBoxManage.exe: error: Details: code E_INVALIDARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee IUnknown
VBoxManage.exe: error: Context: “OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())” at line 179 of file VBoxManageDisk.cpp
Alguma dica?
Tenta assim:
VBoxManage modifyhd “D:\VirtualBoxVMs\Desenvolvimento\Desenvolvimento.vdi” –resize 51200
São dois hífens pra flag “–resize”
Aqui a parte de aumentar o HD físico funcionou, o virtual box mostra corretamente o tamanho selecionado, mas quando entro na VM o HD continua com o tamanho antigo… Mesmo o GParted não mostra o tamanho novo como sobressalente nem nada do tipo.
Antes de realizar o resize deve-se remover Snapshots criados.
Estou com o mesmo problema e não tenho snapshot como foi falado aqui que poderia ser um problema.
Galera que ta tendo o problema do parametro invalido
“Syntax error: Invalid parameter ‘VMs\Ubuntu\Ubuntu.vdi'”
Só colocar o caminho String, ou seja, entre aspas duplas!!
Valeu!
Muito Obrigado. Deu tudo certo aqui
Obrigado pela ajuda companheiro, me salvou no meu trabalho, pois na restauração pelo Acronis eu usei um disto de 15gb o detalhe e que eu atualizei todo o Windows e a net aqui na região de péssima…..
Senhores,
estou tentando realizar esse procedimento e ao executar aparece o erro abaixo:
(Sem aspas)
C:\Program Files\Oracle\VirtualBox>VBoxManage modifyhd C:\Users\Thiago\Documents
\VirtualBoxVMs\Windows7\Windows7.vdi –resize 102400
VBoxManage.exe: error: Cannot register the hard disk ‘C:\Users\Thiago\Documents\
VirtualBoxVMs\Windows7\Windows7.vdi’ {b3c1079d-ebde-4a24-b10a-16d41a723da7} beca
use a hard disk ‘C:\Users\thiago\Documents\VirtualBox VMs\Windows 7\Windows 7.vd
i’ with UUID {b3c1079d-ebde-4a24-b10a-16d41a723da7} already exists
VBoxManage.exe: error: Details: code E_INVALIDARG (0x80070057), component Virtua
lBoxWrap, interface IVirtualBox, callee IUnknown
VBoxManage.exe: error: Context: “OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDe
vType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())” at line 179 of
file VBoxManageDisk.cpp
(Com aspas)
C:\Program Files\Oracle\VirtualBox>VBoxManage modifyhd “C:\Users\Thiago\Document
s\VirtualBoxVMs\Windows7\Windows7.vdi” –resize 102400
VBoxManage.exe: error: Cannot register the hard disk ‘C:\Users\Thiago\Documents\
VirtualBoxVMs\Windows7\Windows7.vdi’ {b3c1079d-ebde-4a24-b10a-16d41a723da7} beca
use a hard disk ‘C:\Users\thiago\Documents\VirtualBox VMs\Windows 7\Windows 7.vd
i’ with UUID {b3c1079d-ebde-4a24-b10a-16d41a723da7} already exists
VBoxManage.exe: error: Details: code E_INVALIDARG (0x80070057), component Virtua
lBoxWrap, interface IVirtualBox, callee IUnknown
VBoxManage.exe: error: Context: “OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDe
vType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())” at line 179 of
file VBoxManageDisk.cpp
e ocorre o mesmo erro, podem ajudar nesse caso?
Tenta assim:
VBoxManage modifyhd “C:\Users\Thiago\Documents\VirtualBoxVMs\Windows7\Windows7.vdi” –resize 102400
São dois hífens pra flag “–resize”
Olá,
Ótimo tutorial. Funcionou tudo corretamente.
Parabéns!
Dica maravilhosa! Obrigado.
Detalhando um pouco somente para quem tiver os problemas parecidos com o meu:
Fui testar hoje e a 2ª parte do comando mudou de “modifyhd” para “modifymedium”. O próprio erro que dá, indica o comando certo.
Tentei tbm colocando aspas no caminho completo e não deu certo (não procurei o motivo do erro). Como a opção anterior não funcionou, como segunda opção tive que substituir os espaços vazios que existiam, entre os nomes separados, por um carácter qualquer tipo o “_”.
Exemplo: De “Virtual Machines” para “Virtual_Machines” (depois de aplicado o redicionamento do hd, voltei os nomes como estavam antes).
Obs.: Antes de tudo, como o comando não estava sendo enxergado, depois de localizá-lo na pasta do VirtualBox, tive que indicar o caminho dele com o comando “path” no prompt (tbm pode fazer isso de forma definitiva na propriedades do sistema).
Exemplo: path=C:\Program Files\Oracle\VirtualBox
E por último, agradeço o postagem do site, pois me ajudou, obrigado.