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


Aka: Wie kann ich eine .vdi oder .vmdk in eine reale 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 dies zu erreichen und welche Schritte müsste ich unternehmen, um mich auf die Migration vorzubereiten?

Ich möchte einige Tests auf einer VM durchführen und wenn es funktioniert, migrieren Sie dieses System auf physische Hardware, anstatt alles neu zu installieren. Ist das möglich?


115
2018-03-29 09:42


Ursprung


Verbunden: Ist es möglich, virtuelle Maschinen in physische Umgebungen zu konvertieren?bei SU - kenorb


Antworten:


Ja es ist möglich. Es ist nicht einmal Das schwer, es dauert nur ein bisschen, eine Ubuntu LiveCD, sticky-back-plastic, 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 verwenden (unter anderem) Disk-Formate, die nicht gut dafür geeignet sind, direkt auf die Festplatte geschrieben zu werden. Sie kann aber ich persönlich finde es bequemer, es zuerst auf ein intermediäres Standardbild zu schreiben. Sie können dies von Ihrem aktuellen System aus tun, ohne auf einer LiveCD booten zu müssen.

  • Laden Sie ein Terminal und feuern Sie ein:

    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 internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdX
    
  • Bewegung /media/wherever-the-image-is/disk.img irgendwo, wo du nicht schreiben willst. Wenn Sie vorhaben, es auf den Datenträger zu schreiben, auf dem es gerade sitzt, sollten Sie es auf eine separate interne Festplatte oder auf eine externe Festplatte legen.

  • Die folgenden Anweisungen gehen davon aus, dass Sie es verschoben haben /media/dave/disk.img (dave ist eine externe USB-Festplatte)

  • Bevor Sie ernsthaft schreiben, Stellen Sie sicher, dass Sie Sicherungskopien haben. Es ist ein Klischee zu sagen, aber ein Tippfehler und es gibt eine sehr reale Möglichkeit, Ihr System zu vernichten. Angenommen, die Dinge werden schief gehen und vorbereitet sein. CloneZilla kann Ihnen helfen, ganze Datenträgersicherungen zu erstellen, wenn Sie irgendwo diese Daten speichern möchten.

Schreiben Sie das Bild auf eine eigene Festplatte

Du wirst so etwas machen wollen. Dies setzt voraus, dass Sie eine ganze Festplatte überschreiben werden. Wenn Sie eine Windows-Installation nebenbei durchführen möchten, befolgen Sie diese Anweisungen nicht! Springe zu den Kugeln.

  • Booten Sie auf eine Ubuntu Live CD und klicken Sie auf Try Ubuntu.

  • Stellen Sie den Speicherort für Ihr vmdk - Image bereit (z. B. die externe USB - Festplatte als /media/dave). Machen nicht mount den Ort, wo Sie schreiben möchten.

  • Dann gehen wir zur Arbeit:

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

    Sie möchten ersetzen sdX mit dem richtigen Pfad zu Ihrer Zielfestplatte. Das sudo Passwort ist leer, drücken Sie einfach Return.

  • Sie können dann öffnen gparted oder etwas anderes und Sie sollten Ihre Ubuntu-Partition auf dem Datenträger sitzen sehen. Sie sollten in der Lage sein, es zu erweitern.

Schreiben Sie das Image auf einen Datenträger neben einem anderen Betriebssystem

