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

134922
Wern Ancheta

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

74
Diese Antwort auf AskUbuntu.com gilt wahrscheinlich für eine Vielzahl von Umgebungen, die auf Linux-Hostmaschinen ausgeführt werden: http://askubuntu.com/a/32506/31592 blong vor 11 Jahren 1

6 Antworten auf die Frage

60
quack quixote

Yes, and no.

You can convert a VDI into a disk image with the VBoxManage tool. This command clones a registered virtual disk image to another image file. If you want to convert your virtual disk to another format, this is the official VirtualBox tool to use[*].

VBoxManage clonehd file.vdi output.img --format RAW 
  • If you're using a dynamic VDI, and you have an older version of VirtualBox, clonehd may not operate properly. VBoxManage's internalcommands tool includes converttoraw, which can convert a dynamic VDI into a raw disk image (source)[+].

VBoxManage internalcommands converttoraw file.vdi output.img 

But... that output IMG file isn't an ISO image, and the OS that's installed will not be configured to run from a bootable CD/DVD. You can "burn" (write) the IMG onto a hard drive, and it might boot on bare hardware (eg not in a virtual machine). But it might not, because the OS installed on that IMG is expecting to see the virtual hardware that VirtualBox provides, and you're booting it on real hardware that it isn't expecting.

Some versions of Windows do not handle this situation well; some Linux distributions do. It is sometimes possible to configure an OS (beforehand or afterwards) to migrate it from one environment to the other like this, but specific steps depend completely on the OS being migrated.


On Windows, you may need to specify the full path to the program:

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

Add C:\Program Files\Sun\VirtualBox to your PATH to use the short version.


[*] I'm assuming the "--format RAW" option will convert to a standard disk image, as if you'd used the dd command on a physical harddrive. But frankly, I haven't found any documentation that backs this up, so be aware this may not be correct.

[+] I've just tested both commands under VirtualBox 3.1.2. Both output files are identical according to md5sum, but I haven't fully tested the output files.

See also the "All about VDIs" tutorial at the VirtualBox forums.

Was ist mit der Größe des VDI? Spielt das eine Rolle? Nehmen wir an, die VDI-Größe beträgt 20 GB und die tatsächliche Festplattengröße beträgt 200 GB. Was würde passieren? Pwnna vor 12 Jahren 3
Diese erste Methode "clonehd" scheint unglaublich langsam zu sein. Der zweite funktionierte jedoch sehr gut. Matt H vor 11 Jahren 0
Beachten Sie auch, dass Sie in den meisten Fällen eine Reaktivierung durchführen müssen, wenn Sie Windows zum Booten bringen. Kimmax vor 8 Jahren 1
Was wäre, wenn Sie die virtuelle Installation zuerst "sysprep / generalize" machen würden? Dies würde die Installation sicherlich auf die Installation auf neuer Hardware (oder in diesem Fall auf physischer Hardware) vorbereiten. Robula vor 7 Jahren 0
@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 an das, was diese Antwort beschreibt: ungenutzter / nicht partitionierter Speicherplatz am Ende: https://serverfault.com/questions/268889/is-it-possible-to-restore-disk-image- auf eine andere Größe-Festplatte sudo vor 6 Jahren 1
19
dmoebius

Wenn Ihre VDI-Datei Partitionen enthält und Sie nur eine davon extrahieren möchten, verwenden Sie Folgendes:

Konvertieren Sie die VDI-Datei zunächst in eine Roh-Image-Datei, wie Quack Quixote schon gesagt hat:

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

Dann richten Sie ein Loop-Gerät für das Image 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 sich im Roh-Image nur eine Partition befindet:

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

Mounten Sie es jetzt, um sicherzustellen, dass alles ordnungsgemäß funktioniert:

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

Verwenden Sie dd, um den Inhalt der Partition in eine andere Zielpartition zu kopieren:

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

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

# kpartx -d file.raw 
Ist das mit Windows möglich? Ehsan vor 7 Jahren 0
12
Alon Swartz

