Migrieren Sie von einer virtuellen Maschine (VM) zu einem physischen System


124

Aka: Wie kann ich eine .vdi oder .vmdk in eine echte Installation auf einer physischen Festplatte konvertieren?

Ist es möglich / machbar, eine Virtual Machine-Installation von Ubuntu auf eine physische Maschine zu migrieren? Wenn möglich, wie schwierig wäre das und welche Schritte müsste ich unternehmen, um mich auf die Migration vorzubereiten.

Ich würde gerne ein paar Tests auf einer VM durchführen und wenn es klappt, das System auf physische Hardware migrieren, anstatt alles neu zu installieren. Ist das möglich?


Antworten:


98

Ja es ist möglich. Es ist nicht einmal so schwer, es dauert nur eine Weile, eine Ubuntu LiveCD, eine selbstklebende Plastik und eine externe USB-Festplatte (wenn Sie nicht mehr als eine interne Festplatte haben).

Vorbereitender Schritt: Konvertieren Sie die Festplatte in etwas Nützliches

Sowohl VMWare als auch VirtualBox (unter anderem) verwenden Festplattenformate, die sich nicht gut dazu eignen, direkt auf die Festplatte geschrieben zu werden. Sie können es, aber ich persönlich finde es bequemer, es zuerst auf ein Standard-Zwischenbild zu schreiben. Sie können dies von Ihrem aktuellen System aus tun, ohne von einer Live-CD booten zu müssen.

  • Laden Sie ein Terminal und feuern Sie in:

    cd /media/wherever-the-image-is/
    
    # for VMWare
    sudo apt-get install qemu-kvm
    qemu-img convert your-vmware-disk.vmdk -O raw disk.img
    
    # For VirtualBox
    VBoxManage clonehd your-virtualbox-disk.vdi disk.img --format RAW
    
  • Bewegen Sie sich an einen /media/wherever-the-image-is/disk.imgOrt, an den Sie nicht schreiben möchten. Wenn Sie vorhaben, es auf die Festplatte zu schreiben, auf der es sich gerade befindet, sollten Sie es auf eine separate interne Festplatte oder, im schlimmsten Fall, auf eine externe Festplatte stecken.

  • In den folgenden Anweisungen wird davon ausgegangen, dass Sie es verschoben haben /media/dave/disk.img(es davehandelt sich um ein externes USB-Laufwerk).

  • Stellen Sie sicher, dass Sie über Sicherungen verfügen, bevor Sie ernsthafte Schreibvorgänge ausführen . Es ist eine klischeehafte Sache zu sagen, aber ein Tippfehler und es gibt eine sehr reale Möglichkeit, dass Sie Ihr System kaputt machen. Nehmen Sie an, dass etwas schief gehen wird und seien Sie vorbereitet. CloneZilla kann Ihnen dabei helfen, vollständige Festplatten-Backups zu erstellen, wenn Sie diese Daten irgendwo speichern möchten.

Schreiben Sie das Image auf eine eigene Festplatte

Sie werden so etwas tun wollen. Dies setzt voraus, dass Sie eine ganze Festplatte überschreiben werden. Wenn Sie eine Installation unter Windows ausführen möchten, befolgen Sie diese Anweisungen nicht! Springe nach den Kugeln.

  • Starten Sie eine Ubuntu Live-CD und klicken Sie auf Ubuntu testen.

  • Hängen Sie den Ort ein, an dem Ihr vmdk-Image gespeichert wird (z. B. das externe USB-Laufwerk als /media/dave). Montieren Sie nicht den Ort, an den Sie schreiben möchten.

  • Dann gehen wir zur Arbeit:

    sudo dd if=/media/dave/disk.img of=/dev/sdX
    

    Sie möchten sdXmit dem richtigen Pfad zu Ihrer Zieldiskette ersetzen . Das sudoPasswort ist leer, drücken Sie einfach die Eingabetaste.

  • Sie können dann öffnen gpartedoder etwas anderes und Sie sollten sehen, dass Ihre Ubuntu-Partition auf der Festplatte sitzt. Sie sollten es erweitern können.

