Wie kann ich einen toten Linux-PC als VM wiederbeleben?

Wie kann ich einen toten Linux-PC als VM wiederbeleben?

Ein Linux-PC ist kürzlich aufgrund eines Motherboard-Fehlers abgestürzt. Die Festplatte funktioniert jedoch noch. Ich habe die Platte in einen anderen Linux-Rechner eingesetzt und festgestellt, dass alles lesbar war.

Nun möchte ich den alten PC wiederbeleben, allerdings als VM. Ist das möglich, ohne die Platte vorher in eine Image-Datei umwandeln zu müssen, also mit der vorhandenen Platte zu laufen? Ich weiß noch nicht, ob KVM oder LXC die bessere Wahl ist, würde aber LXC bevorzugen, da der Host-PC eher langsam ist. Ist das möglich? Meine Erfahrung mit VM-Deployment ist eher begrenzt...

Übrigens laufen beide Computer unter Gentoo Linux.

BEARBEITET

Danke erstmal für alle Antworten. Um das klarzustellen: Der Hauptgrund, warum ich die Festplatte brauche, um eine Art virtuelle Maschine auszuführen, ist, dass der alte Computer der Haupt-Coda-Server eines kleinen Coda-Clusters war. Ich kann die Daten nicht (einfach) aus den „rohen“ Vice-Partitionen herausholen, also ist es vielleicht am einfachsten, einfach einen Container auszuführen. Der Host-Computer ist in Bezug auf die Hardware-Fähigkeiten sehr eingeschränkt, also wird das Klonen der Festplatte einfach per dd nicht funktionieren – nicht genug Platz (!) (fragen Sie nicht, warum :-/ – ein ziemlich seltsames Setup). Außerdem verwendete der alte PC auch LVM. Die verschiedenen Partitionen und LVM-LVs können jedoch recht gut auf dem neuen Host-Computer gemountet werden – die Daten sind da, und einmal habe ich den neuen Host-Computer sogar versehentlich mit der alten Festplatte als „Userland“ (neuer Kernel, altes Userland) gebootet – hat funktioniert, also sind die Systeme ziemlich ähnlich.

Der Charme eines LXC-Setups besteht darin, dass es nicht so viele Ressourcen benötigt. Der Nachteil ist, dass ich keine Ahnung habe, ob die CODA-Server in einem Container gut laufen. Daher ist es möglicherweise sicherer, sie in eine vollständige VM zu packen.

Antwort1

Es ist möglich, mit VirtualBox von einer physischen Festplatte zu booten.Handbuch: Verwenden einer Raw-Hostfestplatte von einem Gast.

Dazu habe ich ein deutsches Howto geschrieben:Dualboot-Windows virtualisieren. Der Schwerpunkt liegt auf dem Booten eines physischen Windows, aber es funktioniert auch mit Linux.

Die wichtigsten Punkte, die Sie erledigen müssen:

  • Installieren Sie VirtualBox. Stellen Sie sicher, dass Sie anschließend Mitglied der Gruppe sind vboxusers.
  • Gerätedatei der neuen Festplatte ermitteln (zum Beispiel /dev/sdb)
  • Erstellen Sie eine VM in VirtualBoxohneeine virtuelle Festplatte (ich nenne sie oldsys)
  • als Root: VMDK-Datei erstellen, die auf die neue Festplatte verweist

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

  • Ändern Sie den Besitzer von oldsys.vmdkRoot zu Ihrem.

  • Erstellen Sie eine Udev-Regel, um sich beispielsweise den Rohdatenträgerzugriff zu erlauben

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

  • Schließen Sie in VirtualBox oldsys.vmdkden virtuellen SATA-Controller der VM oldsys an.

  • Wenn oldsys ein per EFI gebootetes System war, ändern Sie die VM-Einstellungen von oldsys unter „System“ auf „EFI aktivieren“.

  • Möglicherweise müssen Sie auch „IO-APIC“ aktivieren.

  • Neustart, um die Udev-Regel zu aktivieren

  • Führen Sie oldsys in VirtualBox aus. Es sollte ohne Probleme booten.

Antwort2

Ich würde vorschlagen, ein Disk-Image aufzunehmen mitAbonnierenund verwenden Sie dann die Image-Datei, um den Speicher der VM zu sichern. Auf diese Weise riskieren Sie nicht, dass die Originalkopie Ihrer Daten verloren geht, wenn bei Ihren Virtualisierungsplänen etwas schief geht.

KVM würde sicherlich funktionieren, da es das vollständige Betriebssystem booten würde. LXC könnte funktionieren, je nachdem, wie ähnlich die Systeme sind. Die Hauptbeschränkung bei LXC besteht darin, dass alles, was Sie im Container ausführen, den Kernel des Hosts gemeinsam nutzt. KVM ermöglicht es Ihnen, einen Kernel innerhalb des Gasts auszuführen. Solange Sie nur mit einer Kopie Ihrer Daten arbeiten, sollten Sie gefahrlos experimentieren können, bis Sie das Setup gefunden haben, das für Ihre Situation am besten geeignet ist.

Antwort3

Dies ist möglich, es empfiehlt sich jedoch, eine Sicherungskopie Ihrer Festplatte zu erstellen – wenn Ihnen diese Daten wichtig sind.

Solange die CPU des Host-PCs Virtualisierungsunterstützung bietet (unter Intel, prüfen Sie dies über grep vmx /proc/cpuinfo), verlangsamt KVM den Gast nicht sehr.

Vorausgesetzt, Ihre alte Festplatte ist verfügbar, /dev/sdekönnten Sie (als normaler Benutzer) einen Befehl wie diesen verwenden:

$ 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

Dadurch wird eine VM mit 2 GiB RAM gebootet. Die -netOptionen sind nur erforderlich, wenn Sie an einer Portweiterleitung zum Gast-SSHD und generell an Gast-Net-Zugriff interessiert sind.

Wenn Sie sich entscheiden, eine Image-Datei anstelle einer echten Festplatte zu verwenden, müssen Sie nur /dev/sdedurch den Dateinamen dieser Image-Datei ersetzen.

Antwort4

Ich habe das mithilfe von VBoxManage gelöst. Im Grunde habe ich eine neue VirtualBox-VM erstellt, die Raw-Festplatte ausgetauscht und bin hochgefahren.

Anfangs hatte ich ein Problem damit, das Netzwerk richtig einzurichten (weil der Host-Kernel für meine VirtualBox-Hilfskernelmodule zu alt war), aber nach einem Kernel-Upgrade bekam ich eine Bridget-Netzwerkverbindung und von da an lief alles ziemlich reibungslos.

verwandte Informationen