Como posso reativar um PC Linux morto como um vm?

2

Um PC Linux atualmente morreu devido a uma falha na placa-mãe. O disco rígido, no entanto, ainda está funcionando. Eu transplantei o disco em outra máquina Linux e descobri que tudo estava legível.

Agora quero reviver o PC antigo, mas como uma VM. Isso é possível sem primeiro ter que converter o disco em um arquivo de imagem, ou seja, em execução com o disco existente? Eu não sei ainda se o KVM ou LXC é uma escolha melhor, mas preferiria o LXC porque o PC host é bastante lento. Isso é possível? Minha experiência com a implantação de VMs é bastante limitada ...

BTW, ambos os computadores executam o Gentoo Linux.

EDITADO

Obrigado por agora por todas as respostas. Para esclarecer as coisas, a principal razão pela qual eu preciso do disco rígido para rodar algum tipo de máquina virtual é que o computador antigo era o principal servidor de coda de um pequeno cluster de coda. Não consigo (facilmente) obter os dados das vice-partições "cruas", portanto, apenas executar um contêiner pode ser a maneira mais fácil. O computador host é muito restrito em relação às capacidades de hardware, então 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 antigo PC também usava o LVM. As várias partições e LVM LVs podem, no entanto, ser montadas no novo computador host muito bem - os dados estão lá, e uma vez eu acidentalmente inicializei o novo computador host com o disco antigo como "userland" (novo kernel, antigo userland) - funcionou, então os sistemas são bem parecidos.

O encanto de uma configuração LXC seria que ela não precisa de tantos recursos. A desvantagem é que não tenho idéia se os servidores da CODA funcionarão bem quando estiverem em um contêiner - portanto, colocá-los em uma VM completa pode ser mais seguro.

    
por Wolfgang Liebich 17.12.2016 / 09:35

4 respostas

3

É possível inicializar a partir de um disco rígido físico com o VirtualBox. Manual: usando um disco rígido host host de um convidado .

Em torno disso eu escrevi um howto alemão: Dualboot-Windows virtualisieren . Seu ponto focal é inicializar uma janela física, mas também funciona com o Linux.

Os principais pontos para você fazer:

  • Instale o VirtualBox. Certifique-se de ser membro do grupo vboxusers depois.
  • descubra o arquivo de dispositivo do novo disco rígido (por exemplo, /dev/sdb )
  • Crie uma VM no VirtualBox sem um disco rígido virtual (eu chamo de oldsys )
  • como root: crie o arquivo vmdk apontando para o novo disco rígido

VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/oldsys/oldsys.vmdk -rawdisk /dev/sdb

  • altere o proprietário de oldsys.vmdk da raiz para a sua.
  • crie uma regra do udev para permitir acesso ao disco bruto, por exemplo

    KERNEL=="sdb", OWNER="myusername", MODE="0600"

  • No VirtualBox, conecte oldsys.vmdk no controlador SATA virtual da VM oldsys.
  • Se o oldsys tiver sido um sistema inicializado por EFI, altere as configurações de VMs do oldsys em "system" para "ativar o EFI"
  • talvez seja necessário ativar "IO-APIC" também.
  • reinicialize para ativar a regra do udev
  • execute oldsys no VirtualBox. Deve inicializar sem problemas.
por 17.12.2016 / 10:40
2

Eu sugeriria capturar uma imagem de disco usando ddrescue e depois usar o arquivo de imagem para fazer o backup do armazenamento da VM. Dessa forma, você não arrisca a cópia original de seus dados se algo der errado com seus planos de virtualização.

O KVM certamente funcionaria, já que inicializaria o sistema operacional completo. O LXC pode funcionar, dependendo da similaridade dos sistemas. A principal limitação do LXC é que o que você executar dentro do contêiner compartilhará o kernel do host. O KVM permite que você execute um kernel dentro do guest. Contanto que você esteja apenas operando com uma cópia dos seus dados, deve ser seguro experimentar até encontrar a configuração que funciona melhor para sua situação.

    
por 17.12.2016 / 09:46
2

É possível, mas é aconselhável criar um backup do seu disco - se você se importa com esses dados.

Desde que a CPU do PC host tenha suporte à virtualização (na Intel, verifique via grep vmx /proc/cpuinfo ), o KVM não atrasa muito o convidado.

Assumindo que seu disco antigo esteja disponível como /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 opções -net são necessárias apenas se você estiver interessado em um encaminhamento de porta para o acesso sshd convidado e para a rede guest em geral.

Se você decidir usar um arquivo de imagem em vez de um disco real, basta substituir /dev/sde pelo nome do arquivo de imagem.

    
por 17.12.2016 / 10:40
0

Eu resolvi isso usando o VBoxManage. Basicamente eu criei uma nova VM VirtualBox, troquei no disco bruto e subi.

Inicialmente tive um problema com a configuração correta da rede (porque o kernel do host era muito antigo para meus módulos auxiliares do kernel do VirtualBox), mas após uma atualização do kernel obtive uma conexão de rede bridget e a partir daí .

    
por 17.02.2017 / 09:21