Schreiben Sie das Image zusammen mit einem anderen Betriebssystem auf eine Festplatte

Dies ist vielleicht eine insgesamt sicherere Art, Dinge zu tun. Die Idee ist sehr ähnlich, abgesehen davon, dass Sie eine ordnungsgemäße Installation von Ubuntu durchführen und dann einfach über die Dateien von synchronisieren disk.img.

  • Ihre Live-CD muss diesmal dieselbe Ubuntu-Version wie Ihre virtuelle Installation haben. Starten Sie die Live-CD und klicken Sie erneut auf Installieren.

  • Folgen Sie dem Installationsprogramm und partitionieren Sie die Dinge nach Belieben. Nach ca. 10 Minuten werden Sie aufgefordert, den Computer neu zu starten. Nicht neustarten. Es spielt keine Rolle, wenn Sie dies versehentlich tun. Vergewissern Sie sich, dass Sie wieder auf der LiveCD sind, um die nächsten Anweisungen zu erhalten.

  • Hängen Sie die Partition Ihrer neuen Installation und Ihre externe Festplatte dort ein, wo Sie sie zuvor gespeichert disk.imghaben (doppelklicken Sie einfach in nautilus darauf).

  • Hängen Sie Ihre disk.img-ISO in ein Terminal ein:

    sudo mkdir /media/oldinstall
    sudo mount -o loop /media/dave/disk.img /media/oldinstall
    

    -Hinweis - Wenn Sie nach dem Erstellen der gewünschten IMG-Datei versuchen, diese als Loop-Gerät zu mounten, wird möglicherweise der folgende Fehler angezeigt

    "NTFS-Signatur fehlt. Mounten von '/ dev / loop0' fehlgeschlagen: Ungültiges Argument Das Gerät '/ dev / loop0' scheint kein gültiges NTFS zu haben."

    Eine IMG-Datei enthält manchmal einen Master-Startdatensatz und eine Partitionstabelle vor der tatsächlichen Partition, die Sie möglicherweise bereitstellen möchten. Daher müssen Sie den Versatz der erforderlichen Partition herausfinden. Hierzu kann man das geteilte Werkzeug verwenden. Ein Beispiel finden Sie in der Antwort von sisco311 unter http://ubuntuforums.org/archive/index.php/t-1576011.html

    Wenn Sie also festgelegt haben, dass Ihr Offset 'xxx' ist, können Sie Ihre Partition mit mounten

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • Von dort aus können Sie entweder Dateien auswählen oder einfach alles über Ihre neue Ubuntu-Installation kopieren.

    sudo rsync /media/oldinstall/ /media/my-new-install/
    
  • Starten Sie neu und Sie sollten mit Ihrer alten VMWare-Installation begrüßt werden, jedoch auf Bare-Metal-Basis. Wenn Sie unangenehme Probleme haben, können Sie diese beheben, indem Sie zur Live-CD zurückkehren und dort chrooten und Fehler beheben .


7
Kennen Sie ein Tool, das dies automatisch erledigt?
the_drow

1
Bei Setups unter Windows / VirtualBox VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXfunktioniert der Befehl weiterhin. Alles was benötigt wird, ist eine CD zu erstellen, Program Files\Oracle\VirtualBoxbevor der erste Befehl ausgeführt wird.
Aust

2
@Aust Ich bezweifle, dass dies /dev/sdXein gültiges Ziel in Windows ist. AFAIK wird es sein \\Device\Harddisk0oder so ähnlich.
Danatela

3
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXfunktioniert nicht Unter Linux gibt es den Fehler: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS. Es ist erforderlich, den VBoxManageBefehl zu verwenden, um ihn zuerst an ein Bild zu senden. Verwenden Sie dann DD, um das Image auf die physische Festplatte zu kopieren.
LD James

