VirtualBox 3: Aumentando o tamanho do disco virtual da VM

Sempre que preciso criar uma nova vm no virtualbox, eu perco algum tempo na tela de criação de disco.

São sempre as mesmas perguntas:

  • “Quanto de espaço vou precisar nessa vm ?”
  • “O que vai rodar nela ?”
  • “E se eu não criar um disco com espaço suficiente ?”

Depois de perder alguns minutos e finalmente decidir o tamanho do disco, eu prossigo com a criação e instalação da nova VM.

É bem comum se criar VM Windows por exemplo com apenas 10GB de disco. E se você precisar instalar alguns programas pesados ? Será mesmo um problema quando sua máquina virtual fica sem espaço em disco ? Bom, com esse tutorial a resposta é não.

Nos passos abaixo, explicarei com detalhes como aumentar o tamanho do seu disco virtual (.vdi):

[Post escrito e testado baseado no VirtualBox 3.2.6]

1º passo: Criar um novo disco com um espaço maior.

Para isso, abra o gerenciador de disco virtual ou o virtual disk manager e crie um novo disco.

Para os exemplos a seguir, eu criei o disco novoDisco30GB.vdi

2º passo: Escolher a máquina virtual com o disco a ser modificado

Ao decidir qual vm terá seu disco alterado, certifique-se que ela está desligada e entre nas configurações da VM. Vá até a categoria storage ou armazenamento:

O objetivo é fazer com que a vm fique com 2 discos. No meu exemplo utilizei a controladora SATA. Mas funciona da mesma forma para que utiliza controladora IDE. Basta colocar o segundo disco como IDE Primary Slave.

3º passo: Fazer o download da imagem .iso do Gparted live cd

Acesse a url: http://sourceforge.net/projects/gparted/ e baixe a ultima versão da imagem .iso

O Gparted é um editor de partição gratuito, que vamos usar para redimensionar as partições conforme desejarmos.

4º passo: Adicionar o liveCD Gparted na maquina virtual

Adicione o .iso na sua vm de forma que fique assim:

Para quem usa controlador IDE, basta adicionar na posição IDE Secondary Master.

Certifique-se também que a ordem de boot da sua VM está com o CD-Rom antes do HD:

5º passo: Iniciar a VM pelo LiveCD do GParted

Ligue a VM e inicie escolhendo a opção do GParted:

Ele irá oferecer alguma opções de formato do teclado e linguagem. Você pode ir pelas configuraões padrões apertando “ENTER” em todas as opções oferecidas até chegar na tela do sistema:

6º passo: Verificar os nomes dos discos

Assim que o GParted iniciar, o programa já deve vir aberto. Se não estiver em execução, você pode inicar o GParted pelo icone na área de trabalho.

Depois disso, você precisa anotar os nomes dos discos:

Então, no próximo passo nós iremos copiar todo o conteúdo do disco /dev/sda (20 GB) para o /dev/sdb (30 GB).

7º passo: Transferindo os dados de um disco para o outro

Antes de fazer a cópia, certifique-se de ter fechado o programa do GParted. Agora abra o terminal, clicando no icone na área de trabalho.

Agora, basta rodar o comando:
sudo dd if=/dev/sda of=/dev/sdb

Atenção: Tenha certeza que está fazendo a cópia certa. if é o caminho do disco de origem, neste caso o sda que é o de 20GB. E of é o caminho do disco de destino, neste caso o sdb que é o de 30GB.

Dependendo do tamanho do disco, esse processo pode demorar um pouco. Para testar o meu exemplo, levou cerca de 22 minutos para transferir todo o hd de 20GB para o de 30GB.

8º passo: Redimensionar a partição do novo disco

Feito o passo anterior, feche o terminal e reinicie a vm, abrindo pelo liveCD do GParted novamente. Essa reinicialização não é obrigatória, mas serve para evitar problemas no novo disco, já que por algum motivo o GParted fica reclamando de que nao consegue ler os dados da nova partição.

Bom, depois de reiniciar, vamos redimensionar o novo HD.

Se for uma VM windows, basta clicar com o botão direito sobre o /dev/sdb1 e clicar em redimensionar / resize e arrastar a partição até preencher todo o espaço disponível:

Depois disso basta apertar em aplicar e pular para o próximo passo…

No meu caso, estou redimensionando em um HD com linux, então entre a partição do sistema e o espaço disponível tem a partição do swap.

Para poder redimensionar o disco, você precisa remover o “swap” que está em nosso caminho.

Depois de deletar o swap, clique com o botão direito e depois em redimensionar / resize para chegar na tela abaixo:

Arraste o tamanho do disco até o limite desejado. Lembre-se de deixar um pouco de espaço para recriar o swap novamente. Geralmente o swap é criado com o dobro do tamanho da memória da máquina.

Depois de aumentar a partição primária, crie no espaço que sobrou uma partição estendida, onde iremos definir o novo swap.

Criado a partição estendida, crie dentro dela uma partição lógica com o file-system “linux swap”

Pronto. Terminamos de redimensionar o disco.

Agora basta aplicar as modificações e esperar um pouco.

Feito isso, já podemos desligar a vm.

9º passo: Ligar a VM com o novo disco

Remova o disco antigo da vm, remova o cd de boot e depois ligue a vm com o novo disco !

10º passo: Agora, basta aproveitar a sua VM com um disco maior

11º passo (Passo necessário no Ubuntu): Trocando o uuid do disco do swap.

Em alguns linux, com o ubuntu, ele grava em um arquivo o uuid (id do disco) que o sistema usa.

Como fizemos algumas modificaçoes nas partições, esses ids mudaram. Então precisamos editar o arquivo que fica em /etc/fstab como mostra a figura abaixo:

Com o comando: ls -la /dev/disk/by-uuid/ você pode listar os novos ids e a onde eles estão montados.

No caso da imagem acima, basta atualizar o arquivo fstab com o uuid do disco em sda1 e depois em sda5.

Reinicie a VM e estará tudo funcionando corretamente 😉

==========================================

IMPORTANTE: Em 22/12/2010 foi lançado a versão 4 do virtualbox. Umas das principais modificações foi o suporte ao redimensionamento do disco. Em breve escreverei um novo post falando sobre essa funcionalidade.
Eu só publiquei essa matéria pois estava como rascunho a muito, muito tempo. E além do mais, nem todo mundo atualiza a versão do virtualbox, então pode ser útil para alguém… 😉
==========================================
[Post escrito e testado baseado no VirtualBox 3.2.6]

