En corto

  1. Descarga Disk2vhd o ejecútalo directo: \\live.sysinternals.com\tools\disk2vhd.exe.

  2. Como administrador: marca Use Vhdx y Use Volume Shadow Copy, selecciona todos los volúmenes del disco del sistema (incluida la partición System Reserved o la EFI System Partition), elige un destino en otro disco o un recurso de red, y Create.

  3. Por línea de comandos (todo el disco, útil para scripts):

    1
    
    disk2vhd * D:\p2v\server01.vhdx
    

    disk2vhd /? muestra los modificadores equivalentes a las casillas en la versión actual.

Resultado: un .vhdx por disco físico, arrancable en Hyper-V y convertible para Proxmox/KVM.

Qué hace

Disk2vhd (Sysinternals, versión 2.02 de 2021) crea una instantánea con Volume Shadow Copy de los volúmenes que marques y la vuelca a un VHD o VHDX. Por eso se puede ejecutar con el sistema en uso: la copia es consistente al instante de la instantánea aunque el servidor siga escribiendo. Conserva la tabla de particiones del disco (MBR o GPT) y copia solo los datos de los volúmenes seleccionados, así que puedes llevarte el sistema y dejar fuera un disco de datos.

Corre en Vista/Server 2008 en adelante, x86 y x64.

Antes de crear la imagen

  • Espacio: el VHDX es dinámico y crece hasta el tamaño de los datos usados. El destino debe estar en otro disco; sobre el mismo que conviertes funciona, pero lento.
  • BitLocker apagado en los volúmenes a convertir, y descifrado completo. Disk2vhd no soporta volúmenes cifrados.
  • Hibernación fuera (powercfg /h off): hiberfil.sys pesa lo que la RAM y no sirve de nada en la VM.
  • Herramientas de hardware fuera: utilidades de RAID, teaming de NIC, agentes del fabricante; en la VM solo estorban.
  • Drivers para el destino: si vas a KVM/Proxmox, instala antes los drivers virtio-win en la máquina física (el instalador virtio-win-guest-tools). Windows arranca en un hardware nuevo solo si ya tiene el driver del controlador de disco; si no puedes instalarlos antes, arranca la VM con SATA/IDE y cambia a virtio después.
  • Discos dinámicos: convierte a básicos antes. Disk2vhd los copia, pero el arranque desde LDM en otra máquina es una fuente de problemas.

Arrancar la imagen

Hyper-V

Disco de origenVM
MBR / BIOSGeneración 1, disco conectado como IDE (así lo pide la documentación de Disk2vhd)
GPT / UEFIGeneración 2, disco SCSI; Secure Boot apagado si el Windows es anterior a 8.1

Al primer arranque Windows detecta el hardware nuevo e instala lo que tenga; los Integration Services completan el resto.

Proxmox / KVM

1
2
3
4
5
6
qm create 120 --name server01 --memory 8192 --cores 4 --net0 virtio,bridge=vmbr0 --ostype win11
qm disk import 120 /mnt/p2v/server01.vhdx local-lvm            # qemu-img convierte el VHDX
qm set 120 --sata0 local-lvm:vm-120-disk-0 --boot order=sata0   # primer arranque sin depender de virtio
qm set 120 --bios ovmf --efidisk0 local-lvm:1                   # solo si el origen era GPT/UEFI
qm set 120 --cpu x86-64-v2-AES                                  # no uses "host" con Windows
qm start 120

Cuando arranque, instala virtio-win, apaga, cambia el disco a virtio0 o scsi0 con virtio-scsi y vuelve a arrancar. La CPU host es lenta con Windows; ese post explica por qué x86-64-v2-AES.

Si no arranca

Windows suele recuperar el arranque desde el ISO de instalación: Reparar el equipo → Símbolo del sistema:

1
2
3
bootrec /fixmbr
bootrec /fixboot
bcdboot C:\Windows

En UEFI, bcdboot C:\Windows /s S: /f UEFI con la ESP montada en S: (diskpart → select disk 0, list partition, select partition 1, assign letter=S).

Trampas

  • No montes el VHDX en la máquina de origen si piensas arrancarlo: Windows le cambia la firma de disco para no chocar con el original, y el BCD, que referencia discos por firma, deja de encontrar el disco de arranque. Es el aviso más importante de la documentación.
  • Dos máquinas iguales en la red: la VM es un clon con el mismo nombre, SID e IP. No las enciendas a la vez en la misma red, y si es miembro de un dominio, decide cuál se queda.
  • Activación: el cambio de hardware dispara la reactivación; las licencias OEM no son transferibles a una VM según los términos de Microsoft.
  • El límite de 127 GB que menciona la documentación es de Virtual PC; Hyper-V y KVM no lo tienen (VHDX llega a 64 TB).
  • Linux no se convierte con esto; ahí es dd, Clonezilla o qemu-img sobre el disco.

Ver también