8

Vielleicht ist es nicht genau das, wonach Sie fragen, aber es kann das erreichen, was Sie tun möchten.

Da alle Ihre Einstellungen in Ihrem Home-Verzeichnis gespeichert sind, können Sie einfach eine Sicherungskopie davon auf eine andere Partition auf einer realen Festplatte erstellen. Nachdem Sie ein neues Ubuntu auf einer echten Festplatte installiert haben, führen Sie einfach das Sicherungsprogramm erneut aus, um Ihr Ausgangsverzeichnis mit allen Einstellungen wiederherzustellen.

Sie können ein wirklich nettes Backup-Programm namens Déjà Dup verwenden .

Info vom Ubuntu Software Center:

Déjà Dup ist ein einfaches Backup-Tool. Es verbirgt die Komplexität des Sicherns auf die richtige Weise (verschlüsselt, extern und regelmäßig) und verwendet die Duplizität als Backend.

Eigenschaften:

  • Unterstützung für lokale, Remote- oder Cloud-Sicherungsspeicherorte wie Amazon S3 oder Rackspace Cloud Files

  • Verschlüsselt und komprimiert Ihre Daten sicher

  • Sichert inkrementell, sodass Sie von einer bestimmten Sicherung wiederherstellen können

  • Plant regelmäßige Backups

  • Integriert sich gut in Ihren GNOME-Desktop

Bildbeschreibung hier eingeben

Sie werden in weniger als zwei Stunden fertig sein!

Viel Glück!


1
Klingt einfach. Kann s / o bestätigen, dass es wirklich so funktioniert?
Mateng

unter anderem ... die UID (Benutzernummern) kann zu diesem Zeitpunkt unterschiedlich sein.
Tomachi

5

Versuchen Sie es mit UDPCast

Die Idee ist, das gesamte VMDK von der virtuellen Maschine auf die physische Maschine zu streamen, wo es auf die physische Festplatte geschrieben wird.

Die Vorgehensweise ist unten beschrieben.

Da Sie eine vmdk-Datei haben, steht Ihnen möglicherweise eine VMWare-Arbeitsstation zur Verfügung, sogar eine vollständige virtuelle Maschine, an die diese vmdk angehängt ist. Führen Sie Ihre virtuelle Maschine mit diesem speziellen vmdk aus, verwenden Sie jedoch anstelle des normalen Startvorgangs PartedMagic liveCD, um von dieser zu starten.

Wenn die Live-CD gestartet ist, navigieren Sie zum Hauptmenü und suchen Sie die UDPCast Disk Cloning. Die Dialoge sind selbsterklärend (siehe Screenshot) UDPCast Disk Cloning-Startbildschirm

Nachdem Sie diese virtuelle Maschine als die ausgewählt haben sender, sollten Sie auswählen, welches Laufwerk gesendet werden soll (unter Verwendung der Unix-Notation wie / dev / sda).

Nachdem Sie das gestartet haben sender, müssen Sie auch starten receiver. Da Sie über eine physische Festplatte verfügen, haben Sie vermutlich auch einen vollständigen PC mit dieser Festplatte. Das Gleiche gilt hier: Sie müssen die Live-CD mit der UDPCast Disk CloningAuswahl receiverdieser Zeit und der entsprechenden physischen Festplatte starten .

Beachten Sie, dass Sie alle erforderlichen Vorkehrungen treffen sollten, um eine Netzwerkverbindung zwischen Ihrer virtuellen Maschine und der physischen Hardware herzustellen. Sie sollten die notwendigen Vorkehrungen treffen, wenn Ihre vmdk private Daten enthält, da deren Inhalt effektiv über Ihr Netzwerk gestreamt wird. Eine andere Sache ist, dass Ihre Zielfestplatte nicht weniger Speicherkapazität haben sollte, als die Kapazität Ihres vmdk. Es ist offensichtlich, aber auch erwähnenswert, dass Ihr Image eins zu eins auf Ihrer Zielfestplatte angelegt ist und Sie geeignete Vorgänge mit gparted oder ähnlichem ausführen müssen, um die Kapazität Ihrer neuen Festplatte zu erhöhen.


