Como você cria uma imagem virtualbox vm de um sistema de arquivos linux existente?

1

Eu tenho um sistema linux existente que gostaria de usar para criar uma máquina virtual.

Eu instalei o VirtualBox.

Consegui usar o link para crie um VMDK a partir de um volume lógico.

Não sei quais procedimentos devo seguir para preencher esse volume lógico e fazer do VMDK uma imagem útil do sistema copiada do sistema existente.

Seria relativamente simples fazer mkfs.ext3 /dev/vg1/vm_puppy , montá-lo e copiar todos os arquivos pela rede, mas não sei se isso tornaria uma imagem de máquina virtual utilizável.

Quais são as etapas adequadas para preencher esse VMDK com um sistema inicializável, supondo que eu já saiba como fazer a etapa de cópia de arquivo?

    
por Mutant Bob 31.12.2016 / 23:20

2 respostas

0

Você pode usar em sua máquina virtual dois discos rígidos, um físico que você quer imaginar e outro é uma imagem virtual daquele físico. Para acessar a unidade física, crie um tipo de "ponteiro" no vmdk como

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/vg1/vm_puppy

em seguida, no VirtualBox, crie duas unidades virtuais adicionais, uma para a imagem da unidade física e outra para um sistema operacional simples e leve.

Quando você terminar de configurar o "sistema simples de operação leve" e dentro dele, use apenas o comando dd para criar uma imagem completa do disco rígido físico.

Quando você terminar de criar imagens e quiser usar o sistema clonado (que era do disco rígido físico), crie uma nova máquina virtual e alimente-a com imagem virtual clonada como unidade de disco virtual.

P.S. Se você tem um disco rígido bem grande (sistema original que deseja clonar) e não sacrifica espaço na imagem clonada, você pode fazer de outra forma, criar um arquivo completo do original com o comando tar e expandi-lo na máquina virtual . Desta forma, você pode reduzir o espaço usado pelo drive virtual. Você pode mover o arquivo do tar para a máquina virtual sobre a pasta compartilhada do VirtualBox. a única coisa que você precisaria fazer também é instalar o grub na unidade virtual onde você descompactar o arquivo

(espero que entenda o que você quer)

    
por 01.01.2017 / 00:54
0

A solução que usei girou em torno da criação de dois discos virtuais (empréstimo e ideia do Alex) para anexar à guia Configurações > Armazenamento > Controlador SATA.

Eu usei a VirtualBox GUI para criar 128M VMDK para conter o MBR e um /dev/sda1 para ser o /boot .

O outro VMDK que criei anteriormente a partir de um volume lógico do LVM tornou-se o virtual /dev/sdb (sem partições).

Eu carreguei um ISO de instalação do gentoo no CD-ROM virtual da VM (Configurações > Armazenamento > IDE Controller) e inicializei-o a partir dele. Uma vez que o ambiente de instalação do gentoo estava funcionando, consegui particionar /dev/sda e criar o sistema de arquivos /dev/sda1 /boot e copiar o kernel e outros arquivos do host de origem. Eu não particionei /dev/sdb porque ele já continha o sistema de arquivos raiz que eu havia construído antes.

Eu montei /dev/sdb e /boot de acordo com Preparando os discos e manipulou alguns dos sistemas de arquivos virtuais de acordo com Montando os sistemas de arquivos necessários . Com os sistemas de arquivos preparados, eu poderia fazer chroot e começar a reconfigurar a VM para considerar as diferenças entre os discos da máquina de origem e os discos da VM.

Eu tive que atualizar /etc/lilo.conf dentro da VM para usar boot=/dev/sda e root=/dev/sdb .

Da mesma forma, /etc/fstab precisava de alteração, pois o host de origem usava muitas partições individuais (um estilo que saiu de moda na década anterior) e a VM só tinha /dev/sdb para raiz e /dev/sda1 para /boot .

Eu também tive que recompilar o kernel com suporte para o módulo ahci sata e a e1000 ethernet. A máquina de origem é muito antiga.

Uma desvantagem desse processo é que eu tive que particionar o virtual sda dentro de uma VM em execução. Não sei se existe um processo que permita particionar o VMDK e preencher suas partições com sistemas de arquivos e dados sem inicializar a VM que o utiliza.

Não sei quais problemas teriam surgido se eu tivesse tentado recompilar o kernel guest usando o sistema operacional host e um chroot em vez de recompilar dentro de uma VM (o que exigiria o uso do ISO de instalação do gentoo).

Eu não pude usar um ISO ao vivo do Debian porque em algum momento no processo de inicialização a tela se transformou em listras coloridas de caracteres. Eu suponho que há alguma incompatibilidade com a placa de vídeo virtual e foi mais fácil apenas obter o gentoo do que remover todas as discussões relacionadas sobre esse bug para testar todas as soluções sugeridas.

    
por 02.01.2017 / 00:07