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 características 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 en clúster de Microsoft. VHDX es un formato de archivo semiabierto, y puedes 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 2.ª 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 se pueden clasificar 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) en el punto de montaje especificado en el equipo host si VMware Workstation está instalado. Se proporciona un alto nivel de fiabilidad. Se admiten sectores nativos de 4 KB para los discos virtuales VMDK, que utilizan las versiones más recientes de los productos VMware con VMFS6 (Virtual Machine File System 6).
Compruebe el contenido del VHD antes de convertirlo a VMDK
Este paso opcional le permite verificar el estado de un disco virtual VHD o VHDX de origen y ver los archivos que contiene. Este método evita confusiones y pérdidas de tiempo al convertir un disco virtual equivocado. Si solo quiere extraer archivos de imágenes VHD, esta sección es lo que necesita. Los archivos VHD se pueden montar en un directorio de Linux y asignar a una letra de unidad especificada en Windows.
Cómo abrir VHDX en Linux
En Linux, los archivos VHD y VHDX se pueden montar en un directorio especificado (punto de montaje) desde la consola mediante las herramientas libguestfs . De este modo, puede ver el contenido de los archivos VHD y VHDX en Linux antes de empezar a convertir VHD a VMDK. Veamos cómo consultar el contenido de las imágenes de discos virtuales VHD y VHDX en Linux.
Instale el paquete necesario:
sudo apt-get install libguestfs-tools
Cree el directorio en el que quiera montar las imágenes VHD o VHDX; por ejemplo, /mnt/vhd/:
sudo mkdir /mnt/vhd/
Ejecute el comando para montar una imagen de disco VHD en el directorio especificado. Estamos en el directorio donde se encuentra el archivo VHD necesario; ejecute el comando como root:
guestmount --add test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
Donde:
-add – abre un disco virtual.
--ro – el disco virtual se monta en modo de solo lectura.
/mnt/vhd/ es la ruta al archivo VHD que quiere 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 desde otro directorio, especifique la ruta completa al 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 directorio /mnt/vhd/ creado anteriormente y copiar contenido del disco virtual montado:
guestmount --add /media/user1/data/WinServer2016.vhdx --ro /mnt/vhd -m /dev/sda2
Donde: Se utiliza /dev/sda2 porque /dev/sda1/ es la partición de servicio que el instalador de Windows crea de forma predeterminada.
Puede ver el contenido de la partición del sistema de Windows (disco C:) del disco virtual VHDX en la consola de Linux (vea la captura de pantalla siguiente).

Cómo abrir un VHD en Windows
- Abra la ventana Gestión del equipo (haga clic con el botón derecho en Mi PC y seleccione Administrar en el menú contextual).

- En la ventana Computer Management , seleccione Gestión de discos y, a continuación, haga clic en Acción > Conexión de VHD .

- En la ventana emergente, especifique la ruta al archivo VHD o VHDX. Marque la casilla Solo lectura si no quiere escribir datos en el disco virtual. Esta opción también protege los datos almacenados en el disco virtual frente a daños accidentales.

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

Ahora, después de comprobar el contenido del disco virtual VHD (VHDX) y asegurarse de que sea el disco correcto, puede proceder a convertirlo a VMDK. Hay dos métodos muy asequibles para convertir VHD a VMDK: utilizar qemu-img o utilizar VBoxManage . Ambas soluciones son gratuitas 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 conjunto de programas de 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 analizaremos. Qemu-img puede ejecutarse tanto en los sistemas operativos Windows como Linux.
Uso de qemu-img en Linux
En este ejemplo se utiliza Ubuntu Linux para ejecutar qemu-img .
- Primero, instale qemu-img desde los repositorios de software en línea:
sudo apt-get install qemu-utils - Vaya 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/
Compruebe 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, puede 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 VHD a VMDK con qemu-img en Linux, ejecute 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 progresoEspere hasta que finalice el proceso de conversión.
Uso de qemu-img en Windows
- Descargue qemu-img del sitio 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 .
- Extraiga los archivos del archivo descargado, por ejemplo, en C:Programsqemu-img .
- Inicie la línea de comandos de Windows (CMD): pulse Windows+R para abrir el cuadro « Ejecutar ». Escriba « cmd » en el cuadro y pulse Ctrl+Mayús+Entrar 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 está instalado qemu-img .
- Ver la información del disco virtual:
qemu-img.exe info c:VirtualHyper-Vtest-disk.vhd - Convierta 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– muestra el progreso-O– el archivo de salidaEspere hasta que finalice el proceso de conversión.

