Moovv1.0.44
Moov · Guías prácticas

Windows no arranca después de migrar de VMware a Proxmox: INACCESSIBLE_BOOT_DEVICE

Una VM con Windows que funcionaba bien en VMware se detiene con la pantalla azul INACCESSIBLE_BOOT_DEVICE (código de detención 0x0000007B) en su primer arranque en Proxmox VE, oVirt / OLVM o cualquier hipervisor KVM cuando su disco de sistema cuelga de un controlador VirtIO y Windows no tiene un driver de almacenamiento VirtIO marcado para cargarse al arrancar. Los datos están intactos. La solución es arrancar una vez desde un controlador que Windows ya conoce, instalar el driver y volver a cambiar, o inyectar el driver sin arrancar el sistema.

Por qué pasa

En VMware el disco de sistema cuelga de un controlador LSI Logic SAS o VMware Paravirtual (PVSCSI), y Windows solo inicia en el arranque los drivers de almacenamiento que necesitó la última vez que corrió. En KVM los controladores rápidos son VirtIO SCSI, que usa el driver vioscsi, y VirtIO Block, que usa viostor. Ninguno viene con Windows. El kernel carga, busca el volumen de arranque a través de un controlador para el que no tiene driver y se detiene con 0x7B.

Instalar los drivers VirtIO mientras la VM sigue en VMware muchas veces no alcanza. El instalador los deja en el almacén de drivers, pero sin un dispositivo VirtIO presente Windows no marca el driver de almacenamiento como de arranque, así que el primer arranque sobre un controlador VirtIO puede fallar exactamente igual.

Hay una segunda causa, sin relación con la anterior, que lleva a un callejón parecido: el firmware. Una VM que arrancaba con UEFI en VMware tiene que crearse con OVMF y un disco EFI en el destino, y una de BIOS con SeaBIOS. Las entradas de arranque UEFI viven en el archivo NVRAM que VMware guarda junto a la VM, y ese archivo no viaja con el disco.

Cómo arreglarlo a mano

Los pasos están escritos para Proxmox VE, donde más se reporta el problema, y valen igual para cualquier hipervisor KVM. Los cinco primeros son el camino habitual. El último es para un Windows que no arranca desde ningún controlador.

  1. 01
    Iguala el firmware

    Revisa si la VM usaba BIOS o EFI en VMware y configura lo mismo en el destino: OVMF más un disco EFI para UEFI, SeaBIOS para BIOS. En Proxmox es el campo BIOS, en Hardware.

  2. 02
    Arranca una vez desde SATA

    Desconecta el disco de sistema y vuelve a conectarlo como SATA. Windows trae un driver AHCI propio, así que arranca. Deja ese disco primero en el orden de arranque.

  3. 03
    Agrega un disco VirtIO temporal

    Con la VM apagada, define el controlador SCSI como VirtIO SCSI, agrega en él un disco de 1 GB y monta la ISO de virtio-win como CD-ROM. El disco pequeño le da a Windows un dispositivo VirtIO real al que asociar el driver.

  4. 04
    Instala el driver de almacenamiento VirtIO

    Inicia Windows y ejecuta virtio-win-gt-x64.msi desde la ISO, o instala solo los drivers de almacenamiento desde un símbolo del sistema con privilegios. Cambia 2k22 por la carpeta de tu versión: 2k16, 2k19, 2k22 o 2k25. Cuando el disco de 1 GB aparece en Administración de discos, el driver ya quedó asociado.

    pnputil /add-driver E:\vioscsi\2k22\amd64\vioscsi.inf /install
    pnputil /add-driver E:\viostor\2k22\amd64\viostor.inf /install
  5. 05
    Pasa el disco de sistema a VirtIO SCSI

    Apaga, desconecta otra vez el disco de sistema y conéctalo como SCSI. Corrige el orden de arranque e inicia la VM. Cuando arranque, quita el disco temporal.

  6. 06
    Si Windows no arranca desde ningún controlador, inyecta el driver sin iniciarlo

    Arranca la ISO de instalación de Windows, elige Reparar el equipo y abre el Símbolo del sistema. drvload hace visible el disco para el entorno de recuperación y dism agrega el driver al Windows instalado. Las letras de unidad cambian en recuperación: revísalas con diskpart y list volume antes de correr los comandos.

    drvload E:\vioscsi\2k22\amd64\vioscsi.inf
    dism /image:C:\ /add-driver /driver:E:\vioscsi\2k22\amd64\vioscsi.inf
Moov v1.0.44

Cómo lo evita Moov

Moov prepara la VM antes de su primer arranque en el destino. La etapa de customize corre sin iniciar la VM, contra el disco montado, así que no hay primer arranque desde SATA, ni disco temporal, ni segundo apagado.

  • Los drivers de almacenamiento VirtIO, vioscsi y viostor, se inyectan en Windows con la VM apagada, en archivos y en el registro, y eso permite que el disco quede en virtio-scsi desde el primer inicio.
  • Los drivers de red, balloon y serie y el QEMU Guest Agent los instala Windows en ese primer arranque, sin nada que hacer a mano.
  • En Windows se corre el BCD fixup, y en VMs que arrancan por UEFI se siembra o repara la partición ESP.
  • Las VMs BIOS con discos MBR arrancan aunque Windows no viva en el disco 0.
  • Windows Server 2016 recibe sus propios drivers VirtIO, y eliges la versión de virtio-win por conexión de destino o por VM.
  • Después de migrar, Moov enciende la VM y espera al QEMU Guest Agent. La ola informa verificada, no concluyente o fallida, en vez de ponerse en verde solo porque los discos se copiaron.

Preguntas frecuentes

¿Qué significa INACCESSIBLE_BOOT_DEVICE?
Es el código de detención 0x0000007B de Windows: el kernel inició pero no pudo llegar al volumen desde el que arranca. Después de un cambio de hipervisor la causa casi siempre es que falta el driver del controlador de almacenamiento, no un disco dañado.
¿Perdí mis datos?
No. El disco está intacto y Windows simplemente no lo ve a través del controlador nuevo. Conéctalo como SATA y arranca.
¿Puedo dejar el disco en SATA?
Funciona, pero SATA es un controlador emulado y rinde menos bajo carga. VirtIO SCSI es el bus que Proxmox recomienda para VMs Windows.
¿Pasa en Windows Server 2016, 2019, 2022 y 2025?
Sí, y también en Windows 10 y 11: ninguno trae los drivers de almacenamiento VirtIO. Solo cambia la carpeta de donde sacas el driver: 2k16, 2k19, 2k22, 2k25, w10 o w11.
¿También pasa con otros métodos de migración?
Puede pasar con cualquier método que copie el disco sin preparar la VM: una importación directa desde el hipervisor de origen, una conversión manual del disco o una restauración simple. El arreglo es el mismo en todos.