Skip to content

Instantly share code, notes, and snippets.

@rahilwazir
Last active March 3, 2024 22:01
Show Gist options
  • Star 82 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save rahilwazir/69a750b70348459875cbf40935af02cb to your computer and use it in GitHub Desktop.
Save rahilwazir/69a750b70348459875cbf40935af02cb to your computer and use it in GitHub Desktop.
Convert VMWare to Hyper-V (vmdk to vhdx)

VMDK to VHDX

Follow steps:

If you counter following error:

ConvertTo-MvmcVirtualHardDisk : The entry 1 is not a supported disk database entry for the descriptor.

In my case it was entry 4

Follow these steps:

  1. download and extract dsfok tools
  2. use dsfo.exe "c:\temp\disk2.vmdk" 512 1024 descriptor1.txt to extract the descriptor
  3. edit the descriptor file in Notepad++: comment the above mentioned line (as I added the extra single character (#) I also deleted one NULL character from the end to keep the file size of 1024 bytes (not sure if this is needed).
  4. use dsfi.exe "c:\temp\disk2.vmdk" 512 1024 descriptor1.txt to inject the descriptor back into the VMDK
  5. repeat these steps for the other disk (my VM has two .vmdk files)
  6. reissue the ConvertTo-MvmcVirtualHardDisk command
@duli0810
Copy link

Use qemu and its easy single command-line for conversion.
https://cloudbase.it/qemu-img-windows/

Steps
https://gist.github.com/sukesh-ak/9a633c48ceefe9560b8f2eb5d8fcff72

Show, interesting.... did not know this method.
In reality it is similar to MVMC, with a single command after extracting the .ova

ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "" -VhdType DynamicHardDisk -VhdFormat vhdx -destination ""

With "qemu" does not generate the error "is not a supported disk database entry for the descriptor." ?

@sukesh-ak
Copy link

Use qemu and its easy single command-line for conversion.
https://cloudbase.it/qemu-img-windows/
Steps
https://gist.github.com/sukesh-ak/9a633c48ceefe9560b8f2eb5d8fcff72

Show, interesting.... did not know this method.
In reality it is similar to MVMC, with a single command after extracting the .ova

ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "" -VhdType DynamicHardDisk -VhdFormat vhdx -destination ""

With "qemu" does not generate the error "is not a supported disk database entry for the descriptor." ?

No it worked smoothly.. no errors pretty straight forward command.

@sukesh-ak
Copy link

This also works but due to some reason not working on Win11 after recent updates.
You can try on Win10, maybe it works there still.

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd --format vhd "disk001.vmdk" disk-OS-v2.vhd

@duli0810
Copy link

This also works but due to some reason not working on Win11 after recent updates.
You can try on Win10, maybe it works there still.

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd --format vhd "disk001.vmdk" disk-OS-v2.vhd

Cool... I'll test it.... thanks sukesh-ak !

@sakar97
Copy link

sakar97 commented Sep 16, 2021

Hi, Does qemu delete all the VMware environment dependencies tools also while converting .vmdk to .vhd? or it cloned exactly the same file in a different format?

@sukesh-ak
Copy link

Hi, Does qemu delete all the VMware environment dependencies tools also while converting .vmdk to .vhd? or it cloned exactly the same file in a different format?

Just converted the disk file format to new format. That's all.

@sukesh-ak
Copy link

@MathBernier
Copy link

I was looking forward for a straight solution, that did the trick! Thank you!

@GUTIERRES-RS
Copy link

For me it worked like this:

STEP 1 - Download and Install: http://download.microsoft.com/download/9/1/E/91E9F42C-3F1F-4AD9-92B7-8DD65DA3B0C2/mvmc_setup.msi

STEP 2 - Run power shell as administrator.

STEP 3 - PS> Import-Module 'C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1'

STEP 4 - PS> ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "D:\Virtual Machines\Windows 10 x64\Windows 10 x64.vmdk" -VhdType DynamicHardDisk -VhdFormat vhdx -destination "D:\Virtual Machines\Windows 10 x64\Windows 10 x64.vhdx"

Don't forget to check the syntax of commands and punctuation etc... And enjoy

@IchBinGROOT
Copy link

This all looks very promising, did anyone ever write a script that automates this process? I‘d like to install Whonix in Hyper-V but didn’t get it to work so far

@SkybuckFlying
Copy link

Does not work:

3.1 Command 1:

Import-Module 'G:\Tools\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1'

3.2 Command 2:

ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "D:\Virtual Machines\Windows 11 (VM 4, Official, RAD Studio 11 Alexandria, Windows 11 Updated, Reactivated)\Windows 11 x64.vmdk" -VhdType DynamicHardDisk -VhdFormat vhdx -destination "G:\Virtual Machines\Windows 11 (VM 4, Official, RAD Studio 11 Alexandria, Windows 11 Updated, Reactivated, Converted to VHDX)\Windows 11 x64.vhdx"

Error:

ConvertTo-MvmcVirtualHardDisk : No suitable drive was found at path (D:\Virtual Machines\Windows 11 (VM 4, Official,
RAD Studio 11 Alexandria, Windows 11 Updated, Reactivated)\Windows 11 x64.vmdk).
Parameter name: path
At line:1 char:1

  • ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "D:\Virtual Machine ...
  •   + CategoryInfo          : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVi
     rtualHardDisk], DriveNotFoundInPathArgumentException
      + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskC
     ommand
    
    

ConvertTo-MvmcVirtualHardDisk : One or more errors occurred.
At line:1 char:1

  • ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "D:\Virtual Machine ...
  •   + CategoryInfo          : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVi
     rtualHardDisk], AggregateException
      + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskC
     ommand
    
    

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment