Assumindo que o disco que contém o sistema do PC antigo está fisicamente conectado ao host KVM, você poderia fazer algo assim:
-
Use
virshouvirt-managerpara 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.
-
Inicialize o sistema usando a imagem ISO. Particione e formate o disco virtual (que provavelmente será
/dev/vdana VM), conforme necessário. Monte-o como/target(e outras partições, se houver, em/target) -
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 executevirsh help attach-diskpara um resumo das opções. Vai acabar sendo algo como:virsh attach-disk vmname /dev/sdX /dev/vdb --targetbus sataonde
/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. -
De volta à VM, monte a partição do SO que você deseja virtualizar como
/sourcee quaisquer outras partições sob essa. Monte todos eles somente leitura commount -o ro /dev/vdbN /target/XXXXXpara segurança contra erros de digitação / erros. -
rsync -a /source/ /target(o/em/source/é importante) -
umounttudo em/source. você não deveria precisar mais. -
for i in proc dev sys dev/pts ; do mount -o bind /$i /target/$i doneIsso garante que todos os pseudo-sistemas de arquivos do sistema que
grub-installe outras ferramentas (por exemplo,lsblkoublkid) precisam são montados por bind e visíveis dentro dochrootque estamos prestes a inserir na próxima passo. -
chroot /target -
edite
/etc/fstabpara 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.
-
grub-install /dev/vda -
exit# deixe o chroot e retorne ao shell na imagem do CD de resgate. -
for i in proc dev/pts dev proc sys; do umount /target/$i ; done -
umounttudo sob/target -
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.