Assumindo que o disco que contém o sistema do PC antigo está fisicamente conectado ao host KVM, você poderia fazer algo assim:
-
Use
virsh
ouvirt-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.
-
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
) -
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-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. -
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 commount -o ro /dev/vdbN /target/XXXXX
para segurança contra erros de digitação / erros. -
rsync -a /source/ /target
(o/
em/source/
é importante) -
umount
tudo em/source
. você não deveria precisar mais. -
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
oublkid
) precisam são montados por bind e visíveis dentro dochroot
que estamos prestes a inserir na próxima passo. -
chroot /target
-
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.
-
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
-
umount
tudo 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.