Arquivo da tag: vm

VirtualBox: Como clonar uma máquina virtual inteira usando o VBoxManage

Bom, hoje eu tive que clonar uma máquina virtual minha.

Então comecei a fazer o procedimento que eu já fazia à algum tempo…

Desligar a VM, Duplicar seu HD, Criar uma nova VM, Configurar para ficar igual a vm original, atribuir o hd clonado e por fim ligar a vm.

Isso realmente dá um pouco de trabalho, caso você precise clonar uma vm, para umas 3 ou 4 máquinas iguais…

Então como resolver ?

Olhando a documentação do virtualbox, descobri algo realmente decente para este problema: Clone de VM 🙂

O comando que resolveu o meu problema e pode resolver o seu é o:

VBoxManage clonevm “Win XP Original” –name “VM Clone XP 1” –register

Funcionou perfeitamente. A VM clonada herdou todas as configurações corretamente… Que beleza! =)

E para fechar com chave de ouro, experimente rodar o comando acima de clone junto com o comando:

VBoxManage startvm “VM Clone XP 1”

Com isso você clona e logo em seguida já liga a nova máquina =)

Consegue ter uma visão “cloud” nisso ? É possível duplicar ou deletar VMs em tempo real na hora que você precisar… (Fica a dica ;))

Share

VirtualBox 4.0.4: Nova funcionalidade permite expandir o tamanho do disco vdi

Para facilitar a vida de quem precisa redimensionar o disco virtual de uma VM, foi lançado o serviço “modifyhd” que pode ser acessado pelo VBoxManage.

Infelizmente esse serviço está disponível apenas na versão 4. Se a versão do seu virtualbox for mais antiga, sugiro que faça essa atualização. Nessa nova versão, foram corrigidos vários bugs (são tantos que não dá para listar aqui. Veja a lista completa em: http://www.virtualbox.org/wiki/Changelog). Você pode fazer o download da versão nova versão em: http://www.virtualbox.org/wiki/Downloads

Mas se você ainda usa uma versão antiga do virtualbox, veja esse tutorial: VirtualBox 3: Aumentanto o tamanho do disco virtual da vm

Bom, para redimensionar o disco, você deve executar na linha de comando, em um terminal/console o seguinte comando:

VBoxManage modifyhd <caminho completo para o vdi> –resize <tamanho em mb>

Tentei fazer um teste. Então escolhi peguei o disco do meu WindowsXP de 20GB e rodei o comando:

VBoxManage modifyhd /Users/rafaelbiriba/Library/VirtualBox/HardDisks/WindowsXP.vdi –resize 15000

Resultado:

Progress state: VBOX_E_NOT_SUPPORTED VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Para minha surpresa, o modifyhd só funciona para aumentar o disco. Ainda não foi implementado a funcionalidade para diminuir o disco.

Então depois de um novo teste:

VBoxManage modifyhd /Users/rafaelbiriba/Library/VirtualBox/HardDisks/WindowsXP.vdi –resize 22000

O resultado foi exatamente o esperado (22000 MB = 21.48 GB):

Ao invés de usar o –resize passando o valor em MB, você também pode usar o –resizebyte e passar o valor em bytes.

Depois de redimencionar o disco, você precisa aumentar o tamanho da partição, para ocupar também o novo espaço disponibilizado. Para isso, você pode baixar o live cd do Gparted (http://gparted.sourceforge.net/download.php) e alterar o tamanho da partição.

Você também pode acessar o guia em: https://rafaelbiriba.com/2011/03/16/virtualbox-3-aumentando-o-tamanho-do-disco-virtual-da-vm.html e no 8º passo eu mostro como fazer para redimensionar a partição usando o GParted.

Então é isso… Qualquer dúvida, crítica, elogio ou sugestão, podem me deixar um comentário abaixo 😉

Share

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

VirtualBox: Criando e iniciando uma VM pelo terminal com o VBoxManage

virtualbox-imageJá tem algum tempo que ando brincando com o VirtualBox e um dos objetivos era automatizar a criação de novas VMs.

Durante as pesquisas e testes, descobri que criar máquinas virtuais utilizando o VBoxManage* é bastante simples.

*VBoxManage: É uma interface do virtualbox por linha de comando (terminal), onde você pode controlar totalmente suas máquinas virtuais.

Dica: Leia a documentação para conhecer todas as funções disponíveis: http://www.virtualbox.org/manual/ch08.html

Então vamos começar… No exemplo a seguir vou criar uma vm para um CentOS 5.4: (Os comandos em negrito devem ser executados no terminal)

VBoxManage createvm -name “centos54” –register
Cria uma vm com o nome ‘centos54’ e com configurações padrões

VBoxManage modifyvm “centos54” –ostype RedHat –memory “128” –acpi on –boot1 dvd –nic1 bridged –bridgeadapter1 wlan0
Altera o tipo da vm para RedHat (por causa do CentOS), altera a memória para 128 MB, configura o dvd para ser o primeiro boot, e habilita uma placa de rede em modo bridge apontando para minha interface de rede wireless wlan0 (em alguns casos talvez seja eth0). Você pode habilitar mais de uma interface de rede, basta passar as configurações das placas assim: –nic1 … –nic2 … -nic3 …

VBoxManage createhd -filename “centos54.vdi” -size 6000 –remember
Cria o HD da nova vm com 6 GB de espaço

VBoxManage storagectl “centos54” –name “IDE Controller” –add ide –controller PIIX4
Habilita o controlador IDE de disco na vm

VBoxManage storageattach “centos54” –storagectl “IDE Controller” –port 0 –device 0 –type hdd –medium “centos54.vdi”
Adiciona o disco vdi da vm no controlador IDE e define o tipo com hard disk drive (hdd)

VBoxManage openmedium dvd /home/rafael/Desktop/CentOS-5.4-i386-bin-1of6.iso
Adiciona ao virtualbox (não na vm), o link para a imagem do disco

VBoxManage storageattach “centos54” –storagectl “IDE Controller” –port 0 –device 1 –type dvd –medium /home/rafael/Desktop/CentOS-5.4-i386-bin-1of6.iso
Adiociona a imagem do disco para boot e instalação do sistema operacional na VM. Note que agora o device é definido como 1, pois o hd está no device 0.

Feito isso, agora estamos prontos para poder iniciar a VM:
nohup VBoxHeadless –startvm “centos54” -p 3001
O vboxheadless responsável por iniciar a vm prende o processo ao terminal. Portanto se você fechar o terminal, o processo de start da vm morre. Para resolver isso, usamos o nohup que mantém o processo rodando mesmo que o terminal seja fechado. O vboxheadless inicia a vm e habilita o protocolo RDP (Remote Desktop Protocol) para que você possa acessar a vm. O parâmetro -p serve exatamente para definir a porta de acesso do RDP, e o endereço de acesso é 127.0.0.1 ou localhost.

Para desligar a VM:
VBoxManage controlvm “centos54” poweroff

Para remover o DVD de boot da VM:
VBoxManage storageattach “centos54” –storagectl “IDE Controller” –port 0 –device 1 –type dvd –medium noneforceunmount

Então é isso… Em breve vou mostrar como duplicar as vms e seus discos.
Dica: Leia a documentação para conhecer todas as funções disponíveis do VBoxManage:
http://www.virtualbox.org/manual/ch08.html

Share

VirtualBox: VMs com IPs estáticos e internet de maneira simples

virtualbox-imageTem certas coisas que você só aprende tentando… Mas esse assunto foi muito além desse princípio.

Durante toda a semana, procurei por soluções para colocar 2 máquinas virtuais acessíveis pela minha máquina hospedeira, com ip fixo e com internet.

O que acontece é o seguinte: Quem possui as versões mais atuais do virtualbox (a minha é a 3.1.2), possui uma opção de adaptador de rede, que se chama host-only. Ela cria uma conexão de rede em seu sistema hospedeiro, e utiliza um DHCP próprio para gerenciar as VMs, e com isso você consegue tanto utilizar internet, quanto se comunicar entre máquina real e máquina virtual.

O problema é que preciso garantir que estou dando SSH para a VM certa. O DHCP pode comprometer essa garantia.

O que tentei fazer… Atribuir um ip fixo na máquina virtual. Mas sem utilizar o DHCP, faz com que a VM fique sem conectividade com a internet.

Procurando pelo google, vi várias soluções que se resumiam em criar interfaces de redes virtuais para cada VM e compartilhando a conexão de internet entre elas, alterando tudo no arquivo /etc/netwotk/interfaces (ubuntu) e mais algumas outras coisas.

Eu não só testei várias soluções, como nenhuma delas funcionou, e ainda fiquei com alguns problemas de rede, mas que foram facilmente resolvidos.

Não querendo complicar uma coisa tão simples, consegui achar uma solução que resolve tudo com apenas alguns cliques, sem alterar nenhuma configuração e nem arriscar problemas na sua rede atual (eth0) =D

Então, vamos para a solução final:

Existe uma outra opção para sua interface de rede no virtualbox: NAT. Ela atribui um IP para sua VM, que é inacessível não só entre a maquina real e a virtual, quanto entre as máquinas virtuais também… Essa opção apenas libera o acesso à internet para a VM.

A solução foi utilizar 2 interfaces de rede para cada VM. A primeira interface foi definida como NAT e a segunda como host-only. A ordem é importante… Certifique-se que a primeira interface é a NAT. Também é necessário desativar o DHCP do host-only (Vá em Arquivo > Preferências > Rede > “Edite a Rede Virtual do Host-Only” > “Na aba Servidor DHCP, desmarque a opção Habilitar Servidor”).

Feito isso, inicie a VM e atribua um IP fixo para a interface que utiliza o host-only… E como eu disse acima, essa interface com ip fixo fica acessível entre as máquinas virtuais e a real, perdendo apenas a conexão com a internet. Mas como você configurou uma interface NAT anteriormente, o problema está resolvido! 🙂

virtual-box-rede-2-interfaces

A imagem acima é um pedaço da descrição de uma das minhas máquinas virtuais que rodam num virtualbox para windows. A idéia é a mesma tanto para windows quanto para linux. 😉

Curiosidade: Note que no windows o nome do adaptador de rede para o host-only é “VirtualBox Host-Only Ethernet Adapter” e no linux é “vboxnet0”.

Dica rápida: Se o seu virtualbox foi instalado pelo aptitude/synaptic do ubuntu (linux), certamente você possui uma versão velha e com poucos recursos… Sugiro baixar uma versão mais atual no site do virtualbox.

Se conseguir uma outra solução, não deixe de compartilhar aqui! 🙂
Espero ter ajudado !

Share