Windows PC Proxmox Migration

Importar VHDX a Proxmox. Convierte un PC físico con Windows en una máquina virtual creando una imagen VHDX.

En Guías, Linux, Tecnología, Virtualización, Windows by KevinLeave a Comment

Hace poco tuve que configurar un hipervisor Proxmox y convertir una máquina física con Windows 10 en una máquina virtual que se ejecuta en este servidor. No es un proceso muy complicado, pero como era la primera vez que lo hacía en Proxmox, había algunos pasos que no conocía de antemano y quería documentar el proceso.

Crear la imagen VHDX de Windows

Esta guía no va a explicar todo el proceso para crear el archivo VHDX, pero puedes hacerlo descargando Disk2VHD y ejecutándolo en la máquina que quieras migrar. Ten en cuenta que el archivo va a ser bastante grande (dependiendo del tamaño de tu disco), así que asegúrate de tener suficiente espacio para él.

Transfiere el VHDX a tu servidor Proxmox

Tenemos que mover el archivo VHDX al servidor Proxmox para poder importarlo. Puedes hacerlo de varias maneras.

Opción 1: Copiar el VHDX a través de SFTP (WinSCP)

Puede descargar e instalar WinSCP en el mismo equipo Windows y copiar el archivo VHDX a Proxmox a través de SFTP.

Opción 2: Utilizar una unidad USB para mover el VHDX

Puedes copiar el archivo VHDX a una unidad USB, conectarla al servidor Proxmox y montarla para acceder a los archivos.

En primer lugar, asegurate de que el USB está conectado correctamente. El siguiente comando mostrará una lista de todos los dispositivos de bloque conectados a tu sistema. Busca un dispositivo que coincida con el tamaño y/o la etiqueta de tu unidad USB. Puede aparecer como /dev/sdb, /dev/sdc o similar.

lsblk

Crea la carpeta donde montarás la unidad USB. Puedes elegir cualquier ubicación y nombre, pero /mnt es un lugar habitual para ello.

mkdir /mnt/usb

Monta la unidad USB para que sea accesible dentro del sistema de archivos. Móntala en el punto de montaje que has creado.

mount /dev/sdb1 /mnt/usb

Reemplaza sdb1 por el nombre del dispositivo que has identificado antes. Asegúrate de especificar la partición (por ejemplo, sdb1) y no el dispositivo (por ejemplo, sdb). Si la unidad USB está formateada con NTFS, debes especificarlo, y es posible que sea necesario instalar el paquete ntfs-3g:

apt update
apt install ntfs-3g
mount -t ntfs-3g /dev/sdb1 /mnt/usb

Una vez montado, puedes comprobar el contenido del punto de montaje con ls -l /mnt/usb, y el sistema de archivos montado y el uso del disco con df -h /mnt/usb.

Crea la nueva máquina virtual Windows en Proxmox

Crea una nueva máquina virtual en Proxmox. Hay algunos ajustes que debemos configurar.

  • En la pestaña SO:
    • No utilices ningún medio de instalación.
    • En Tipo, selecciona Microsoft Windows.
    • En Versión, selecciona la versión que coincida con el VHDX.
    • Selecciona Añadir unidad adicional para controladores VirtIO.
    • Selecciona la imagen ISO para tus controladores VirtIO.
  • En la pestaña Sistema:
    • En Máquina, selecciona q35.
    • En Controlador SCSI, selecciona VirtIO SCSI.
    • Selecciona Agente QEMU.
    • En BIOS, selecciona OVMF (UEFI).
    • Selecciona Añadir disco EFI.
    • En Almacenamiento EFI, selecciona tu ubicación de almacenamiento.
    • ⚠️ Si estas convirtiendo una máquina Windows 10/11, selecciona Añadir TPM, configura el volumen de almacenamiento TPM y, en Versión, selecciona v2.0.
  • En la pestaña Discos, elimina los discos predeterminados.
  • Configura la CPU y la memoria como consideres oportuno.
  • En la pestaña Red, en Modelo, selecciona VirtIO.
  • Finaliza la creación de la máquina virtual. ⚠️ Desmarque «Iniciar después de crear».
  • ⚠️ Anota el ID de la máquina virtual para luego.

Añade el disco convertido a la máquina virtual

Importar el VHDX al almacenamiento Proxmox

Abre el shell en el nodo Proxmox y ejecuta el siguiente comando:

qm importdisk [vm_id] [vhdx_file] [storage]
  • Reemplaza [vm_id] por el ID de la máquina virtual que has creado.
  • Reemplaza [vhdx_file] por la ruta y el nombre del archivo VHDX, ya sea en la unidad USB o en la ruta a la que lo has copiado mediante SFTP.
  • Reemplaza [storage] por el nombre de tu almacenamiento.

Ejemplo:

qm importdisk 200 /mnt/usb/WIN10.vhdx local_lvm

Dependiendo el tamaño de tu disco y del archivo VHDX esto puede tardar bastante.

Conecta el disco importado y arranca desde él.

Ahora vamos a hacer algunos cambios en la configuración de la máquina virtual. En la pestaña de Hardware:

  • Busca el disco importado, que suele aparecer como Disco no utilizado 0 (Unused Disk 0), haga doble clic en él y configure el Bus/Dispositivo en SATA.
  • Añade un nuevo disco VirtIO Block de 1 GB. Este solo es temporal, para forzar a Windows a cargar los controladores VirtIO.

En la pestaña de Opciones:

  • Selecciona «Boot Order» (Orden de arranque), configura el disco SATA como primer dispositivo y asegurate de que la opción «Enabled» (Habilitado) esté marcada.

Inicia la máquina virtual y abre la consola. Deja que Windows arranque y, una vez dentro de la máquina virtual, instala los controladores de disco VirtIO. Una vez instalados, abre el Administrador de Discos y comprueba que el disco VirtIO aparece correctamente. Es posible que también tengas que instalar los controladores de red VirtIO para que el adaptador de red de la máquina virtual funcione correctamente.

Una vez todo aparezca bien, apaga la máquina virtual.

Windows 10 VirtIO driver wizard

Ahora volveremos a editar la configuración de la máquina virtual. En la pestaña Hardware:

  • Desconecta tanto el disco VirtIO de 1 GB como el disco principal que has importado. Selecciona cada disco y haz clic en Desconectar («Detach») > Sí.
  • Vuelve a conectar el disco principal, pero esta vez como un disco VirtIO Block.
  • Elimina el disco VirtIO de 1 GB.

En la pestaña de Opciones:

  • Actualice el orden de arranque para utilizar el disco VirtIO.

Inicia la máquina virtual y abre la consola. Windows debería arrancar correctamente y la máquina virtual debería ejecutarse de forma nativa en Proxmox y con un rendimiento superior que con la configuración SATA predeterminada.

Leave a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.