Dies ist vielleicht eine völlig 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 synchronisieren disk.img.

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

  • Folgen Sie dem Installer durch, verteilen Sie die Dinge so, wie Sie es für richtig halten. Etwa 10 Minuten später werden Sie installiert und Sie werden aufgefordert, den Computer neu zu starten. Starten Sie nicht neu. Es spielt keine Rolle, wenn Sie es versehentlich tun, stellen Sie sicher, dass Sie wieder in der LiveCD für die nächsten Anweisungen sind.

  • Mounten Sie die Partition Ihrer neuen Installation und Ihre externe Festplatte, auf der Sie die Partition gespeichert haben disk.img von früher (nur Doppelklick in Nautilus).

  • Mounten Sie Ihre disk.img ISO in einem Terminal:

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

    -Note - Nach dem Erstellen der gewünschten IMG-Datei, manchmal, wenn Sie versuchen, es als ein Loop-Gerät mounten, können Sie den folgenden Fehler erhalten

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

    Eine IMG-Datei enthält manchmal einen Master-Boot-Record und eine Partitionstabelle vor der eigentlichen Partition, die Sie mounten möchten. Daher müssen Sie den Offset der erforderlichen Partition herausfinden. Zu diesem kann man den benutzen geteilt Werkzeug. Sehen Sie sich zum Beispiel die Antwort von sisco311 in diesem Link an http://ubuntuforums.org/archive/index.php/t-1576011.html 

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

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • Von dort 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 und Sie sollte mit deiner alten VMWare-Installation begrüßt werden, aber auf blankem Metall. Wenn Sie böse Grub Probleme bekommen, können Sie es beheben Zurück zur Live CD, Chrooten und Reparieren.


91
2018-03-29 10:44



Kennen Sie ein Tool, das das automatisch macht? - the_drow
Für Setups unter Windows / VirtualBox, das VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdX Befehl wird immer noch funktionieren. Alles, was benötigt wird, ist zu cd Program Files\Oracle\VirtualBox bevor Sie den ersten Befehl ausführen. - Aust
@Acht ich bezweifle das /dev/sdX ist ein gültiges Ziel in Windows. AFAIK wird es sein \\Device\Harddisk0 oder so ähnlich. - Danatela
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdX funktioniert nicht. In Linux gibt es den Fehler: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS. Es ist notwendig, das zu verwenden VBoxManage Befehl, um es zuerst an ein Bild zu senden. Verwenden Sie dann DD, um das Image auf die physische Festplatte zu übertragen. - L. D. James


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

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

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

Info vom ubuntu Software Center:

Déjà Dup ist ein einfaches Backup-Tool. Es verbirgt die Komplexität der Sicherung des Richtigen Wegs (verschlüsselt, off-site und regulär) und verwendet Duplizität als Backend.

Eigenschaften:

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

  • Verschlüsselt und komprimiert sicher Ihre Daten

  • Erhöht inkrementell und lässt Sie Wiederherstellung von einer bestimmten Sicherung

  • Plant regelmäßige Backups

  • Integriert sich gut in Ihr GNOME Desktop

enter image description here

Sie werden in weniger als zwei Stunden fertig sein!

Viel Glück!


8
2018-03-29 10:32



Klingt einfach. Kann ich bestätigen, dass es wirklich so funktioniert? - Mateng


Versuchen UDPast

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

Das Verfahren ist nachstehend beschrieben.

Da Sie eine vmdk-Datei haben, steht Ihnen möglicherweise eine VMWare Workstation zur Verfügung, sogar eine vollständige virtuelle Maschine, an die diese vmdk angehängt ist. Führen Sie Ihre virtuelle Maschine mit diesem bestimmten vmdk aus, aber verwenden Sie anstelle des normalen Bootvorgangs PartedMagic liveCD zum Booten.

Wenn LiveCD gestartet ist, navigieren Sie zum Hauptmenü und finden Sie die UDPCast Disk Cloning. Die Dialoge sind selbsterklärend (siehe Screenshot) UDPCast Disk Cloning start screen

Nach der Auswahl dieser virtuellen Maschine als sendersollten Sie auswählen, welches Laufwerk Sie senden möchten (in Unix-Notation wie / dev / sda).

Nachdem du angefangen hast senderDu musst anfangen receiver auch. Da du eine physikalische Festplatte hast, gehe ich davon aus, dass du auch einen kompletten PC mit dieser Festplatte hast. Das gleiche gilt hier: Sie müssen LiveCD mit starten UDPCast Disk Cloning Auswählen receiver dieses mal sowie entsprechende physikalische hdd.

