Virtualização · 3 min read · Jan 05, 2026
VirtualBox: Criando Backups e Clones de Máquinas Virtuais em Execução (Sem Tempo de Inatividade) com Snapshots LVM
VirtualBox: Criando Backups e Clones de Máquinas Virtuais em Execução (Sem Tempo de Inatividade) com Snapshots LVM
Versão 1.0
Autor: Falko Timme
Siga-me no Twitter
Se você usa volumes LVM para suas VMs do VirtualBox (como mostrado no tutorial Usando Dispositivos RAW em VMs do VirtualBox), você pode criar backups e clones de uma VM em execução sem desligá-la. Este tutorial mostra exatamente isso: usando snapshots LVM para criar backups e clones de VMs do VirtualBox em execução sem tempo de inatividade.
Não dou nenhuma garantia de que isso funcionará para você!
1 Nota Preliminar
Como instalei o VirtualBox em um servidor sem interface gráfica, estou usando o phpvirtualbox como a GUI do VirtualBox aqui. Se você usar a GUI original do VirtualBox, isso é perfeitamente aceitável.
Minha máquina virtual em execução (da qual quero fazer um backup) é chamada vm10, e está localizada no volume LVM /dev/vg0/vm10.
Certifique-se de que você está logado como root (digite
sudo supara se tornar root), porque devemos executar todas as etapas deste tutorial como usuário root.
2 Criar um Backup de uma VM em Execução com Snapshots LVM
Para criar um backup da máquina virtual em execução vm10, primeiro crio um snapshot LVM de /dev/vg0/vm10 chamado vm10_snap. Snapshots podem ser menores que o volume original - 512MB provavelmente seria suficiente, mas estou usando um tamanho de 5GB aqui:
lvcreate -L5G -s -n vm10_snap /dev/vg0/vm10Em seguida, uso dd para ler o conteúdo do snapshot e canalizá-lo para gzip para criar uma imagem de backup compactada no diretório /backup (você pode, é claro, usar qualquer outro diretório):
dd if=/dev/vg0/vm10_snap bs=64k | gzip -c > /backup/vm10.img.gzÉ isso - seu backup de vm10 agora está localizado em /backup/vm10.img.gz.
Agora remova o snapshot LVM:
lvremove -f /dev/vg0/vm10_snap3 Restaurar de um Backup/Clonar de um Backup
Restaurar e clonar é essencialmente a mesma coisa, então vou mostrar como criar um clone chamado vm11 a partir do backup que acabamos de criar.
Primeiro, crie um volume LVM do mesmo tamanho que o volume LVM original (20GB neste exemplo):
lvcreate -L20G -n vm11 vg0Restaure o backup de vm10 para o novo volume lógico /dev/vg0/vm11:
gunzip -c /backup/vm10.img.gz | dd of=/dev/vg0/vm11 bs=64kEm seguida, crie um arquivo .vmdk para /dev/vg0/vm11 (por exemplo, vm11.vmdk) para que possamos usá-lo com o VirtualBox. É provavelmente melhor criá-lo no diretório home do usuário sob o qual o VirtualBox está sendo executado (por exemplo, /home/vbox se você usar phpvirtualbox) - o arquivo também deve ser de propriedade desse usuário:
cd /home/vbox
VBoxManage internalcommands createrawvmdk -filename vm11.vmdk -rawdisk /dev/vg0/vm11
chown vbox:vbox vm11.vmdkEm seguida, vá para sua GUI do VirtualBox (GUI original do VirtulBox ou phpvirtualbox) e clique em Novo:

Clique em Avançar>> no assistente Criar Nova Máquina Virtual:

Especifique o nome da nova VM e selecione o mesmo sistema operacional e versão usados pela VM original:

Especifique a memória do clone:

Na tela do Disco Rígido Virtual, selecione Usar disco rígido existente e clique no ícone Escolher um arquivo de disco rígido virtual:

Selecione o arquivo vm11.vmdk e clique em OK:

Clique em Avançar>>:

Clique em Criar:

Antes de iniciarmos o clone, você pode querer ajustar algumas configurações, por exemplo, se a VM original usa bridging, você pode querer selecionar bridging para o clone na configuração de rede também:


Agora clique em Iniciar para iniciar o clone:

Durante a inicialização, você provavelmente notará que a configuração de rede está travada:

Isso acontece porque o VirtualBox atribuiu um endereço MAC diferente para a interface eth0 do clone, mas o arquivo /etc/udev/rules.d/70-persistent-net.rules do clone ainda usa o endereço MAC original. Após a inicialização, faça login no clone e execute…
ifconfig… e você verá que eth0 está ausente (por causa do problema do endereço MAC), o que significa que o clone não pode usar a rede:

Para corrigir o problema, abra /etc/udev/rules.d/70-persistent-net.rules no clone…
vi /etc/udev/rules.d/70-persistent-net.rules… e comente a linha eth0 (e também a linha eth1 que foi adicionada durante a inicialização porque o endereço MAC de eth0 estava errado). Isso garante que durante a próxima inicialização, o sistema adicionará uma nova linha eth0 com o endereço MAC correto.

Agora reinicie o clone. Após a reinicialização, sua rede deve funcionar, e você deve ver eth0 na saída de
ifconfig
Parabéns, você clonou com sucesso uma VM sem desligar a VM original.
4 Links
- VirtualBox: http://www.virtualbox.org/
- phpvirtualbox: http://code.google.com/p/phpvirtualbox/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.