Cómo convertir VHD a VMDK: 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 diferentes formatos de archivo de disco virtual para las máquinas virtuales. Esto significa que es necesario convertir los archivos de disco virtual al mover máquinas virtuales entre VMware e Hyper-V. Por ejemplo, puede que necesite migrar máquinas virtuales entre hipervisores para realizar pruebas. En otros casos, puede que tengas que cambiar el formato si has elegido uno equivocado al crear la máquina virtual.
Hyper-V utiliza VHD y VHDX para las máquinas virtuales, mientras que VMware utiliza VMDK. Lee este post para aprender a migrar VMs de Hyper-V a un entorno VMware convirtiendo un archivo VHD en VMDK.
Formatos de disco virtual
VHD hace referencia al formato de imagen de disco que se introdujo como formato de disco virtual de máquinas virtuales para Connectix Virtual PC. Más tarde, Microsoft compró Virtual PC y continuó el desarrollo de este producto de virtualización. Entonces, Microsoft presentó Hyper-V como sustituto de Microsoft Virtual PC. Las principales funciones de VHD son:
- El tamaño máximo admitido de los archivos VHD es de 2 TB (2^32*512 bytes), donde 32 bits es la cantidad y 512 bytes es el tamaño del sector.
- El formato VHD de discos virtuales también es compatible con VirtualBox y se sigue utilizando en la nube de Microsoft Azure.
- Las máquinas virtuales Hyper-V de Generación 1 sólo pueden utilizar discos virtuales del formato VHD.
VHDX es la nueva versión del formato de disco virtual proporcionado por Microsoft, que es el sucesor del formato VHD. El formato VHDX tiene una amplia área de uso: discos virtuales de máquinas virtuales Hyper-V y volúmenes compartidos de clústeres de Microsoft. VHDX es un formato de archivo semiabierto y puede descargar esta especificación de formato de archivo del sitio web de Microsoft y crear sus propias aplicaciones que trabajen 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 para VHD.
- Compatible con sectores de 4 KB
- En comparación con los discos VHD, está mejor protegido contra los fallos causados por la pérdida de energía.
Las máquinas virtuales de generación 2 admiten el uso de discos virtuales VHDX y VHD. Sin embargo, las máquinas virtuales Azure sólo pueden utilizar discos virtuales con formato VHD. Los discos virtuales VHDX se pueden crear en la ventana Administración de discos en Windows 10 y Windows Server 2016. Las imágenes VHDX también pueden montarse (adjuntarse) como una unidad de disco, mostrarse en el Explorador de Windows (Mi PC) en las últimas versiones de Windows gracias al controlador VHDX incorporado.
VMDK es un formato abierto de imágenes de disco virtual que utilizan los hipervisores VMware, VirtualBox, QEMU, etc., y que no es compatible con Hyper-V. Los archivos de imagen VMDK pueden considerarse contenedores para almacenar datos de forma similar a como se hace en los discos duros físicos, y tienen una alta compatibilidad con diversos software 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 dividirse en los siguientes tipos y variaciones: monolíticos, divididos, dispersos, planos, así como con aprovisionamiento fino y grueso. Los discos Delta VMDK se crean al tomar instantáneas de máquinas virtuales. Los archivos VMDK se pueden mapear (montar) en el punto de montaje especificado en su máquina host si VMware Workstation está instalado. Se ofrece un alto nivel de fiabilidad. Los sectores nativos de 4 KB son compatibles con los discos virtuales VMDK, utilizados por las versiones más recientes de los productos VMware con VMF S6.
Compruebe el contenido del VHD antes de convertir VHD a VMDK
Este es un paso opcional que le permite asegurarse de que un disco virtual VHD o VHDX de origen está en buen estado y ver los archivos que contiene. Este enfoque evita que se confunda y pierda tiempo convirtiendo el disco virtual equivocado. Si sólo quieres 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 VHDX en Linux
En Linux VHD y VHDX, los archivos se pueden montar en un directorio especificado (punto de montaje) en la consola mediante el uso de 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. Exploremos cómo ver el contenido de las imágenes de disco virtual VHD y VHDX en Linux.
Instale el paquete necesario:
sudo apt-get install libguestfs-tools
Cree el directorio en el que desea 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. Nos situamos en el directorio donde se encuentra el fichero VHD requerido, y ejecutamos el comando como root:
guestmount --add test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
Donde:
-add
– abre un disco virtual.
--ro
– un disco virtual se monta en modo de sólo lectura.
/mnt/vhd/
es la ruta al archivo VHD que desea montar.
-m /dev/sda1/
es el nombre de la partición existente en el disco virtual VHD. Hay una partición NTFS en el disco virtual VHD utilizado en este ejemplo.
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 directorio /mnt/vhd/ creado anteriormente, y copiar el 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 creada por defecto por el instalador de Windows.
Puede ver el contenido de la partición del sistema Windows (disco C:) del disco virtual VHDX en la consola Linux (véase la captura de pantalla siguiente).
Cómo abrir VHD en Windows
Abra la ventana Administración de equipos (haga clic con el botón derecho del ratón en Mi PC y seleccione Administrar en el menú contextual).
En la ventana Administración de equipos, seleccione Administración de discos y, a continuación, haga clic en Acción > Adjuntar VHD.
En la ventana emergente, defina la ruta a su archivo VHD o VHDX. Marque la casilla Sólo lectura si no desea escribir datos en el disco virtual. Esta opción también protege los datos almacenados en el disco virtual contra la corrupción accidental.
Ahora el disco 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 sólo puede determinar particiones con sistemas de archivos compatibles: NTFS, FAT32, exFAT, ReFS. Si su disco virtual contiene particiones Linux con ext3, ext4 y otros sistemas de archivos, no podrá ver el contenido de los archivos VHD o VHDX montados en su sistema Windows sin herramientas de terceros.
Para desmontar un disco virtual VHD o VHDX de su sistema Windows, abra el Explorador de Windows, haga clic con el botón derecho del ratón en la letra de unidad asignada a su disco virtual y, en el menú contextual, haga clic en Expulsar.
Ahora, cuando haya comprobado el contenido del disco virtual VHD (VHDX) y esté seguro de que se trata del disco que necesita, puede empezar a convertir VHD en VMDK. Hay dos métodos muy asequibles para convertir VHD a VMDK – usando qemu-img y usando VBoxManage. Las dos soluciones consideradas 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 para convertir Hyper-V a VMware discos virtuales que vamos a discutir en este blog. Qemu-img puede ejecutarse 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 online:
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
Obtenga los privilegios de root (con el comando sudo su ) y vea la información de la imagen VHD:
qemu-img info test-disk.vhd
Del mismo modo, puede comprobar 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 -p
Donde:
-O
– define el formato del archivo de salida
-p
– mostrar la barra de progreso
Esperar a que finalice el proceso de conversión.
Uso de qemu-img en Windows
Descarga qemu-img de la web oficial (puedes descargar los instaladores de 32 y 64 bits). En el ejemplo actual, se utiliza qemu-img-win-x64-2_3_0. Extraiga los ficheros del archivo descargado, por ejemplo, a C:\Programas\qemu-img\. A continuación, inicie la línea de comandos de Windows (CMD): pulse Windows+R para abrir el cuadro «Ejecutar«. Escribe «cmd
» en la casilla y pulse Ctrl+Mayús+Intro para ejecutar el comando como administrador.
Vaya al directorio qemu-img:
cd C:\Programs\qemu-img
Los 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:\Virtual\Hyper-V\test-disk.vhd
Convertir la imagen de disco VHD al formato VMDK:
qemu-img.exe convert -p c:\Virtual\Hyper-V\test-disk.vhd -O vmdk c:\Virtual\Hyper-V\test-disk.vmdk
Donde:
-p
– mostrar progreso
-O
– el archivo de salida
Espere a 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 gestionar el hipervisor VirtualBox y las máquinas virtuales. VBoxManage es la 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 VBoxManagees su capacidad para convertir múltiples formatos de discos virtuales. Puede convertir VHD a VMDK con 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 se instala en el directorio por defecto.
cd C:\Archivos de Programa\Oracle\VirtualBox
Puedes añadir la ruta de instalación de VirtualBox a la variable de entorno Path para evitar ir al directorio de instalación de VirtualBox manualmente cada vez que quieras ejecutar VBoxManage.
Ejecute el comando para convertir Hyper-V VHD a VMware VMDK como sigue:
VBoxManage clonehd --format vmdk C:\virtual\Hyper-V\WinServer2016.vhdx С:\virtual\Hyper-V\WinServer2016vbox.vmdk
La sintaxis es comprensible – 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 a que finalice el proceso de conversión.
Si utilizas Linux en la máquina donde está instalado VirtualBox, utiliza los mismos comandos (pero ten en cuenta la estructura de particiones y directorios de Linux).
Creación de una VMware VM utilizando el disco virtual convertido
La conversión de VHD a VMDK permite convertir máquinas virtuales Hyper-V a VMware. Necesita importar el disco virtual convertido a sus VMs VMware creadas manualmente para realizar la conversión completa de la VM. Este enfoque se puede utilizar para máquinas virtuales que se ejecutan en VMware Workstation y VMware ESXi. Los detalles restantes de cómo convertir Hyper-V a VMware se explican en esta sección.
Estación de trabajo VMware
Si desea crear una máquina virtual utilizando un disco virtual convertido del formato VHD (VHDX) al formato VMDK en VMware Workstation, sólo tiene que crear una nueva VM (o abrir una VM existente si desea añadir un disco virtual convertido como disco virtual adicional) y seleccionar que desea utilizar un disco virtual existente.
Por ejemplo, vamos a crear una nueva máquina virtual en VMware Workstation. Pulsa Archivo > Nueva máquina virtual.
Vea una explicación detallada de cómo crear una nueva VMware Workstation VM en la entrada del blog sobre VMware Home Lab. En esta sección de la entrada del blog de hoy, se hace hincapié en los pasos necesarios para importar un disco virtual VHD convertido a la VMware Workstation VM. Por lo tanto, debe prestar especial atención a los siguientes pasos:
Seleccione «Instalaré un sistema operativo más adelante» y elija la versión del SO invitado (sistema operativo) que se instaló en la VM Hyper-V de origen cuyo disco virtual ha 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 VM se almacenan en C:\Virtual\Win2016convertido.
Seleccione «Utilizar un disco virtual existente» en el paso Seleccionar un disco.
Especifique una ruta al archivo VMDK existente o busque el archivo. En este caso, la ruta del archivo VMDK es:
C:\Virtual\Hyper-V\WinServer2016qemu2.vmdk
Si la ventana de diálogo aparece y le sugiere que convierta un disco virtual existente a un formato más nuevo, la elección depende de usted. Debe convertir un disco virtual a un formato más reciente si no tiene previsto utilizar este disco virtual para máquinas virtuales de versiones anteriores de VM (que tienen un hardware virtual más antiguo).
Seleccione BIOS como el tipo de firmware en las opciones de VM si su Hyper-V VM de origen fue configurado para utilizar BIOS. De lo contrario, la máquina virtual VMware a la que haya conectado un disco virtual convertido del formato Hyper-V al formato VMware no arrancará. Una vez creada la máquina virtual, puede comprobar estos ajustes accediendo a VM > Settings, seleccionando la pestaña Options > Advanced.
Ahora su máquina virtual debería arrancar correctamente. Una vez arrancado el sistema operativo invitado, instale Herramientas VMware.
VMware ESXi
También puede convertir VHD a VMDK e importar un disco virtual convertido a una VMware VM que se ejecuta en un host ESXi. Sin embargo, el formato de disco virtual VMware para VMware estación de trabajo y VMware ESXi es un asunto diferente. Un disco virtual del formato VMware Workstation tiene un descriptor de disco que se construye en el único archivo VMDK. Un disco virtual del formato ESXi consta de dos archivos separados: un archivo de datos (.vmdk) y un archivo descriptor de disco(-flat.vmdk). Para utilizar un disco virtual que ha convertido desde el formato Hyper-V con qemu-img o VBoxManage para una VM que se ejecuta en ESXi, tiene que convertir ese disco virtual desde el formato de estación de trabajo al formato ESXi. De lo contrario, obtendrá el error «Tipo de disco 2 no compatible o noválido».
Averigüemos cómo utilizar un disco virtual convertido del formato VHD para una máquina virtual que se ejecuta en ESXi.
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, 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 cuya dirección IP es 10.10.10.74.
Asegúrese de que el acceso SSH está habilitado en su host ESXi (Manage > Services > TSM-SSH).
Conéctese a su host ESXi mediante SSH utilizando un cliente SSH (por ejemplo, PuTTY) como root.
Vaya al directorio donde está almacenado el archivo de disco virtual VMDK convertido desde el formato Hyper-V VHD (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 del formato de estación de trabajo a un disco virtual del formato ESXi. En nuestro ejemplo, un disco virtual thin provisioned del formato ESXi es el tipo de disco virtual de destino.
vmkfstools -i WinServer2016qemu.vmdk WinServer2016thin.vmdk -d thin
Como se puede ver en la captura de pantalla, la post conversión de VMDK del formato de estación de trabajo al formato ESXi con vmkfstools se ha completado con éxito y se han creado dos nuevos archivos:
WinServer2016thin-flat.vmdk
WinServer2016thin.vmdk
Importar un disco VMDK a una VM en ESXi
Abrir VMware Host Client (es más óptimo utilizar VMware vSphere Client si vCenter está desplegado, pero puede utilizar VMware Host Client en casi todos los casos, incluyendo un escenario con ESXi Free Edition si ha decidido convertir Hyper-V a VMware VMs). En la interfaz web de VMware Host Client, seleccione Máquinas Virtuales y pulse Crear/Registrar VM.
Se abre el asistente de nueva máquina virtual.
1. Seleccione el tipo de creación. Pulsa Crear una nueva máquina virtual. Haga clic en Siguiente en cada paso para continuar.
2. Seleccione un nombre y un SO invitado. Seleccione la versión de la VM, la familia del SO invitado y la versión del SO invitado. En este ejemplo, el nombre de la máquina virtual es Win2016converted. La VM es compatible con ESXi 6.5 o posterior, Windows es la familia del SO invitado y la versión del SO invitado es Microsoft Windows 2016 (64 bits).
3. Seleccione almacenamiento. Seleccione el almacén de datos en el que se almacenarán los archivos de la máquina virtual. El nombre del almacén de datos utilizado en este ejemplo es SSD2.
4. Personalizar 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. A continuación, haga clic en Añadir disco duro > Disco duro existente.
En el navegador de almacén de datos, seleccione el disco virtual que convirtió de VHD a VMDK y luego convirtió VMDK del formato VMware Workstation al formato VMware ESXi (thin provisioned). Como recordará, el disco virtual convertido consta de dos archivos (.vmdk y -flat.vmdk), pero en el navegador de almacenes de datos sólo se muestra un archivo vmdk. No se preocupe: se trata de una función de VMware Host Client. Ambos archivos copiados en el almacén de datos ESXi están presentes. Puede comprobarlos en la consola ESXi o conectándose a través de 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 provisionado de este disco es de 30 GB.
Después de añadir el disco virtual VMDK convertido, puede ver el campo inactivo donde se muestra el tamaño de 9 GB (el tamaño actual) del disco virtual de 30 GB. No hay necesidad de prestar atención al hecho de que el tipo de disco virtual se muestra incorrectamente en la siguiente captura de pantalla; como tal, el disco virtual se importa como un disco delgado, como estaba previsto.
5. Listo para completar. En este paso, puede comprobar sus ajustes. Si todo es correcto, pulse Finalizar para crear una nueva máquina virtual.
Ahora puede encender la máquina virtual (haga clic con el botón derecho del ratón en el nombre de la máquina virtual y, en el menú contextual, seleccione Encendido > Power On).
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 SO invitado.
Conclusión
Si desea convertir Hyper-V a VMware a nivel de máquinas virtuales, puede convertir VHD a VMDK y luego adjuntar un disco virtual VMDK convertido a una nueva VMware VM. Qemu-img puede usarse como conversor de VHD a VMDK y VBoxManage puede usarse como alternativa. Ambas soluciones son gratuitas y multiplataforma, lo que permite convertir Hyper-V VHD a VMware VMDK en diferentes sistemas operativos. Tenga en cuenta que si desea utilizar un disco virtual convertido con qemu-img o VBoxManage para máquinas virtuales ESXi, debe convertir el disco virtual VMDK del formato de estación de trabajo al formato ESXi con vmkfstools en la línea de comandos ESXi.
Si desea utilizar herramientas semiautomatizadas o totalmente automatizadas para convertir toda la máquina virtual Hyper-V a la máquina virtual VMware, puede utilizar el programa gratuito VMware vCenter Converter Standalone.
Independientemente del hipervisor que utilice, la protección de datos es importante. NAKIVO Backup & Replication proporciona una función de recuperación entre plataformas, que permite convertir discos VHD de los backups de VM en discos VMDK y restaurar máquinas virtuales de Hyper-V en hipervisores VMware.