Ist es möglich, virtuelle Maschinen in physische Umgebungen zu konvertieren?


78

Es ist möglich, eine .vdi-Datei in eine .iso-Datei umzuwandeln, die auf eine CD oder DVD gebrannt werden kann, und sie wie ein Installationsprogramm zu machen. Oder ist es möglich, virtuelle Maschinen in physische Umgebungen zu konvertieren?


1
Diese Antwort auf AskUbuntu.com gilt wahrscheinlich für viele Umgebungen, die auf Linux- Hostcomputern
ausgeführt

Antworten:


64

Ja und nein.

Sie können eine VDI mit dem VBoxManage- Tool in ein Image konvertieren . Dieser Befehl kopiert ein registriertes Image einer virtuellen Festplatte in eine andere Image-Datei. Wenn Sie Ihre virtuelle Festplatte in ein anderes Format konvertieren möchten, ist dies das offizielle VirtualBox-Tool, das [*] verwendet.

VBoxManage clonehd file.vdi output.img --format RAW
  • Wenn Sie ein dynamisches VDI verwenden und eine ältere Version von VirtualBox haben, funktioniert clonehd möglicherweise nicht richtig. Das interne Befehlstool von VBoxManage enthält converttoraw , mit dem ein dynamisches VDI in ein Raw-Image ( Quelle ) [+] konvertiert werden kann .

VBoxManage internalcommands converttoraw file.vdi output.img

Aber ... diese Ausgabe-IMG-Datei ist kein ISO-Image, und das installierte Betriebssystem kann nicht von einer bootfähigen CD / DVD ausgeführt werden. Sie können den IMG auf eine Festplatte "brennen" (schreiben) und er wird möglicherweise auf nackter Hardware gestartet (z. B. nicht in einer virtuellen Maschine). Dies ist jedoch möglicherweise nicht der Fall, da das in diesem IMG installierte Betriebssystem erwartet, dass die von VirtualBox bereitgestellte virtuelle Hardware angezeigt wird, und Sie das System auf realer Hardware booten, die nicht erwartet wird.

Einige Windows-Versionen kommen mit dieser Situation nicht gut zurecht. Einige Linux-Distributionen tun dies. Es ist manchmal möglich, ein Betriebssystem (vorher oder nachher) so zu konfigurieren, dass es von einer Umgebung in die andere migriert wird. Bestimmte Schritte hängen jedoch vollständig von dem zu migrierenden Betriebssystem ab.


Unter Windows müssen Sie möglicherweise den vollständigen Pfad zum Programm angeben:

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

Fügen Sie Ihrem PFAD C: \ Programme \ Sun \ VirtualBox hinzu , um die Kurzversion zu verwenden.


[*] Ich gehe davon aus, dass die Option "--format RAW" in ein Standard-Image konvertiert wird, als ob Sie den Befehl dd auf einer physischen Festplatte verwendet hätten. Aber ehrlich gesagt, ich habe keine Dokumentation gefunden, die dies belegt. Seien Sie sich also bewusst, dass dies möglicherweise nicht korrekt ist.

[+] Ich habe gerade beide Befehle unter VirtualBox 3.1.2 getestet. Beide Ausgabedateien sind laut md5sum identisch , aber ich habe die Ausgabedateien nicht vollständig getestet.

Siehe auch das Tutorial "Alles über VDIs" in den VirtualBox-Foren.


3
Was ist mit der Größe des VDI? Spielt das eine Rolle? Angenommen, die VDI-Größe beträgt 20 GB und die tatsächliche Festplattengröße 200 GB. Was würde passieren?
Pwnna

Diese erste Methode "clonehd" scheint furchtbar langsam zu sein. Aber der zweite war ein Vergnügen.
Matt H

1
Beachten Sie auch, dass Sie ein Windows-Betriebssystem in den meisten Fällen reaktivieren müssen, wenn Sie es zum Booten bringen.
Kimmax,

Was wäre, wenn Sie zuerst sysprep /generalizedie virtuelle Installation durchführen würden? Dies würde sicherlich die Installation für die Installation auf neuer Hardware (oder in diesem Fall physischer Hardware)
vorbereiten

1
@Pwnna Sie kopieren ein Image einer Festplatte (nicht nur eine Partition, sondern eine gesamte Partitionszuordnung mit Partitionen). Ich habe dies in der Vergangenheit getan und erinnere mich, was diese Antwort beschreibt, unbenutzter / unpartitionierter Speicherplatz am Ende: serverfault.com/questions/268889/…
sudo

21

Wenn Ihre VDI-Datei Partitionen enthält und Sie nur eine davon extrahieren möchten, gehen Sie wie folgt vor:

Zunächst konvertieren Sie, wie bereits erwähnt, die VDI-Datei in eine RAW-Image-Datei:

# VBoxManage clonehd file.vdi file.raw --format RAW

Richten Sie dann eine Endlosschleife für das Bild ein:

# loopdev=$(losetup --show -r -f file.raw)