The answer is a definite yes, in case your host and guest system is Linux. It's done with the packages qemu and TKLPatch. You can use both VDI or VMDK files.

Read more:

+1 * "definitiv" * mit der Einschränkung * ".. solange Ihr Gast Linux ist" *. und ihre (Ihre?) Lösung basiert auf einigen TurnKey Linux-Tools. aber das Verfahren sieht gut aus. (Willkommen bei Super User!) quack quixote vor 14 Jahren 3
5
Jan H

Ich habe die VBoxManage clonehd file.vdi output.img --format RAWaus der akzeptierten Antwort versucht , aber ohne großen Erfolg.

Was für mich mit einer virtuellen Windows 8.1-Maschine auf einem Windows 7-Host funktionierte, ist folgende:

  1. Erstellen Sie einen Windows 8.1-Computer in VirtualBox, installieren und verwenden Sie ihn wie bei einem virtuellen Computer.
  2. Konvertieren der Festplatte .vdi Virtual Box auf Windows VHD mitVBoxManage clonehd source.vdi target.vhd --format vhd
  3. Mounten Sie die VHD auf dem Host-Windows-Computer als Laufwerk (Sie können eine VHD im Datenträgermanager in der Computerverwaltung einhängen).
  4. Klonen Sie die (als Laufwerk eingebundene) VHD auf eine andere neue Festplatte (in meinem Fall einen an USB angeschlossenen Laptop HD), DriveImage XML oder ein ähnliches Werkzeug zum Klonen von Festplatten. Sie haben nun im Grunde die virtuelle Festplatte .vdi auf Bare Metal geklont.
  5. Installieren Sie die neue Festplatte in einer Maschine. (in meinem Fall tauschen Sie die Laptop-Festplatte)
  6. Legen Sie eine Windows 8.1-Installations-USB / -CD ein, booten Sie von dort aus, und wählen Sie Erweiterte Optionen und Automatische Reparatur. Durch die automatische Reparatur wird die neue Festplatte bootfähig.
  7. Starten 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 nicht bekannt waren, als Sie Windows in VirtualBox ausgeführt haben. Sie müssen ggf. fehlende Treiber manuell installieren.
  8. Deinstallieren Sie VirtualBox Guest Additions. Installieren Sie optional VirtualBox, damit Ihr Bare-Metal-Windows 8.1 ein VirtualBox-Host sein kann.
Von @sum: Sie können mit [BootICE] (http://www.pendriveapps.com/bootice-partition-flash-drive-edit-boot-sector/) den 6. Schritt ersetzen und sicherstellen, dass Sie den korrekten MBR installieren. fixer1234 vor 8 Jahren 1
Vielen Dank. Ist BootICE in einigen Fällen zuverlässiger als die Windows 8.1-Installation? Wird der von mir beschriebene Schritt 6 den MBR möglicherweise durcheinander bringen? Jan H vor 8 Jahren 0
Dies wurde als Antwort von einem neuen Benutzer gepostet (ich glaube http://superuser.com/users/523958/sum). Er sollte gelöscht werden, da er nicht als Antwort qualifiziert war. Ich habe den Post kopiert und als Kommentar gespeichert, damit er nicht verloren geht. Ich bin nicht persönlich damit vertraut. fixer1234 vor 8 Jahren 1
3
JailsonJan

Ich mache diesen Vorgang sehr schnell, mit nur zwei Befehlszeilen in 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 voller Artikel: http://www.previsioni.com.br/jailsonjan/?p=389

Wäre die .img in diesem Fall bootfähig? Pumphouse vor 8 Jahren 0
Ich denke nicht. Ich habe eine ähnliche Antwort von 0-Wiederholungsbenutzern gesehen, die auf einfache Weise erschienen, sich jedoch als nutzlos herausstellte. T.Todua vor 7 Jahren 0
0
Anupam

Verwenden Sie den folgenden Befehl zum Konvertieren:

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