Como posso reviver um PC Linux morto como uma VM?

Como posso reviver um PC Linux morto como uma VM?

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 vboxusersdepois.
  • 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.vmdkroot 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.vmdko 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/sdevocê 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 -netopçõ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/sdepelo 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.

informação relacionada