Is it possible to convert a VMWare vmdk image file to physical hardisk drive?

65,792

Solution 1

If you have qemu-img, you should be able to do all of this from a command line dealing just with image files.

qemu-img convert source.vmdk -O raw <path>
dd if=<path> of=/dev/<disk> bs=1G count=<target-gb-size>

That will write out whatever raw format the vmdk was out to a physical drive. Its better to use copy-on-write FS for this. Make sure that all source data allocated within first N Gb to fit the target disk of N-Gb size.

Solution 2

A bit late, but for reference I have successfully:

  1. Attach clonezilla to the virtual machine
  2. Boot the virtual machine with clonezilla disk
  3. Save an image of the disk to an external USB drive (also attached to the virtual machine)
  4. Restore the image to a physical disk using clonezilla

Solution 3

You didn't mention what OS you're using and Alex's answer will not work on Windows and someone asked how to do this on Windows in the comments, so here's how:

You should use Cygwin to be able to use dd and accomplish the task.

Download and install Cygwin from here: http://www.cygwin.com/

Open Cygwin terminal as Administrator and type in:

cat /proc/partitions

You can see all your hard disks with their partitions. The numbers indicate the partitions.

dd if=/cygdrive/driveletter/path/to/vmdk bs=256k status=progress of=/dev/sdX
  • X in sdX is the drive that you want to write to. But remember it's different to Windows' drive letters. Don't mix them up!

  • status=progress will show you a progress line of dd.

  • bs=256k is block size (cache), you can use bs=4M for today hard disks but I am using 256k since I'm wring to a USB thumb drive.

Note: Beware that if the source machine is Windows 10, dd may not be compatible with converting the VMDK to RAW(disk), some similar situation reported here.


More info and commands on qemu-img here if you want to make sure it's not possible on Windows: https://cloudbase.it/qemu-img-windows/

Solution 4

Try UDPCast

The idea is to stream the whole your vmdk out of it's Virtual Machine to physical machine, where it is written to the physical hdd.

Procedure is outlined below.

Since you have a vmdk file, you might have a VMWare Workstation at your disposal, even complete Virtual Machine this vmdk is attached to. Run your Virtual Machine with this particular vmdk attached, but instead of ordinary boot use PartedMagic liveCD to boot from.

When liveCD is started, navigate to main menu and find the UDPCast Disk Cloning. Its dialogs are self-explanatory (see the screenshot) UDPCast Disk Cloning start screen

After selecting this Virtual Machine to be the sender, you should select which drive you want to broadcast (using Unix notation, like /dev/sda).

After you've started the sender, you need to start receiver as well. Since you have a physical hdd, I'm assuming, you also have a complete PC with this hdd attached to it. Same thing here: you need to start liveCD with UDPCast Disk Cloning selecting receiver this time as well as appropriate physical hdd.

Worth noting, that you should make all the necessary arrangements to have network connectivity between your Virtual Machine and physical hardware. You should take necessary precautions if your vmdk contains private data, since its contents would be effectively streaming over your network. Another thing is that your target hdd should have no less storage capacity, than your vmdk's capacity. It is obvious, but also worth noting that your image is laid out one-to-one on your target hdd and you need to perform suitable operations with gparted or the like to make use of greater capacity of your new hdd.

Solution 5

Have you tried booting into a BartPE cd (i.e. UltimateP2V ) and using Ghost? You'll probably run into driver problems once it gets on the hardware but, those are easy enough to deal with (in theory, lol).

If you want to create your own P2V (V2V, V2P, etc) disk check out Mike Laverick's write up (its the best): http://www.rtfm-ed.co.uk/docs/vmwdocs/whitepaper-ultimateP2V.pdf

Share:
65,792

Related videos on Youtube

karon
Author by

karon

Updated on September 17, 2022

Comments

  • karon
    karon almost 2 years

    Is it possible to convert a VMWare vmdk image file to physical hardisk drive? I know VMWare 6.5 can use physical harddisk drive directly to get good performance, can I convert an existing vmdk file to physical harddisk drive go gain better performance?

    • JamesRyan
      JamesRyan over 12 years
      There is very little performance difference between using vmdks and physical drives.
    • Massimo
      Massimo over 8 years
      @JamesRyan it depends a lot on the configuration; if the VMDK is sitting in its own datastore, then yes, there is very little difference; but if the datastore contains other VMs, things are a lot different.
    • JamesRyan
      JamesRyan over 8 years
      @Massimo well don't put it with other VMs then? There is still no need to convert it to a physical disk!
  • Axel
    Axel almost 15 years
    The feature still exists in Workstation and the runs-on-bare-hardware-ish products. You can't use physical partitions/disks in this way with VMWare Server or VMWare Player though.
  • Spence
    Spence almost 15 years
    You can use physical disks fine in VMWare Server 1. I don't know about 2-- I can't stand it and won't use it.
  • Kevin Kuphal
    Kevin Kuphal almost 15 years
    You can use any disk imaging software you prefer. I will often use a "helper VM" that has it's own boot drive and then mount the source and target drives. The VM has all the disk tools I usually use and makes it easy if you have to do this from time to time.
  • Erik Sjölund
    Erik Sjölund almost 12 years
    A tip: qemu version 1.2.0 fixes a bug that occurs when converting VMDK images. See serverfault.com/questions/429478/…
  • PF4Public
    PF4Public over 8 years
    I'd like to note that this suggestion is straightforward and easy to achieve, since the only preparation needed is getting LiveCD with UDPCast (or any other LiveCD which is sufficient to download and run UDPCast) written to any bootable media. Let alone UDPCast is not so demanding in dependencies as qemu-img is. And there's more: UDPCast could be run directly from PXE. udpcast.linux.lu/bootloader.html#pxe
  • Nullpointer
    Nullpointer almost 8 years
    @Alex I've windows system, So how to set "/target/drive/" ?
  • zw963
    zw963 over 7 years
    I use qemu-img 1.4.0, I have to use qemu-img convert -O raw source.vmdk /target/drive/ to make it work