Ich möchte darauf hinweisen, dass diese Methode wirklich unkompliziert und relativ einfach durchzuführen ist. Der einzige Vorbereitungsschritt, den Sie ausführen müssen, ist die Vorbereitung Ihrer Live-CD mit UDPCast oder einer anderen Live-CD, die zum Herunterladen und Ausführen von UDPCast ausreicht. Wenn Sie ein virtuelles HD-Image haben, haben Sie es definitiv in einer virtuellen Maschine verwendet, die bereits eingerichtet und bereit ist. Andererseits haben Sie Ihr physisches System vorbereitet und es ist auch bereit für die Aufgabe.
PF4Public

Es gibt noch mehr: UDPCast kann direkt von PXE ausgeführt werden. udpcast.linux.lu/bootloader.html#pxe
PF4Public

4

Wenn Sie VirtualBox installiert haben, können Sie die VDI-Datei (VirtualBox Drive Image) mit dem VBoxManageBefehl in das IMG-Format konvertieren und dann auf die physische Festplatte kopieren, z

VBoxManage clonehd --format RAW file.vdi file.img

Anschließend können Sie dddie Datei mit dem Befehl in die physische Partition kopieren:

dd if=./file.img of=/dev/<partition_here>

Hinweis: Verwenden Sie bei Bedarf sudo. Seien Sie vorsichtig, wenn Sie das richtige Gerät in / dev angeben.


0

Wenn Sie die neue physische Festplatte an den Computer angeschlossen haben, auf dem sich die virtuelle VM-Festplatte befindet, können Sie VDI ohne Zwischenkonvertierung in physische konvertieren, was wahrscheinlich eine Menge Zeit und Speicherplatz spart. Dies setzt voraus, dass Ihre physische Festplatte mindestens so groß ist wie die maximale Größe der virtuellen Festplatte. In meinem Fall bestand das Ziel darin, ein VDI in ein ZFS-zvol umzuwandeln, aber der Ansatz sollte bei jedem Blockgerät derselbe sein.

Erstellen Sie zunächst eine VMDK-Datei, die auf Ihr Blockgerät verweist:

VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX

Dann (mit dem Herunterfahren der VM!) Können Sie die VDI auf das VMDK klonen:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

Das wird eine Weile dauern ... Wenn es fertig ist, können Sie die VMDK-Datei löschen, da sie nur als Zeiger verwendet wurde, damit VirtualBox das physische Gerät findet.

In meinem Fall hatte das neue zvol genau die gleiche Größe wie das virtuelle Laufwerk. Angesichts der Tatsache, dass Ihre physische Festplatte wahrscheinlich anders ist, müssen Sie eine Art Partitionsgrößenänderungsmechanismus anwenden, um die gesamte Festplatte zu füllen. Gparted oder so. Sie sollten in der Lage sein, dies auf das physische / dev / sdX-Gerät zu verweisen, während es noch an den VM-Computer angeschlossen ist, damit Sie nicht auf die Boot-CD des physischen Hosts zurückgreifen müssen.

Sobald die Größenänderung abgeschlossen ist, stecken Sie das Laufwerk in Ihren physischen Computer, drücken Sie die Daumen und schalten Sie den Computer ein.

Wenn Sie das physische Laufwerk weiterhin mit VirtualBox verwenden möchten, lassen Sie das VMDK in der Nähe und VBoxManage storageattachverbinden Sie es mit der VM.


Es sieht so aus, als ob es funktioniert, aber die Daten werden irgendwie beschädigt und das Betriebssystem bootet nicht richtig.
Sarge Borsch
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.