I've seen a lot of guides on how to do physical -> VHD, but is there any way to easily move a VHD image to a physical disk easily? Or should I just attach the disk and go to town with GNU DD?


The dd approach works, but only if the destination physical disk can be trashed and entirely overwritten, and is at least as big as the maximum growth size of the virtual disk. This can also end up taking a long time if the virtual disk isn't "full".

An alternative approach is to use an imaging tool like Ghost or ImageX to efficiently capture the file contents of the virtual disk's partitions into some sort of extractable archive files and then extract their contents onto a partitioned physical disk.

| improve this answer | |
  • clonezilla live disk to disk also could help. – Francisco Tapia Aug 11 '15 at 16:43
  • 1
    I dont think dd will work directly, VHD is not a RAW format. Might have to use qemu-img to convert it to an IMG file first. – limbenjamin Dec 9 '15 at 7:02
  • 1
    @limbenjamin The suggestion was to mount the VHD, and then use dd. You're absolutely correct that you can't directly use dd against the unmounted VHD image file. – Reuben Dec 10 '15 at 2:51
  • Converting a Qemu2 file to raw and dd:ing it into SSD did the trick for me. – Jari Turkia Jul 5 at 9:04

I use the Windows only freeware tool HDD Raw Copy Tool to write .vhd images to physical media.

HDD Raw Copy Tool Screenshot

My use case is using Windows 7 to replicate FAT32 partitions onto micro SD cards but it can support a wide range of interfaces/media types.

It has a portable version available for one-off or nomadic use, or an installer if you prefer that kind of thing.

The GUI is quite straightforward:

  1. Select source (drive or file)
  2. Select destination (drive or file)
  3. Copy
| improve this answer | |
  • 1
    Looks like a great app! – Ana Betts Oct 12 '15 at 19:21
  • 1
    Can single partition be selected as target in Raw Copy Tool? I see it allows only overwriting the whole disk – Suncatcher Apr 21 '19 at 17:23

Attach the VHD to a virtual machine (you can use MS Virtual PC, VirtualBox or any other virtualization software that supports VHD). Then boot the VM with the Acronis True Image ISO mounted in a virtual CD drive and create TIB image, then boot the physicl computer with the same CD (this time burned on a disk) and recover the TIB image to the physical HDD using Sector-by-sector.

This supports the recovery of multiple partitions from the same image.

| improve this answer | |
  • create TIB image and where to save it? To virtual HDD? What if VHD 200 or more Gb? This solution is not applicable – Suncatcher Apr 21 '19 at 17:30

The following operations are performed on knoppix (live linux) from terminal.

  modprobe nbd
  qemu-nbd -r -c /dev/nbd0 -f vpc <vhd_file_name>

if VHDX fromat

  qemu-nbd -c /dev/nbd0 -f VHDX <vhdx_file_name>
  ddrescue -v -f /dev/nbd0 /dev/sda  >>>> image to /dev/sda writing

only one partition writing

  qemu-nbd -P 2 -r -c /dev/nbd2 -f vpc <vhd_file_name> 
  ddrescue -v -f /dev/nbd2 /dev/sda2 >>>> part2 of image to /dev/sda2 writing

partition mount

  qemu-nbd -P 2 -r -c /dev/nbd2 -f vpc <vhd_file_name> >>> -P 2 part2 of image 
  mount /dev/nbd2 /mnt 

unmount and disconnect image file

  unmount /mnt 
  qemu-nbd -d /dev/nbd2
| improve this answer | |
  • Interesting use of NBD... also interesting qemu-nbd--- which i didi not know of... Thanks – ZEE Aug 21 '18 at 15:37

If you prefer to do using Windows based tool you can do this:

Savepart is a tool (free but not open source, available for both Windows and Linux) that can be used to image partitions. Once the VHD is attached it can be restored to a physical partition by savepart as if it were a physical partition.

| improve this answer | |
  • 3
    Please exercise caution when recommending software. As written, your answer may be seen as spam. Your answer should include a description of the software and how it addresses the question. More information: How do I recommend software in my answers? – bwDraco Aug 11 '15 at 17:12

I have done this myself on the system disk using Acronis and that worked. This was a Windows 8.1 with Hyper-V and I needed to move it to the physical disk to upgrade to Windows 10.

This is how I did it: I connected the SSD to another PC and mounted the VHD. I then cloned from the mounted VHD to another SSD (I was going to replace it anyway). I chose "Manual" and default settings, but it might work with "Auto" as well.

When I booted up with the new SSD Windows wounldn't start, so I rebooted with a Windows install disk and chose "Repair". Windows started as normal directly from the disk.

The only problem after that was an error when starting a virtual machine telling me that the Hypervisor was not running. Solved this by running the following command from an elevated MS-DOS prompt and reboot: "bcdedit /set hypervisorlaunchtype Auto".

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.