Skip to main content

        Proxmox: Cómo Importar VMs de Hyper-V (.VHDX) a Proxmox - Featured image

Proxmox: Cómo Importar VMs de Hyper-V (.VHDX) a Proxmox

Migrar tu infraestructura desde Microsoft Hyper-V hacia Proxmox VE es un paso muy común para organizaciones y usuarios que buscan una plataforma de virtualización potente y de código abierto. Aunque Proxmox no ejecuta archivos .vhdx de manera nativa, la arquitectura subyacente de su hipervisor QEMU te permite importar y convertir fácilmente los discos de Hyper-V a formatos nativos de Proxmox (RAW o QCOW2) directamente desde la línea de comandos.

Esta guía te guiará paso a paso sobre cómo exportar una máquina virtual desde Hyper-V, transferir el disco virtual, convertirlo para una VM de Proxmox y configurar los controladores VirtIO necesarios para que una instalación de Windows inicie correctamente.

1. Exportar la VM desde Hyper-V

Antes de comenzar, asegúrate de que la Máquina Virtual objetivo en tu Hyper-V esté completamente apagada.

Haz clic derecho sobre la VM en tu Hyper-V Manager y selecciona Export (Exportar).

Exportar VM desde Hyper-V

Elige una ubicación segura (como una carpeta compartida en red o un disco USB externo) para guardar los archivos exportados.

Ubicación de exportación

Una vez que la exportación haya finalizado, navega hasta ese directorio. Encontrarás los archivos de configuración de XML, los snapshots y, lo más importante, la carpeta de Virtual Hard Disks (.vhdx).

Estructura de la carpeta exportada Carpeta de Discos Duros Virtuales

Copia este archivo .vhdx directamente a tu servidor Proxmox, o bien, ponlo en un recurso de red compartido (NAS) al que tu nodo Proxmox tenga acceso.

2. Preparar el “Shell” de la VM en Proxmox

Antes de poder importar y atar el disco, debemos crear una VM “cascarón” o vacía para adjuntarlo.

Crea una nueva Máquina Virtual en Proxmox exactamente como lo harías normalmente. Paso Crucial: Cuando llegues a la pestaña de OS, asegúrate de seleccionar el sistema operativo invitado correcto (ej., Windows). Luego, en la pestaña de Disks (Discos), elimina el disco virtual que Proxmox intenta crear por defecto; no lo necesitamos porque importaremos el nuestro.

Localizar el archivo VHDX

Toma nota del VM ID asignado a esta nueva máquina recién creada (por ejemplo, el 130).

3. Importar y Convertir el Disco VHDX

Abre la terminal de comandos (Shell) del nodo Proxmox, ya sea desde la interfaz web o mediante conexión SSH.

Utilizaremos el comando qm disk import para tomar el archivo .vhdx, convertirlo en el aire, y adjuntarlo al ID de nuestra VM recién creada como un disco unused (sin usar).

La sintaxis del comando es la siguiente: qm disk import <ID_VM> <Ruta_al_VHDX> <Almacenamiento_Destino>

Por ejemplo, para importar un disco ubicado en un recurso NFS hacia el pool de almacenamiento local (local) para nuestra VM 130:

qm disk import 130 '/mnt/pve/Nas_Share_Proxmox/backups/emby - Copy.VHDX' local

Ejecutando qm disk import

Si tu VM de Hyper-V original poseía varios discos duros, simplemente repite el proceso de importación para los discos secundarios:

qm disk import 130 '/mnt/pve/Nas_Share_Proxmox/backups/Emby Google Cache.VHDX' local

Importando disco secundario

4. Adjuntar los Discos Importados

Regresa a la interfaz web de Proxmox y navega a la pestaña de Hardware de la máquina virtual (la 130).

Ahí notarás que los discos recién importados y convertidos se listan ahora como Unused Disk 0 (y Unused Disk 1, etc.).

Discos no usados visibles Seleccionando el disco sin uso

Haz doble clic en el Unused Disk (Disco sin uso) para proceder a editarlo y habilitarlo.

Selecciona el tipo de Bus o Dispositivo correcto. Para obtener el máximo rendimiento de I/O en máquinas virtuales Windows, es altamente recomendable seleccionar VirtIO Block o SCSI (este último requiere que el controlador SCSI sea VirtIO SCSI single). Haz clic en Add.

Adjuntando el disco Disco adjuntado satisfactoriamente

5. Configurar el Orden de Arranque y Controladores (Drivers)

Ahora que el disco está correctamente adjuntado y reconocido, debemos instruir a la BIOS virtual de Proxmox para que arranque (haga boot) desde él.

Ve a la pestaña Options (Opciones) y haz doble clic sobre Boot Order. Habilita la casilla de tu nuevo disco (por ejemplo, scsi0) y arrástralo hacia la parte superior de la lista con la prioridad de arranque 1.

Editar Orden de Arranque alt text

Debido a que las instalaciones de Windows no incluyen por sí mismas de forma nativa los controladores firmados de VirtIO, es muy probable que te reciban con un pantallazo azul de error (INACCESSIBLE BOOT DEVICE) si configuraste el Bus a SCSI o VirtIO Block al adjuntarlo en lugar de IDE o SATA.

Para prevenir y solucionar esto, ve a la pestaña de Hardware, añade una nueva unidad de CD-ROM, y monta en ella la ISO de Drivers VirtIO para Windows.

Agregar unidad de CD-ROM Seleccionar ISO VirtIO ISO Montado

Enciende la máquina virtual. Si Windows falla al arrancar, forzará tras unos intentos la Reparación Automática de inicio. Desde las Opciones Avanzadas de reparación, podrás abrir el ‘Símbolo del sistema’, y cargar a mano mediante el comando drvload el controlador de almacenamiento de VirtIO (viostor o vioscsi) directamente desde la ISO que montamos. ¡Esto hará que Windows reconozca mágicamente el disco duro y arranque tu sistema!

Arrancando y reparando Windows arranca con éxito

Conclusión

El proceso de importar completamente máquinas virtuales robustas desde Hyper-V hacia Proxmox VE utilizando los archivos VHDX es un procedimiento extremadamente confiable gracias a la poderosa utilidad qm disk import. Al permitir que QEMU maneje la conversión del formato a nivel de bloque localmente, evitas tener la engorrosa necesidad de usar lentos softwares de conversión de terceros.

Simplemente recuerda la regla de oro: cambiar cualquier instalación de un viejo Windows hacia un nuevo hipervisor resulta en un drástico cambio de hardware virtual. ¡Asegúrate siempre de tener adjuntada la imagen ISO de VirtIO para inyectar y proveer los drivers vitales durante la inevitable la transición del primer arranque (Boot)!