kvm imagem parcial do disco

1

Estou executando um sistema Linux como KVM-host e criei um vm executando o disco físico de um PC antigo (usando --import). Esse disco tem várias partições com dual-boot de vários sistemas operacionais e uma partição temporária e alguns dados de vídeo ... O que eu realmente quero virtualizar é o sistema Linux nesse disco. Eu acho que entendo como fazer uma imagem de todo o disco, mas o que eu realmente preciso é apenas o MBR, o scratch e as partições segurando / e / boot. Existe uma maneira de apenas 'extrair' algumas partições para uma imagem para virtualização? Estou pensando em copiar temporariamente as partições de interesse para um disco em branco, instalar o grub e depois virtualizar isso. Mas talvez haja uma maneira mais simples de conseguir o que eu quero?

Atenciosamente,

Wolfgang

    
por wolfgang6444 15.08.2017 / 08:29

1 resposta

1

Assumindo que o disco que contém o sistema do PC antigo está fisicamente conectado ao host KVM, você poderia fazer algo assim:

  1. Use virsh ou virt-manager para criar uma VM com um arquivo de imagem de disco de tamanho adequado E uma ISO que contenha um bom CD de recuperação (eu uso clonezilla ou gparted para coisas como esta. Qualquer bom sistema "ao vivo" deve ser usado. Melhor não para usar um instalador ISO para qualquer distribuição).

    Não NÃO anexe o disco rígido físico à VM ainda.

  2. Inicialize o sistema usando a imagem ISO. Particione e formate o disco virtual (que provavelmente será /dev/vda na VM), conforme necessário. Monte-o como /target (e outras partições, se houver, em /target )

  3. No host KVM, anexe o disco físico que contém o sistema antigo à VM usando o comando virsh attach-disk . Não há detalhes suficientes em sua pergunta para fornecer a você mesmo uma linha de comando aproximada, mas execute virsh help attach-disk para um resumo das opções. Vai acabar sendo algo como:

    virsh attach-disk vmname /dev/sdX /dev/vdb --targetbus sata

    onde /dev/sdX é o disco físico, /dev/vdb é o dispositivo como será visto pela VM e o barramento de destino será sata ou scsi ou mesmo virtio.

  4. De volta à VM, monte a partição do SO que você deseja virtualizar como /source e quaisquer outras partições sob essa. Monte todos eles somente leitura com mount -o ro /dev/vdbN /target/XXXXX para segurança contra erros de digitação / erros.

  5. rsync -a /source/ /target (o / em /source/ é importante)

  6. umount tudo em /source . você não deveria precisar mais.

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

    Isso garante que todos os pseudo-sistemas de arquivos do sistema que grub-install e outras ferramentas (por exemplo, lsblk ou blkid ) precisam são montados por bind e visíveis dentro do chroot que estamos prestes a inserir na próxima passo.

  8. chroot /target

  9. edite /etc/fstab para ajustar as entradas de montagem para usar os novos nomes de dispositivos de bloco (ou rótulos ou UUIDs).

    Você pode querer alterar outras coisas aqui, como configuração de rede, ou pode deixar essas coisas para mais tarde, quando o sistema básico estiver em execução. Eu aconselharia fazer uma cópia de todas as mudanças importantes que você fizer, para o caso de as coisas não correrem bem na primeira vez e você precisar tentar novamente. Alternativamente, apenas anote o que você mudou para saber o que precisa ser feito se tiver que começar de novo.

  10. grub-install /dev/vda

  11. exit # deixe o chroot e retorne ao shell na imagem do CD de resgate.

  12. for i in proc dev/pts dev proc sys; do umount /target/$i ; done

  13. umount tudo sob /target

  14. No host KVM, desconecte o disco extra com virsh detach-disk .

Agora você deve conseguir reinicializar a VM. Talvez seja necessário avisá-lo para inicializar a partir do disco rígido em vez do "CD-ROM" virtual de imagens ISO.

    
por 15.08.2017 / 10:41

Tags