Verwenden Sie kpartx, um Geräte für jede Partition in der Rohdatei zu erstellen:

# apt-get install kpartx
# kpartx -a $loopdev

Sehen Sie, welche Geräte wir jetzt haben. In diesem Beispiel gibt es nur ein Gerät, da das Raw-Image nur eine Partition enthält:

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

Stellen Sie nun sicher, dass alles ordnungsgemäß funktioniert:

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

Verwenden Sie dd, um den Partitionsinhalt auf eine andere Zielpartition zu kopieren:

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

Nachdem Sie fertig sind, entfernen Sie die Gerätezuordnungen erneut:

# kpartx -d file.raw

Ist das mit Windows möglich?
Ehsan

13

Die Antwort lautet definitiv Ja, falls Ihr Host- und Gastsystem Linux ist. Es ist fertig mit den Paketen qemuund TKLPatch. Sie können sowohl VDI- als auch VMDK-Dateien verwenden.

Weiterlesen:


3
+1 "definitiv" mit dem Vorbehalt "..soweit Ihr Gast Linux ist" . und ihre (Ihre?) Lösung stützt sich auf einige TurnKey Linux-Tools. aber die Prozedur sieht gut aus. (Willkommen bei Super User!)
Quack Quixote

5

Ich habe das VBoxManage clonehd file.vdi output.img --format RAWaus der akzeptierten Antwort versucht , aber ohne viel Erfolg.

Was für mich mit einer virtuellen Windows 8.1-Maschine auf einem Windows 7-Host funktioniert hat, ist Folgendes:

  1. Erstellen Sie einen Windows 8.1-Computer in VirtualBox, und installieren und verwenden Sie ihn so, wie Sie es normalerweise mit einer VM tun würden.
  2. Konvertieren Sie die Virtual Box .vdi-Festplatte in Windows VHD mitVBoxManage clonehd source.vdi target.vhd --format vhd
  3. Stellen Sie die virtuelle Festplatte auf dem Windows-Hostcomputer als Laufwerk bereit (Sie können eine virtuelle Festplatte im Datenträgermanager in der Computerverwaltung bereitstellen.
  4. Klonen Sie die VHD (als Laufwerk gemountet) auf eine andere neue Festplatte (in meinem Fall ein über USB angeschlossener Laptop HD), DriveImage XML oder ein ähnliches Tool zum Klonen von Festplatten. Sie haben jetzt im Grunde die virtuelle Festplatte .vdi auf Bare Metal geklont.
  5. Installieren Sie die neue Festplatte in einem Computer. (in meinem Fall tauschen Sie den Laptop HDD)
  6. Legen Sie eine Windows 8.1-Installations-USB / -CD ein, booten Sie von dieser, wählen Sie Erweiterte Optionen und Automatische Reparatur. Durch die automatische Reparatur wird die neue Festplatte bootfähig.
  7. Booten Sie von der neuen Festplatte mit dem geklonten Windows 8.1 und führen Sie Windows Update aus. Dadurch werden Treiber für die Hardware Ihres Computers heruntergeladen, die bei der Ausführung von Windows in VirtualBox nicht bekannt waren. Sie müssen fehlende Treiber gegebenenfalls manuell installieren.
  8. Deinstallieren Sie VirtualBox Guest Additions. Optional können Sie VirtualBox installieren, sodass Ihr Bare-Metal-Windows 8.1 ein VirtualBox-Host sein kann.

1
Von @sum: Sie können BootICE versuchen , den 6. Schritt zu ersetzen, und stellen Sie sicher, dass Sie den richtigen MBR installieren.
Fixer1234

Vielen Dank. Ist BootICE in einigen Fällen zuverlässiger als die Installation von Windows 8.1? Wird Schritt 6, den ich beschrieben habe, möglicherweise den MBR durcheinander bringen?
Jan H

1
Dies wurde als Antwort von einem neuen Benutzer gepostet (ich glaube superuser.com/users/523958/sum ). Es sollte gelöscht werden, da es nicht als Antwort qualifiziert war. Deshalb habe ich den Beitrag kopiert und als Kommentar gespeichert, damit er nicht verloren geht. Ich persönlich kenne mich damit nicht aus.
Fixer1234

3

Ich mache diesen Prozess sehr schnell mit nur zwei Befehlszeilen unter Linux:

#VBoxManage internalcommands converttoraw your_disk_virtual.vmdk your_disk_virtual.img

ODER

#VBoxManage internalcommands converttoraw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

Mein vollständiger Artikel: http://www.previsioni.com.br/jailsonjan/?p=389


Wäre das .img in diesem Fall bootfähig?
Pumphouse

Ich denke nicht. Ich habe eine ähnliche Antwort von 0-Repräsentanten gesehen, die auf einfache Weise jedoch nutzlos erschien.
T.Todua

0

Verwenden Sie zum Konvertieren den folgenden Befehl:

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

Hier ist die Ausgabe:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
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.