32

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?

karon
  • 341

6 Answers6

23

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.

Alex
  • 6,723
11

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
jeb
  • 211
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/

Shayan
  • 85
2

Mount the drive in a VM or however, and snapshot it (www.drivesnapshot.de). Then mount the raw disk in a VM and restore the snapshot onto the disk. That will transfer the drive sector by sector. In Linux I think you can use dd to do the same thing.

Isn't use of physical disks for VM volumes deprecated in VMWare these days?

JR

John Rennie
  • 7,806
2

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

xbnevan
  • 21
2

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.

PF4Public
  • 229