Beachten Sie, dass Sie alle notwendigen Vorkehrungen treffen sollten, um eine Netzwerkverbindung zwischen Ihrer virtuellen Maschine und der physischen Hardware herzustellen. Sie sollten die notwendigen Vorkehrungen treffen, wenn Ihr vmdk private Daten enthält, da sein Inhalt effektiv über Ihr Netzwerk streamen würde. Eine andere Sache ist, dass Ihre Ziel-Festplatte nicht weniger Speicherkapazität haben sollte, als die Kapazität Ihres vmdk. Es ist offensichtlich, aber es ist auch erwähnenswert, dass Ihr Image eins zu eins auf Ihrer Ziel-Festplatte angelegt ist und Sie geeignete Operationen mit gparted oder ähnlichem ausführen müssen, um die größere Kapazität Ihrer neuen Festplatte zu nutzen.


4
2018-02-12 23:24



Ich möchte anmerken, dass diese Methode sehr einfach und relativ einfach durchzuführen ist. Der einzige Vorbereitungsschritt, den Sie vornehmen müssen, besteht darin, Ihre LiveCD mit UDPCast darauf oder auf einer anderen LiveCD vorzubereiten, was ausreicht, um UDPCast herunterzuladen und auszuführen. Wenn Sie ein virtuelles hd-Image haben, haben Sie es definitiv in einer virtuellen Maschine verwendet, die bereits fertig und bereit ist, auf der anderen Seite haben Sie Ihr physisches System vorbereitet und es ist auch bereit für die Aufgabe. - PF4Public
Es gibt noch mehr: UDPCast könnte direkt von PXE ausgeführt werden. udpcast.linux.lu/bootloader.html#pxe - PF4Public


Wenn Sie VirtualBox installiert haben, können Sie konvertieren VDI-Datei (VirtualBox-Laufwerk-Image) in das IMG-Format durch die Nutzung VBoxManage Befehl, kopieren Sie dann auf die physische Festplatte, z.

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

Dann kannst du verwenden dd Befehl zum Kopieren der Datei in die physische Partition:

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.


3
2018-06-03 15:22





Wenn der neue physische Datenträger an den Computer angeschlossen ist, auf dem sich der virtuelle Datenträger der virtuellen Maschine befindet, können Sie VDI ohne eine zwischenzeitliche Konvertierung in physisch konvertieren, was wahrscheinlich eine Menge Zeit und Speicherplatz spart. Dies setzt voraus, dass Ihr physischer Datenträger gleich oder größer als die maximale Größe des virtuellen Laufwerks ist. In meinem Fall war das Ziel, eine VDI in eine ZFS zvol zu konvertieren, aber der Ansatz sollte der gleiche mit jedem Blockgerät sein.

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

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

Dann (mit der VM-Shutdown!) Können Sie die VDI auf die VMDK klonen:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

Das wird eine Weile dauern ...  Wenn Sie fertig sind, können Sie die VMDK-Datei löschen, da sie nur als Zeiger für VirtualBox verwendet wurde, um das physische Gerät zu finden.

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 einen Mechanismus zur Größenänderung der Partitionen verwenden, um die gesamte Festplatte auszufüllen. Gparted oder etwas vielleicht. Sie sollten in der Lage sein, auf das physische / dev / sdX-Gerät zu zeigen, während es noch an den VM-Computer angeschlossen ist, so dass Sie nicht auf den physischen Host der Boot-CD zurückgreifen müssen.

Wenn die Größenänderung abgeschlossen ist, öffne das Laufwerk in deiner physischen Maschine, führe deine Finger durch und schalte es hoch.

Falls Sie das physische Laufwerk weiterhin mit VirtualBox verwenden möchten, halten Sie das VMDK in der Nähe und verwenden Sie es VBoxManage storageattach um es mit der VM zu verbinden.


0
2018-05-15 13:23



Es sieht so aus, als ob es funktioniert, aber die Daten werden irgendwie beschädigt und das Betriebssystem wird nicht richtig booten. - Sarge Borsch