Cómo convertir un archivo VHD a VMDK: una guía paso a paso
VMware vSphere y Microsoft Hyper-V son dos de las plataformas de virtualización más populares. Cada solución utiliza formatos de archivo de disco virtual diferentes para las máquinas virtuales. Esto significa que es necesario convertir los archivos de disco virtual al trasladar máquinas virtuales entre VMware e Hyper-V. Por ejemplo, es posible que tengas que migrar máquinas virtuales entre hipervisores con fines de prueba. En otros casos, quizá tengas que cambiar el formato si elegiste uno incorrecto al crear la máquina virtual.
Hyper-V utiliza VHD y VHDX para las máquinas virtuales, mientras que VMware utiliza VMDK. Lee esta entrada para aprender a migrar máquinas virtuales de Hyper-V a un entorno VMware convirtiendo un archivo VHD en un VMDK.
Formatos de disco virtual
VHD se refiere al formato de imagen de disco introducido como formato de disco virtual para máquinas virtuales en Connectix Virtual PC. Posteriormente, Microsoft adquirió Virtual PC y continuó desarrollando este producto de virtualización. Más tarde, Microsoft presentó Hyper-V como alternativa a Microsoft Virtual PC. Las principales funciones del formato VHD son:
- El tamaño máximo admitido para los archivos VHD es de 2 TB (2^32*512 bytes), donde 32 bits representan la cantidad y 512 bytes representan el tamaño del sector.
- VirtualBox también es compatible con el formato VHD de discos virtuales, que sigue utilizándose en la nube de Microsoft Azure.
- Las máquinas virtuales Hyper-V de primera generación solo pueden utilizar discos virtuales en formato VHD.
VHDX es la nueva versión del formato de disco virtual proporcionado por Microsoft, sucesor del formato VHD. El formato VHDX tiene una amplia gama de aplicaciones, entre las que se incluyen los discos virtuales para máquinas virtuales Hyper-V y los volúmenes compartidos de clúster de Microsoft. VHDX es un formato de archivo semiabierto, y se puede descargar la especificación del formato de archivo desde el sitio web de Microsoft para crear tus propias aplicaciones que funcionen con archivos VHDX. Las principales funciones de VHDX son:
- La capacidad máxima del disco es de 64 TB, frente al límite de 2 TB del formato VHD.
- Admite sectores de 4 KB.
- Ofrece una mayor protección frente a fallos causados por cortes de corriente, en comparación con los discos VHD.
Máquinas virtuales de segunda generación admite el uso tanto de discos virtuales VHDX como VHD. Sin embargo, las máquinas virtuales de Azure solo pueden utilizar discos virtuales en formato VHD. Los discos virtuales VHDX se pueden crear en la ventana «Administración de discos» de Windows 10 y Windows Server 2016. Las imágenes VHDX también se pueden montar (conectar) como una unidad de disco y visualizarse en el Explorador de Windows («Mi PC») en las últimas versiones de Windows, gracias al controlador VHDX integrado.
VMDK es un formato abierto de imágenes de disco virtual utilizado por hipervisores como VMware, VirtualBox, QEMU, etc., y no es compatible con Hyper-V. Los archivos de imagen VMDK pueden considerarse contenedores para almacenar datos, similares a los discos duros físicos, y presentan una alta compatibilidad con diversos programas de virtualización. El tamaño máximo del disco virtual VMDK se ha aumentado de 2 TB a 62 TB.
Los discos virtuales VMDK pueden clasificarse en los siguientes tipos y variantes: monolíticos, divididos, dispersos, planos, así como de aprovisionamiento delgado y de aprovisionamiento grueso. Los discos VMDK delta se crean al realizar una Instantáneas de máquinas virtuales. Los archivos VMDK se pueden asignar (montar) al punto de montaje especificado en su máquina host si tiene instalado VMware Workstation. Se ofrece un alto nivel de fiabilidad. Los discos virtuales VMDK admiten sectores nativos de 4 KB, que utilizan las últimas versiones de los productos de VMware con VMFS6 (Virtual Machine File System 6).
Comprueba el contenido del VHD antes de convertirlo a VMDK
Este es un paso opcional que te permite verificar el estado de un disco virtual VHD o VHDX de origen y ver los archivos que contiene. Este enfoque evita que te confundas y pierdas tiempo convirtiendo el disco virtual equivocado. Si solo deseas extraer archivos de imágenes VHD, esta sección es lo que necesitas. Los archivos VHD se pueden montar en un directorio en Linux y se pueden asignar a una letra de unidad específica en Windows.
Cómo abrir un archivo VHDX en Linux
En Linux, los archivos VHD y VHDX se pueden montar en un directorio específico (punto de montaje) desde la consola utilizando las herramientas de libguestfs . De este modo, puedes ver el contenido de los archivos VHD y VHDX en Linux antes de empezar a convertir el VHD a VMDK. Veamos cómo ver el contenido de las imágenes de disco virtual VHD y VHDX en Linux.
Instala el paquete necesario:
sudo apt-get install libguestfs-tools
Crea el directorio en el que deseas montar las imágenes VHD o VHDX; por ejemplo, /mnt/vhd/:
sudo mkdir /mnt/vhd/
Ejecuta el comando para montar una imagen de disco VHD en el directorio especificado. Nos encontramos en el directorio donde está la ubicación del archivo VHD necesario y ejecutamos el comando como root:
guestmount --add test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
Donde:
-add – abre un disco virtual.
--ro – se monta un disco virtual en modo de solo lectura.
/mnt/vhd/ es la ruta al archivo VHD que deseas montar.
-m /dev/sda1/ es el nombre de la partición existente en el disco virtual VHD. En el disco virtual VHD utilizado en este ejemplo hay una partición NTFS.
Puede ver todos los comandos disponibles ejecutando guestmount --help
Nota: Si ejecuta el comando en otro directorio, especifique la ruta completa a su archivo VHD, por ejemplo: guestmount --add /media/user1/data/test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
Compruebe el contenido de la imagen VHD montada:
ls -al /mnt/vhd/

Para desmontar el disco virtual, utilice el comando:
guestunmount /mnt/vhd/
Del mismo modo, puede montar archivos VHDX en el /mnt/vhd/ directorio creado anteriormente y copiar contenido del disco virtual montado:
guestmount --add /media/user1/data/WinServer2016.vhdx --ro /mnt/vhd -m /dev/sda2
Donde: /dev/sda2 se utiliza porque /dev/sda1/ es la partición de servicio creada por defecto por el instalador de Windows.
Puede ver el contenido de la partición del sistema de Windows (disco C:) del disco virtual VHDX en la consola de Linux (véase la captura de pantalla siguiente).

Cómo abrir un archivo VHD en Windows
- Abre la ventana «Administración de equipos» (haz clic con el botón derecho del ratón en «Mi PC» y selecciona «Administrar» en el menú contextual).

- En la ventana «Administración de equipos» , selecciona «Administración de discos» y, a continuación, haz clic en «Acción» > «Conectar VHD» .

- En la ventana emergente, define la ruta de acceso a tu archivo VHD o VHDX. Marque la casilla de verificación « » «Solo lectura» « » si no desea escribir datos en el disco virtual. Esta opción también protege los datos almacenados en el disco virtual contra daños accidentales. «

- » El disco ya está montado y se muestra en la ventana « » «Administración de discos» « » y en el Explorador de Windows (la unidad « » «X: » en este caso). «
» Nota: « » Windows solo puede detectar particiones con sistemas de archivos compatibles: NTFS, FAT32, exFAT y ReFS. Si tu disco virtual contiene particiones de Linux con los sistemas de archivos ext3, ext4 y otros, no podrás ver el contenido de los archivos VHD o VHDX montados en tu sistema Windows sin herramientas de terceros.
Para desmontar un disco virtual VHD o VHDX de tu sistema Windows, abre el Explorador de Windows, haz clic con el botón derecho del ratón en la letra de unidad asignada a tu disco virtual y, en el menú contextual, haz clic en Expulsar .

Ahora, después de comprobar el contenido del disco virtual VHD (VHDX) y asegurarte de que es el disco correcto, puedes proceder a convertirlo a VMDK. Existen dos métodos muy asequibles para convertir VHD a VMDK: utilizando qemu-img y utilizando VBoxManage . Ambas soluciones son de uso gratuito y se explican a continuación.
Cómo convertir VHD a VMDK con qemu-img
QEMU es una plataforma de emulación y virtualización de máquinas de código abierto. Qemu-img es una utilidad del kit de software QEMU que se puede utilizar para convertir discos virtuales de un formato a otro. Qemu-img se puede utilizar para convertir VHD a VMDK, y el uso de esta utilidad es el primer método que vamos a tratar. Qemu-img se puede ejecutar tanto en sistemas operativos Windows como Linux.
Uso de qemu-img en Linux
En este ejemplo se utiliza Ubuntu Linux para ejecutar qemu-img .
- En primer lugar, instala qemu-img desde los repositorios de software en línea:
sudo apt-get install qemu-utils - Ve al directorio donde se almacenan las imágenes de disco virtual (en este ejemplo, los archivos de disco virtual VHD y VHDX se almacenan en /media/user1/data/):
cd /media/user1/data/
Comprueba el archivo VHDX
- Ver la información de la imagen VHD después de ejecutar sudo su para obtener privilegios de root:
qemu-img info test-disk.vhd

Del mismo modo, puedes consultar la información sobre el disco virtual VHDX:
qemu-img info /media/user1/data/WinServer2016.vhdx

Convertir VHD a VMDK en Linux
- Para convertir un VHD a VMDK con qemu-img en Linux, ejecuta el comando como root:
qemu-img convert /media/user1/data/WinServer2016.vhdx -O vmdk /media/user1/data/WinServer2016qemu.vmdk -pDonde:
-O– define el formato del archivo de salida-p– muestra la barra de progresoEspera a que finalice el proceso de conversión.
Uso de qemu-img en Windows
- Descarga qemu-img desde la página web oficial (hay instaladores de 32 y 64 bits disponibles para descargar). En el ejemplo actual, se utiliza qemu-img-win-x64-2_3_0 .
- Extrae los archivos del archivo comprimido descargado, por ejemplo, en C:Programasqemu-img .
- Abre la línea de comandos de Windows (CMD): pulsa Windows+R para abrir el cuadro « Ejecutar ». Escriba « cmd » en el cuadro y pulse Ctrl+Mayús+Intro para ejecutar el comando como administrador :
cd C:Programsqemu-imgLos comandos de qemu-img en Linux y Windows son idénticos.
Convertir VHD a VMDK en Windows
Ejecute CMD como administrador y vaya al directorio donde qemu-img está instalado.
- Ver la información del disco virtual:
qemu-img.exe info c:VirtualHyper-Vtest-disk.vhd - Convertir la imagen de disco VHD al formato VMDK:
qemu-img.exe convert -p c:VirtualHyper-Vtest-disk.vhd -O vmdk c:VirtualHyper-Vtest-disk.vmdkDonde:
-p– mostrar el progreso-O– el archivo de salidaEspera hasta que finalice el proceso de conversión.

Cómo convertir un archivo VHD a VMDK con VBoxManage
VBoxManage es la interfaz de línea de comandos (CLI) para la gestión del hipervisor VirtualBox y las máquinas virtuales. VBoxManage es una herramienta multiplataforma que se instala al instalar VirtualBox (como recordarás, VirtualBox es una solución de virtualización multiplataforma). Una de las funciones más atractivas de VBoxManage es su capacidad para convertir múltiples formatos de disco virtual. Puedes convertir VHD a VMDK utilizando VBoxManage .
Si utilizas Windows como sistema operativo anfitrión, ejecuta el CMD como administrador y ve al directorio de instalación de VirtualBox para ejecutar VBoxManage . En el ejemplo actual, VirtualBox está instalado en el directorio predeterminado.
cd C:Program FilesOracleVirtualBox
Puedes añadir la ruta de instalación de VirtualBox a la variable de entorno Path para evitar tener que navegar manualmente hasta el directorio de instalación de VirtualBox cada vez que quieras ejecutar VBoxManage .
Ejecuta el comando para convertir un VHD de Hyper-V a un VMDK de VMware de la siguiente manera:
VBoxManage clonehd --format vmdk C:virtualHyper-VWinServer2016.vhdx С:virtualHyper-VWinServer2016vbox.vmdk
La sintaxis es sencilla: se establece el formato del disco virtual de destino (VMDK) y se definen los nombres del archivo de origen VHDX y del archivo de destino VMDK .
Espere hasta que finalice el proceso de conversión.

Si utiliza Linux en el equipo en el que está instalado VirtualBox, utilice los mismos comandos (pero tenga en cuenta la estructura de las particiones y los directorios de Linux).
Creación de una máquina virtual de VMware utilizando el disco virtual convertido
La conversión de un VHD a un VMDK permite convertir máquinas virtuales de Hyper-V en máquinas virtuales de VMware. Para completar el proceso, es necesario importar el disco virtual convertido a las máquinas virtuales de VMware creadas manualmente. Este método puede utilizarse para máquinas virtuales que se ejecutan en VMware Workstation y VMware ESXi. En esta sección se explican el resto de detalles sobre cómo convertir Hyper-V a VMware.
VMware Workstation
Si desea crear una máquina virtual utilizando un disco virtual convertido del formato VHD (VHDX) al formato VMDK en VMware Workstation, solo tiene que crear una nueva máquina virtual (o abrir una ya existente si desea añadir un disco virtual convertido como disco virtual adicional) y seleccionar que desea utilizar un disco virtual existente.
Creemos una nueva máquina virtual en VMware Workstation. Pulsa Archivo > Nueva máquina virtual .
Consulta una explicación detallada de cómo crear una nueva máquina virtual de VMware Workstation en la entrada del blog sobre Laboratorio doméstico de VMware. En esta sección de la entrada de hoy, nos centraremos en los pasos necesarios para importar un disco virtual VHD convertido a la máquina virtual de VMware Workstation. Por lo tanto, debes prestar especial atención a los siguientes pasos:
- Selecciona « I will install an operating system later», y elige la versión del sistema operativo invitado (OS) que estaba instalada en la Máquina virtual de Hyper-V de origen cuyo disco virtual has convertido ( Windows Server 2016 en este caso). Si utiliza una versión anterior de VMware Workstation, seleccione Windows 10 como versión del sistema operativo invitado.

El nombre de la máquina virtual es Win2016converted en nuestro ejemplo. Los archivos de la nueva máquina virtual se almacenan en C:VirtualWin2016converted .
- Seleccione « Usar un disco virtual existente » en el paso Seleccionar un disco .

- Especifique una ruta al archivo VMDK existente o explore el archivo. En este caso, la ruta al archivo VMDK es:
C:VirtualHyper-VWinServer2016qemu2.vmdk

- Si aparece el cuadro de diálogo y le sugiere convertir un disco virtual existente a un formato más reciente, la decisión es suya. Debes convertir un disco virtual a un formato más reciente si no tienes previsto utilizar dicho disco virtual para máquinas virtuales de versiones anteriores (que cuentan con hardware virtual más antiguo).
- Selecciona BIOS como tipo de firmware en las opciones de la máquina virtual si tu máquina virtual de Hyper-V de origen estaba configurada para utilizar BIOS. De lo contrario, la máquina virtual de VMware a la que hayas conectado un disco virtual convertido del formato Hyper-V al formato VMware no se iniciará. Después de crear la máquina virtual, puede comprobar esta configuración accediendo a Máquina virtual > Ajustes , seleccionando la pestaña Opciones > Avanzadas .

Ahora su máquina virtual debería iniciarse correctamente. Después de que el sistema operativo invitado se haya iniciado, instale VMware Tools.

VMware ESXi
También puedes convertir un archivo VHD a VMDK e importar el disco virtual convertido a una máquina virtual de VMware que se ejecute en un host ESXi de VMware. Sin embargo, el formato de disco virtual de VMware utilizado por VMware Workstation y VMware ESXi es diferente. Un disco virtual en formato VMware Workstation tiene un descriptor de disco integrado en un único archivo Archivo VMDK. Un disco virtual en formato ESXi consta de dos archivos independientes: un archivo de datos (.vmdk ) y un archivo descriptor de disco (-flat.vmdk ). Para poder utilizar un disco virtual que hayas convertido desde el formato Hyper-V con qemu-img o VBoxManage en una máquina virtual que se ejecute en ESXi, debes convertir ese disco virtual del formato de estación de trabajo al formato ESXi. De lo contrario, aparecerá el error: « Tipo de disco no compatible o no válido 2 ».

Veamos cómo utilizar un disco virtual convertido desde el formato VHD para una máquina virtual que se ejecute en ESXi.
Conversión de VMDK al formato ESXi
- Sube el archivo VMDK convertido al almacén de datos conectado a un host ESXi. Utilice un cliente SCP/SFTP, la interfaz web de VMware Host Client o VMware vSphere Client para subir el disco virtual convertido vmdk al almacén de datos de ESXi.
En nuestro ejemplo, el WinServer2016qemu.vmdk se sube al SSD1 almacén de datos, que está conectado al host ESXi con la dirección IP 10.10.10.74.

- Asegúrese de que el acceso SSH esté habilitado en su host ESXi ( Gestión > Servicios > TSM-SSH ).

- Conéctese a su host ESXi a través de SSH utilizando un cliente SSH (por ejemplo, PuTTY).
- Vaya al directorio donde se almacena el archivo de disco virtual VMDK convertido desde el formato VHD de Hyper-V (en este ejemplo, el archivo vmdk se encuentra en /vmfs/volumes/SSD1/converted/):
cd /vmfs/volumes/SSD1/converted/ - Utilice vmkfstools para convertir un disco virtual en formato de estación de trabajo a un disco virtual en formato ESXi. En nuestro ejemplo, un con asignación dinámica disco virtual en formato ESXi es el tipo de disco virtual de destino. Ejecute los comandos como root.
vmkfstools -i WinServer2016qemu.vmdk WinServer2016thin.vmdk -d thin
Como se puede ver en la captura de pantalla, la conversión del archivo VMDK del formato de estación de trabajo al formato ESXi con vmkfstools se ha completado correctamente y se han creado dos nuevos archivos:
WinServer2016thin-flat.vmdk
WinServer2016thin.vmdk

