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 su

para 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/vm10

Em 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_snap

3 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 vg0

Restaure 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=64k

Em 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.vmdk

Em 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

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.