Comando IT

Convertir disco Vmdk a Vhdx

Cuando estas usando escenarios de Vmware y Hyper-V, puede pasar que tengas que mover alguna maquina de una a otra. En este caso voy a enseñar como pasar un maquina virtual de Vmware a Hyperv-V solo cogiendo el disco duro Vmdk a Vhdx.

Primero debernos bajarnos una herramienta llamada Microsoft Virtual Machine Converter

Lo descargamos desde el siguiente enlace: Descargar MS Converter Tool

Una vez instalado, ejecutamos Powershell como administrador y escribimos el siguiente comando.

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

Una vez importado el modulo correctamente, procedemos a realizar la conversión.

PS C:\comandoit.com>ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath discodurovmware.vmdk -VhdType DynamicHardDisk -VhdFormat vhdx -DestinationLiteralPath D:\carpetavhdx

Si ha salido correcto el comando en la consola de Powershell nos aparecerá un mensaje:
Converting drive discodurovmware.vmdk to dynamic VHDX

En caso de que nos aparezca un error con el mensaje de descriptor, debemos hacer lo siguiente para evitar ese error.

Debemos descargar la utilidad dsfok en el siguiente enlace: Descargar dsfok

Una vez descargado y en la carpeta de dsfok ejecutamos el símbolo de sistema (CMD) como administrador para ejecutar el siguiente comando.

C:\comandoit.com> dsfo.exe "discodurovmware.vmdk" 512 1024 "E:\carpetavhdx\descriptor.txt"

Abrimos el archivo que ha generado con un Notepad ++ o otro editor y nos mostrara la configuración del disco. virtual de Vmware.

En esa configuración debemos buscar el valor que nos aparece en nuestra consola de Powershell, cuando intentamos convertir el disco virtual de Vmware.

Os debería aparecer algo así parecido en el archivo de descriptor.txt.

# Disk DescriptorFile
version=1
encoding="windows-1252"
CID=e3183368
parentCID=ffffffff
createType="monolithicSparse"

# Extent description
RW "

# The Disk Data Base 
#DDB

ddb.adapterType = "lsilogic"
ddb.deletable = "true"
ddb.encoding = "UTF-8"
ddb.geometry.biosCylinders = "124519"
ddb.geometry.biosHeads = "255"
ddb.geometry.biosSectors = "65"
ddb.geometry.cylinders = "124519"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "441a891594902e6cc6545d9e3183368"
#ddb.toolsInstallType = "1"
ddb.toolsVersion = "11269"
ddb.uuid = "60 00 C2 90 2b a2 6f 32-88 d5 d4 e7 78 37 d1 7f"
ddb.virtualHWVersion = "11"
                                                         

Una vez localizado, comentamos la linea poniendo #.

En mi caso la tuve que poner el # en ddb.toolsInstallType = «1», ya que me daba el error The entry 1 is not a supported disk database entry for the descriptor.

Ahora guardamos los cambios del archivo y ejecutamos el siguiente comando.

C:\comandoit.com> dsfi.exe "discodurovmware.vmdk" 512 1024 "E:\carpetavhdx\descriptor.txt"

Ahora vuelve a ejecutar el comando en el Powershell y te debería funciona al 100%