Cómo convertir VHD a VMDK con VBoxManage
VBoxManage es la interfaz de línea de comandos (CLI) para administrar el 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 varios formatos de discos virtuales. Puede convertir VHD a VMDK usando VBoxManage .
Si utiliza Windows como sistema operativo anfitrión, ejecute CMD como administrador y vaya 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
Puede 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 quiera ejecutar VBoxManage .
Ejecute el comando para convertir VHD de Hyper-V a 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 VHDX de origen y del archivo VMDK de destino.
Espere hasta que finalice el proceso de conversión.

Si utiliza Linux en el equipo donde está instalado VirtualBox, utilice los mismos comandos (pero tenga en cuenta la estructura de las particiones y los directorios de Linux).
Crear una máquina virtual de VMware utilizando el disco virtual convertido
Convertir un VHD a VMDK permite convertir máquinas virtuales de Hyper-V en máquinas virtuales de VMware. Para completar el proceso, debe importar el disco virtual convertido a las máquinas virtuales de VMware que haya creado manualmente. Este método puede utilizarse con máquinas virtuales que se ejecutan en VMware Workstation y VMware ESXi. En esta sección se explican los detalles restantes 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 máquina virtual nueva (o abrir una existente si desea añadir un disco virtual convertido como disco virtual adicional) y seleccionar la opción para utilizar un disco virtual existente.
Vamos a crear una máquina virtual nueva en VMware Workstation. Seleccione Archivo > Nueva máquina virtual .
Encontrará una explicación detallada sobre cómo crear una máquina virtual nueva de VMware Workstation en la entrada del blog sobre Laboratorio doméstico de VMware. En esta sección de la publicación del blog de hoy, se hace hincapié en los pasos necesarios para importar un disco virtual VHD convertido a la máquina virtual de VMware Workstation. Por lo tanto, preste especial atención a los siguientes pasos:
- Seleccione « Instalaré un sistema operativo más tarde», y elija la versión del sistema operativo invitado (sistema operativo) que estaba instalada en la máquina virtual de Hyper-V de origen cuyo disco virtual convirtió ( 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.

En nuestro ejemplo, el nombre de la máquina virtual es Win2016converted . 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 la ruta al archivo VMDK existente o explore para buscarlo. En este caso, la ruta al archivo VMDK es:
C:VirtualHyper-VWinServer2016qemu2.vmdk

- Si aparece una ventana de diálogo que sugiere convertir un disco virtual existente a un formato más reciente, la elección es suya. Debe convertir un disco virtual a un formato más reciente si no tiene previsto utilizarlo con máquinas virtuales de versiones anteriores (que tienen hardware virtual más antiguo).
- Seleccione BIOS como tipo de firmware en las opciones de la máquina virtual si la máquina virtual de Hyper-V de origen estaba configurada para usar BIOS. De lo contrario, la máquina virtual de VMware a la que ha conectado un disco virtual convertido del formato Hyper-V al formato VMware no se iniciará. Una vez creada la máquina virtual, puede comprobar este ajuste en Máquina virtual > Ajustes , seleccionando la pestaña Opciones > Avanzado .

Ahora, la máquina virtual debería iniciarse correctamente. Una vez iniciado el sistema operativo invitado, instale VMware Tools.

VMware ESXi
También puede convertir VHD a VMDK e importar el disco virtual convertido a una máquina virtual de VMware que se ejecute en un host ESXi. 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 VMDK. Un disco virtual en formato ESXi consta de dos archivos separados: un archivo de datos (.vmdk ) y un archivo descriptor de disco (-flat.vmdk ). Para utilizar en una máquina virtual que se ejecute en ESXi un disco virtual que haya convertido desde el formato Hyper-V con qemu-img o VBoxManage, debe convertir ese disco virtual del formato Workstation al formato ESXi. De lo contrario, aparecerá el error: “ Tipo de disco 2 no compatible o no válido ”.

Veamos cómo utilizar en una máquina virtual que se ejecute en ESXi un disco virtual convertido desde el formato VHD.
Conversión de VMDK al formato ESXi
- Cargue el archivo VMDK convertido en el 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 cargar el archivo vmdk del disco virtual convertido en el almacén de datos ESXi.
En nuestro ejemplo, el archivo WinServer2016qemu.vmdk se carga en el almacén de datos SSD1 , 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 el host ESXi ( Administrar > Servicios > TSM-SSH ).

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

Importar un disco VMDK a una máquina virtual en ESXi
Abra VMware Host Client (lo ideal es usar VMware vSphere Client si vCenter está implementado, pero puede usar VMware Host Client en casi todos los casos, incluso en una situación 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 abre el asistente para crear una máquina virtual.
- Seleccione el tipo de creación . Haga clic en Crear una máquina virtual nueva. 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 su versión. 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 es Microsoft Windows 2016 (64 bits).

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

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

En el explorador del almacén de datos, seleccione el disco virtual que convirtió de VHD a VMDK y, después, del formato VMware Workstation al formato VMware ESXi (con aprovisionamiento ligero). Como quizá recuerde, el disco virtual convertido consta de dos archivos (.vmdk y -flat.vmdk ), pero en el explorador del almacén de datos solo se muestra un archivo vmdk . No se preocupe: esta es una función de VMware Host Client. Ambos archivos copiados en el almacén de datos de ESXi están presentes. Puede comprobarlo en la consola de ESXi o conectándose mediante SSH. En el ejemplo actual, puede ver que el tamaño actual del disco virtual es de 9,11 GB, pero el tamaño máximo aprovisionado de este disco es de 30 GB.

Después de agregar el disco virtual VMDK convertido, puede ver el campo inactivo en el que se muestra el tamaño de 9 GB (el tamaño actual) del disco virtual de 30 GB.

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

Ahora, puede encender la máquina virtual (haga clic con el botón derecho en el nombre de la máquina virtual y, en el menú contextual, seleccione Encender > Encender ).

La máquina virtual con el disco virtual convertido se ha iniciado correctamente y la red funciona correctamente. 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 VHD a VMDK y, a continuación, conectar el disco virtual VMDK convertido a una nueva máquina virtual de VMware. Qemu-img se puede usar como conversor de VHD a VMDK, y VBoxManage se puede usar como alternativa. Ambas soluciones son gratuitas y multiplataforma, lo que le permite convertir VHD de Hyper-V a VMDK de VMware en distintos sistemas operativos. Tenga en cuenta que, si desea usar un disco virtual convertido con qemu-img o VBoxManage para máquinas virtuales de ESXi, debe convertir el disco virtual VMDK del formato de Workstation al formato de ESXi con vmkfstools desde la línea de comandos de ESXi.
Si desea usar herramientas semiautomatizadas o totalmente automatizadas para convertir toda la máquina virtual de Hyper-V en una máquina virtual de VMware, puede usar VMware vCenter Converter Standalone gratis. Independientemente del hipervisor que use, la protección de datos es esencial. NAKIVO Backup & Replication ofrece la función de recuperación entre plataformas, que le permite convertir discos VHD de backups de máquinas virtuales en discos VMDK y restaurar máquinas virtuales de Hyper-V en hipervisores de VMware.