Share
  • Guilherme

    Puta blog ruim. Só têm assunto velho.

    • Puxa, me desculpe…
      Mas infelizmente não dá para agradar a todos… 😉

      Volte sempre…

      • Só para constar:

        O tutorial funciona também no VirtualBox 4.0 e 4.1.

        Eu usei as instruções deste tutorial e não o utilitario do proprio VirtualBox porque o disk resize do 4.x só funciona com discos de tamanho dinâmico.

        Se você precisa aumentar o tamanho de discos ESTATICOS (fixos), tem que usar o tutorial do Rafael Biriba. Mesmo no 4.x.

        Beijos às moças, abraços aos rapazes

        Henrique

    • AK47

      Se não gosta então não acessa e para de encher o saco!!

    • Sony

      Descordo completamente. Falar mal de algo bom é extremamente fácil.

  • edgard

    Na verdade existe uma maneira bem mais fácil de aumentar o tamanho do HD. Na linha de comando use o seguinte:
    VBoxManage.exe modifyhd –resize

    • o atributo modifyhd só está disponível para o VirtualBox 4!
      O tutorial acima é para virtualbox 3 😉

      O post em que eu explico como redimensionar usando VirtualBox 4 ainda está em rascunho, estou sem tempo para escrever…

      Mesmo assim obrigado pela dica e pela visita…
      Volte sempre 😉

      Abraços,

      • De novo: o modifyhd só funciona para DISCOS DE TAMANHO DINÂMICO.

        Se você usa discos estáticos (fixos), o tutorial do Biriba ainda vale.

      • Sony

        Outra coisa, o modify não funciona em todos os sitemas. no meu caso não funcionou. Win7 NTFS.

  • Pingback: VirtualBox 4.0.4: Nova funcionalidade permite expandir o tamanho do disco vdi | Rafael Biriba Blog()

  • Pingback: VirtualBox 4.0.4: Nova funcionalidade permite expandir o tamanho do disco vdi | Planeta Globo.com()

  • Cristian

    Lá fui eu fazer desse jeito ¬¬

    utilizo 4.0.8, espero que ao menos de certo,

    utilizo pra trabalho esta vm.

    to de cara que ta demorando, isso que o disco ta gravando em cerca de 40MB/s.

    • Depois volta aqui para compartilhar a sua experiência…

      Abraços,

      • Cristian

        Fiquei meio sem tempo, e estou hehe…

        Segui o tutorial, relamente copiou para outro disco virtual, porém na hora de expandir não funcionou, eu apenas conseguia diminuir, e não era o swap, pois o mesmo estava antes das partições.

        SWAP | PARTIÇÃO | LIVRE

        Tentei deletar o swap, expandir, criar partições, expadir, vários jeitos, mas sempre só era possível diminuir!

        Adicionei a pasta da VB, para os Paths, então rodei o comando para redimencionar o disco, aumentou(vide VB), porém tinha que trabalhar, no sistema não reconheceu o aumento.

        Amanha vejo algo.

        Abraço.

  • rafael

    Após seguir o procedimento, ao iniciar o win2k8, aparece a seguinte mensagem:
    Windows failed to start ………………………..
    File: \windows\system32\winload.exe
    status: 0xc000000e
    Info: The selected entry could not be loaded because the application is missing or corrupt.
    Enter=Continue Esc=exit
    Se puder me ajudar, agradeço

    • A VM estava funcionando antes de redimencionar ? Parece que alguma coisa já estava ou foi corrompida antes mesmo de aumentar o disco.

      Ainda sim, se voce montar o cd de instalação do windows na vm, creio que voce consiga reparar a instalação…

      Tenta aí e volta aqui para dizer se deu certo…

      Abraços.

  • rafael

    Resolvido, após o clone do hd da vm, o windows corrompeu os arquivos de inicialização.
    A solução foi:
    For Windows 2008 and the same error:
    -Boot from install DVD.
    -Choose repair (left lower side)
    -Choose command prompt
    -goto the directory X:\Sources\Recovery
    -Run: StartRep.exe

    • Então a solução foi a mesma que sugeri, de reparar a instalação…

      Bom, a vm está funcionando normalmente agora ??

  • rafael

    A VM está ok

    • Você poderia redimencionar a vm novamente para testar se o problema vai acontecer de novo ?

  • rafael

    Já testei e o erro ocorreu

    • Que esquisito =/
      Quando eu tiver um tempo eu do uma testada nisso…

      Valeu por compartilhar a solução de como resolver o problema…

      Abraços,

  • Adailton

    Rafael

    Bacana o tutorial…Parabens.
    Segui os procedimento que vc descreve e foi tudo bem. Mas tinha uma HD de 8GB com apenas 10% de espaço livre.
    Efetuei o clone desta HD para um Disco de 500GB. Copiou legal sem problemas. Quando reiniciei a VM e fui verificar meu disco estava com o de 500GB so que o espaço livre continuava o mesmo do disco anterior, ou seja 800MB. Sabe dizer o que pode ter acontecido?

    • Adailton

      Ja resolvido… Reescrevi meu arquivo fstab e tudo foi resolvido…

      Valeu Rafael

  • Pingback: Como aumentar o tamanho do disco no Virtual Box | Blog do Alexandre Luis Pires()

  • Douglas

    Ai Rafael valeu pela postagem me ajudou pra caramba, abraços fica com Deus. 😉

  • MRFilho

    Excelente o post!!!! Mesmo com a versão 4 do VirtualBox o tutorial foi de excelente ajuda, afinal é necessário seguir a partir do passo 8. Parabéns!!!

    • Mas se preferir, pode acompanhar por este link tambem:

      Obrigado pela visita e volte sempre..

      • Rapaz, um dos melhores blogs que já tive a sorte de ler!
        Parabéns e sucesso!

  • Adriano

    Só tem um problema. A droga do comando para fazer a cópia, não informa se está fazendo, quando terminou, em qual percentual está. É punk. Marquei aqui uns 30 min e fiquei esperando a tela preta me dar alguma informação e nada. Ai arrisquei fechar a janela e então ir para o passo seguinte.