Importación de un disco VMDK a una máquina virtual en ESXi
Abre VMware Host Client (lo ideal es utilizar VMware vSphere Client si se ha instalado vCenter, pero puedes utilizar VMware Host Client en casi todos los casos, incluido un escenario con ESXi Edición gratuita). El mismo procedimiento se aplica a las versiones 6.5 a 9.0 de VMware vSphere/ESXi.
En la interfaz web de VMware Host Client, seleccione Máquinas virtuales y haga clic en Crear/Registrar máquina virtual .

Se abrirá el asistente para la nueva máquina virtual.
- Seleccione el tipo de creación . Haga clic en Crear una nueva máquina virtual. Haga clic en Siguiente en cada paso para continuar.

- Seleccione un nombre y un sistema operativo invitado. Seleccione la versión de la máquina virtual, la familia del sistema operativo invitado y la versión del sistema operativo invitado. En este ejemplo, el nombre de la máquina virtual es Win2016converted . La máquina virtual es compatible con ESXi 6.5 o posterior. La familia del sistema operativo invitado es Windows, y la versión del sistema operativo invitado es Microsoft Windows 2016 (64 bits).

- Selecciona el almacenamiento. Selecciona el almacén de datos donde deseas guardar los archivos de la máquina virtual. El nombre del almacén de datos utilizado en este ejemplo es SSD2.

- Personaliza los ajustes. Este paso es el más importante en nuestro caso. Elimine el disco virtual que se creó por defecto con la nueva máquina virtual de VMware. A continuación, haga clic en Añadir disco duro > Disco duro existente .

En el almacén de datos, seleccione el disco virtual que ha convertido de VHD a VMDK y, posteriormente, del formato de VMware Workstation al formato de VMware ESXi (aprovisionamiento delgado). Como recordará, su disco virtual convertido consta de dos archivos (.vmdk y -flat.vmdk ), pero en el explorador de almacenes de datos solo se muestra un archivo vmdk . No se preocupe: se trata de una función de VMware Host Client. Ambos archivos copiados al almacén de datos de ESXi están presentes. Puede comprobarlos en la consola de ESXi o conectándose a través de SSH. En el ejemplo actual, se puede observar que el tamaño actual del disco virtual es de 9,11 GB, pero el tamaño máximo asignado a este disco es de 30 GB.

Después de añadir el disco virtual VMDK convertido, se puede ver el campo «inactivo», donde se muestra el tamaño de 9 GB (el tamaño actual) del disco virtual de 30 GB.

- Listo para finalizar. En este paso, puedes comprobar los ajustes. Si todo es correcto, haz clic en Finalizar para crear una nueva máquina virtual.

Ahora puedes encender la máquina virtual (haz clic con el botón derecho del ratón sobre el nombre de la máquina virtual y, en el menú contextual, selecciona Encender > Encender ).

La máquina virtual con el disco virtual convertido se ha iniciado correctamente y la red funciona sin problemas. Ahora puede instalar VMware Tools en el sistema operativo invitado.

Conclusión
Si desea convertir máquinas virtuales de Hyper-V a VMware, puede convertir un VHD a VMDK y, a continuación, conectar el disco virtual VMDK convertido a una nueva máquina virtual de VMware. Qemu-img puede utilizarse como conversor de VHD a VMDK y VBoxManage puede utilizarse como alternativa. Ambas soluciones son gratuitas y multiplataforma, lo que te permite convertir un VHD de Hyper-V a un VMDK de VMware en diferentes sistemas operativos. Ten en cuenta que, si deseas utilizar un disco virtual convertido con qemu-img o VBoxManage para máquinas virtuales ESXi, debes convertir el disco virtual VMDK del formato de estación de trabajo al formato ESXi con vmkfstools en la línea de comandos de ESXi.
Si desea utilizar herramientas semiautomáticas o totalmente automáticas para convertir toda la máquina virtual de Hyper-V a una máquina virtual de VMware, puede utilizar la herramienta gratuita VMware vCenter Converter independiente. Independientemente del hipervisor que utilice, la protección de los datos es esencial. NAKIVO Backup & Replication ofrece la función «recuperación entre plataformas», que le permite convertir discos VHD de backups de máquinas virtuales a discos VMDK y restaurar máquinas virtuales de Hyper-V en hipervisores de VMware.