
Um PC Linux morreu devido a uma falha na placa-mãe. O disco rígido, entretanto, ainda está funcionando. Transplantei o disco para outra máquina Linux e descobri que tudo estava legível.
Agora quero reviver o PC antigo, mas como VM. É possível fazer isso sem primeiro ter que converter o disco em um arquivo de imagem, ou seja, executando com o disco existente? Ainda não sei se KVM ou LXC é uma escolha melhor, mas preferiria LXC porque o PC host é bastante lento. Isso é possível? Minha experiência com implantação de VM é bastante limitada...
Aliás, ambos os computadores rodam Gentoo Linux.
EDITADO
Obrigado por agora por todas as respostas. Para esclarecer a questão, a principal razão pela qual preciso do disco rígido para executar algum tipo de máquina virtual é que o computador antigo era o servidor coda principal de um pequeno cluster coda. Não consigo (facilmente) obter os dados das vice-partições "brutas", portanto, apenas executar um contêiner pode ser a maneira mais fácil. O computador host é muito restrito em termos de capacidades de hardware, então apenas clonar o disco via dd não funcionará - não há espaço suficiente (!) (não pergunte por que :-/ - uma configuração bastante estranha). Além disso, o PC antigo também usava LVM. As várias partições e LVs LVM podem, no entanto, ser montadas muito bem no novo computador host - os dados estão lá, e uma vez eu até inicializei acidentalmente o novo computador host com o disco antigo como "userland" (novo kernel, antigo userland) - funcionou, então os sistemas são bastante semelhantes.
O charme de uma configuração LXC é que ela não precisa de tantos recursos. A desvantagem é que não tenho ideia se os servidores CODA funcionarão bem quando estiverem em um contêiner - portanto, colocá-los em uma VM completa pode ser mais seguro.
Responder1
É possível inicializar a partir de um disco rígido físico com o VirtualBox.Manual: Usando um disco rígido host bruto de um convidado.
Em torno disso, escrevi um tutorial em alemão:Virtualização Dualboot-Windows. Seu ponto focal é inicializar janelas físicas, mas também funciona com Linux.
Os pontos principais para você fazer:
- Instale o VirtualBox. Certifique-se de ser membro do grupo
vboxusers
depois. - descubra o arquivo do dispositivo do novo disco rígido (por exemplo
/dev/sdb
) - Crie uma VM no VirtualBoxsemum disco rígido virtual (eu chamo isso
oldsys
) - como root: crie um arquivo vmdk apontando para o novo disco rígido
VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/oldsys/oldsys.vmdk -rawdisk /dev/sdb
mude o proprietário de
oldsys.vmdk
root para o seu.crie uma regra udev para permitir acesso bruto ao disco, por exemplo
KERNEL=="sdb", OWNER="myusername", MODE="0600"
No VirtualBox, conecte
oldsys.vmdk
o controlador SATA virtual da VM oldsys.Se o oldsys for um sistema inicializado por EFI, altere as configurações da VM do oldsys em "sistema" para "ativar EFI"
talvez seja necessário ativar o "IO-APIC" também.
reinicie para ativar a regra do udev
execute oldsys no VirtualBox. Deve inicializar sem problemas.
Responder2
Eu sugeriria capturar uma imagem de disco usandoddrescuee, em seguida, usar o arquivo de imagem para apoiar o armazenamento da VM. Dessa forma, você não arrisca a cópia original dos seus dados caso algo dê errado com seus planos de virtualização.
O KVM certamente funcionaria, pois inicializaria o sistema operacional completo. O LXC pode funcionar, dependendo da semelhança dos sistemas. A principal limitação do LXC é que tudo o que você executar dentro do contêiner compartilhará o kernel do host. KVM permite que você execute um kernel dentro do convidado. Contanto que você esteja apenas operando em uma cópia de seus dados, será seguro experimentar até encontrar a configuração que funciona melhor para sua situação.
Responder3
É possível, mas é aconselhável criar um backup do seu disco - se você se preocupa com esses dados.
Contanto que a CPU do PC host tenha suporte para virtualização (na Intel, verifique via grep vmx /proc/cpuinfo
), o KVM não retarda muito o convidado.
Supondo que seu disco antigo esteja disponível, /dev/sde
você poderia usar um comando como este (como usuário normal):
$ qemu-system-x86_64 -enable-kvm -drive file=/dev/sde,if=virtio,format=raw \
-m 2048 \
-net user,hostfwd=tcp::10022-:22 -net nic,model=virtio
Isso inicializa uma VM com 2 GiB de RAM. As -net
opções só são necessárias se você estiver interessado em um encaminhamento de porta para o convidado sshd e acesso à rede de convidados em geral.
Se você decidir usar um arquivo de imagem em vez do disco real, basta substituí-lo /dev/sde
pelo nome do arquivo de imagem.
Responder4
Resolvi isso usando VBoxManage. Basicamente criei uma nova VM VirtualBox, troquei o disco bruto e subi.
Inicialmente, tive um problema ao configurar a rede corretamente (porque o kernel do host era muito antigo para meus módulos auxiliares do kernel do VirtualBox), mas depois de uma atualização do kernel, obtive uma conexão de rede bridget e, a partir de então, tudo correu bem.