Clona o disco de uma VM em execução e executa-o no VirtualBox

0

Estou na seguinte situação:

Eu preciso "clonar" os discos (sda, sdb) de uma VM do CentOS em execução via SSH (eu fiz essa etapa seguindo this guide ) e implante-os em algo como o VirtualBox.

Eu tentei, mas infelizmente depois de obter as imagens raw de sda e sdb e depois de convertê-las para VHD com VBoxManage, adicionei-as a uma nova VM e obtive "No bootable media" quando a iniciei.

Você tem alguma sugestão?

Eu tentei uma recuperação automatizada com um LiveCD do CentOS, mas ele não encontrou nenhum disco recuperável; Eu também tentei obter qualquer informação com o fdisk, mas infelizmente parece que ele não consegue ler nenhuma partição ...

Muito obrigado pela sua ajuda!

    
por Brutus 19.07.2016 / 13:07

1 resposta

0

Se você tiver acesso à rede a partir da inicialização do CD ao vivo, poderá fazer algo assim:

  1. obtenha um shell de root no Live CD em execução na VM do VirtualBox

  2. particione e formate os discos virtuais da maneira que quiser. Se as ferramentas LVM estiverem no Live CD, você pode até usar o LVM.

  3. execute mkdir -p /target

  4. monte os rootfs desejados no / target, crie diretórios para qualquer ponto de montagem (por exemplo, / target / home, / target / var, etc) e monte as partições apropriadas.

  5. cd /target

  6. rsync -a --exclude proc/** --exclude sys/** --exclude dev/** root@remoteVM:/ ./

(esse comando rsync pode precisar ser ajustado com precisão. execute com a opção --dry-run até que esteja correto)

  1. for i in dev dev/pts proc sys ; do mount -o bind /$i /target/$i ; done

  2. chroot /target .

  3. edite /etc/fstab e /etc/default/grub conforme necessário para adequar-se ao novo sistema.

  4. update-grub

  5. exit

  6. desmontar / segmentar e tudo sob ele (incluindo as montagens de ligação acima)

  7. reinicialização.

Como alternativa, em vez de rsync , você pode usar tar para fazer backup dos sistemas de arquivos da VM remota e colocar os arquivos tar.gz em algum lugar do Live CD. excluir / proc, / dev e / sys diretórios do backup.

Nota: se você estiver executando mysql ou postgres ou qualquer coisa que grave em arquivos db ou outros arquivos que não sejam em texto puro, você deverá encerrar esses serviços antes do rsync . executar um backup de banco de dados para copiar todos os dbs para o texto também é uma boa idéia.

as gravações em arquivos de texto simples (por exemplo, arquivos de log) durante o rsync não são tão arriscadas, se você não se importar em perder as entradas de log que ocorreram depois de executar o rsync .... pelo menos não haverá qualquer corrupção de arquivo possível.

O diário do systemd é binário. por isso, se estiver a executar o systemd, terá de encerrar o journald para evitar a corrupção. Eu não tenho ideia se isso é possível sem desligar o sistema.

    
por 19.07.2016 / 17:03