Aspectos a tener en cuenta en la migración a Windows para « IBM Cloud VPC »: controladores, licencias y preparación
Consulte las consideraciones relativas a la migración a Windows para IBM Cloud VPC, incluyendo la inyección de controladores « VirtIO », la preparación con Sysprep y los requisitos de licencia.
El reto del conductor
En su entorno VMware, Windows carga los controladores paravirtualizados VMware ( vmxnet3 para red, pvscsi para almacenamiento, etc.) y los vincula a identificadores de hardware específicos. Al trasladar el disco a VPC, cambia el hardware:
- Red: VMware vmxnet3 → Adaptador de red de E/S virtual ( VirtIO )
- Almacenamiento (arranque): VMware PVSCSI → VirtIO Adaptador SCSI
- Almacenamiento (datos): VMware PVSCSI → VirtIO adaptador de bloque
Si Windows arranca y encuentra diferentes IDs de hardware para su controlador de almacenamiento de arranque, falla el arranque (pantalla azul INACCESSIBLE_BOOT_DEVICE).
Solución A: Método Sysprep
La utilidad de Microsoft sysprep "generaliza" una instalación de Windows, restableciéndola a un estado de primer arranque. Esto:
- Libera los enlaces de los controladores
- Restablece el identificador de seguridad de Windows (SID)
- Elimina la información específica del ordenador
- Prepara la imagen para su redistribución
Complete el siguiente proceso para sysprep:
-
Instale los controladores VirtIO en su máquina virtual Windows mientras sigue alojada en VMware:
- Descarga la imagen ISO de virtio-win desde una instancia de servidor virtual RHEL (
/usr/share/virtio-win). - Monte ISO, ejecute
virtio-win-gt-x64.exe, yvirtio-win-guest-tools.exe. - Instale los controladores tanto para el sistema operativo como para la partición de recuperación.
- Descarga la imagen ISO de virtio-win desde una instancia de servidor virtual RHEL (
-
Ejecute sysprep:
C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown -
Exporte y migre utilizando cualquiera de los métodos de migración, excepto VDDK Direct Extraction, que es sólo para vCenter.
-
Primer arranque en VPC:
- Windows ejecuta el miniasistente de configuración (OOBE)
- Detecta nuevo hardware, carga los controladores VirtIO
- Podría ser necesario volver a introducir la clave del producto
- Podría ser necesario volver a unirse al dominio
Ventajas:
- Proceso Microsoft bien documentado
- Funciona de forma fiable en instalaciones Windows
Desventajas:
- Restablece la identidad de la máquina (problemático para servidores unidos a un dominio)
- Podría provocar la reactivación de Windows
- Problemas específicos de la aplicación (algunas aplicaciones no gestionan bien sysprep)
- Requiere completar OOBE en el primer arranque
Decisión de diseño: Utilice sysprep para implementaciones basadas en plantillas o cuando migre a máquinas virtuales de desarrollo o de prueba en las que el restablecimiento de identidades sea aceptable. Evitar para servidores de producción unidos por dominios con dependencias de aplicaciones complejas.
Solución B: Inyección del controlador « virt-v2v »
La herramienta libguestfs virt-v2v puede inyectar controladores VirtIO en una instalación de Windows sin ejecutar sysprep. Sí:
- Monta el sistema de archivos de Windows (sin arrancar Windows)
- Inyecta controladores VirtIO en el almacén de controladores
- Modifica el registro para forzar a Windows a cargar estos controladores
- Conserva la identidad de la máquina, la pertenencia a un dominio y el estado de la aplicación
Requisitos previos:
- La máquina virtual debe apagarse de forma limpia (no colapsada, no forzada)
- Debe ser compatible con la versión de Windows (Server 2008 R2 a 2025, Windows 7 a 11)
- Paquete de controladores Virtio-win (disponible en sistemas RHEL:
/usr/share/virtio-win)
A continuación se describe el proceso de inyección de controladores de virt-v2v:
-
Instale los controladores VirtIO en las particiones de arranque y recuperación de Windows (igual que el método sysprep)
-
Apagar limpiamente la máquina virtual Windows
-
Exporta o transfiere el disco a una instancia de servidor virtual de trabajo utilizando cualquiera de los métodos de migración.
-
Ejecutar virt-v2v:
virt-v2v -i disk windows-vm.img -o disk -os /target --block-driver virtio-scsiParámetros:
-i disk: La entrada es un archivo de imagen de disco-o disk -os /target: Salida al directorio--block-driver virtio-scsi: Utilizar controlador SCSI para el primer disco (necesario para volúmenes de arranque VPC)
-
Si se escribe directamente en el dispositivo:
ln -fs /dev/vdb /target/windows-vm-sda virt-v2v -i disk windows-vm.img -o disk -os /target --block-driver virtio-scsi
Ventajas de virt-v2v:
- Preserva la identidad de la máquina (sin reactivación ni redominio)
- No hay asistente para el primer arranque
- Estado de la aplicación intacto
- Funciona en servidores de producción
Desventajas:
- Requiere una configuración híbrida RHEL/ Ubuntu
- Más complejo que sysprep
- Requiere un apagado limpio (no procesa máquinas virtuales estropeadas/apagadas a la fuerza)
Decisión de diseño: Utilice virt-v2v para los servidores Windows de producción en los que la preservación de la identidad es fundamental. Acepte la complejidad adicional de las herramientas como compensación por unas migraciones más limpias.
El reto de RHEL/ Ubuntu
Problema crítico: La opción « --block-driver virtio-scsi » es necesaria para las máquinas virtuales Windows en VPC (el disco de arranque utiliza E/S virtual ( VirtIO ) SCSI, no un bloque VirtIO ), pero:
- RHEL virt-v2v no admite
--block-driver virtio-scsi - Ubuntu virt-v2v admite
--block-driver virtio-scsi - RHEL libguestfs incluye controladores virtio-win en
/usr/share/virtio-win - Ubuntu libguestfs no incluye controladores virtio-win
Método alternativo
Existen dos soluciones para el problema de RHEL/ Ubuntu.
Opción 1: Construir libguestfs en Ubuntu
La primera opción es construir libguestfs en Ubuntu ejecutando el siguiente comando.
# On Ubuntu worker virtual server instance
apt-get install libguestfs-tools
# Copy virtio-win from a RHEL system
# On RHEL: tar czf virtio-win.tar.gz /usr/share/virtio-win
# Transfer to Ubuntu and extract:
tar xzf virtio-win.tar.gz -C /usr/share/
# Now virt-v2v on Ubuntu has both SCSI support and drivers
virt-v2v -i disk windows.img -o disk -os /target --block-driver virtio-scsi
Opción 2: Conversión en dos fases
La segunda opción es utilizar el siguiente comando para realizar una conversión en dos fases.
# On RHEL worker (has drivers, no SCSI support)
virt-v2v -i disk windows.img -o disk -os /tmp
# Transfer to Ubuntu worker
scp /tmp/windows-sda ubuntu-worker:/tmp/
# On Ubuntu worker (has SCSI support)
virt-v2v -i disk /tmp/windows-sda -o disk -os /target --block-driver virtio-scsi
Arquitectura del controlador de almacenamiento de Windows en VPC
Comprender cómo VPC presenta el almacenamiento a Windows ayuda a solucionar los problemas de arranque:
Primer volumen (disco de arranque):
- Presentado como VirtIO Dispositivo SCSI
- Requiere un controlador virtio-scsi
- Por eso es obligatorio
--block-driver virtio-scsi
Volúmenes posteriores (discos de datos):
- Presentados como dispositivos de bloque VirtIO
- Se necesita un controlador virtio-blk
- Controlador diferente del disco de arranque
Ambos controladores deben estar instalados en ambos:
- El sistema operativo en funcionamiento
- El entorno de recuperación ( WinRE )
Instalación de controladores en el entorno de recuperación
El Entorno de recuperación de Windows ( WinRE ) es un mini-entorno de Windows independiente que se utiliza para operaciones de recuperación. Si no dispone de controladores de E/S virtual ( VirtIO ), no podrás utilizarlo para la recuperación tras la migración.
Localización de WinRE:
reagentc /info
Esto podría informar de un volumen de recuperación, pero la imagen real WinRE podría estar en:
C:\Windows\System32\Recovery\winre.wim
Instalación de controladores en WinRE:
-
Montar virtio-win ISO
-
Identifique la ubicación de WinRE mediante
reagentc /info -
Si está en un volumen separado, móntalo temporalmente
-
Utilice DISM para inyectar controladores:
dism /mount-wim /wimfile:C:\Windows\System32\Recovery\winre.wim /index:1 /mountdir:C:\mount dism /image:C:\mount /add-driver /driver:E:\viostor\w10\amd64 /recurse dism /image:C:\mount /add-driver /driver:E:\netkvm\w10\amd64 /recurse dism /unmount-wim /mountdir:C:\mount /commit
Consideraciones sobre la partición GPT:
Si su disco Windows utiliza GPT (no MBR):
- Utilice
list volumeyselect volumeen lugar delist partition - La configuración de los ID de volumen es diferente:
- Volumen de datos:
set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 - Volumen del sistema:
set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
- Volumen de datos:
Versiones de Windows compatibles
Red Hat el paquete virtio-win proporciona controladores para:
Windows Server:
- 2008 R2
- 2012, 2012 R2
- 2016, 2019, 2022, 2025
Cliente Windows:
- 7
- 8, 8.1
- 10
- 11
Las versiones anteriores (Server 2003, 2008 non-R2, Vista) no son compatibles.
La siguiente tabla es la matriz de decisiones de diseño para Windows
| Escenario | Enfoque recomendado |
|---|---|
| Máquinas virtuales de desarrollo/prueba | Sysprep (simple, restablecimiento de identidad aceptable) |
| Servidores autónomos de producción | virt-v2v (preserva la identidad) |
| Servidores de producción unidos por dominios | virt-v2v (evita la reincorporación al dominio) |
| Implantaciones basadas en plantillas | Sysprep (apropiado para plantillas) |
| Servidores con licencias vinculadas al ID de hardware | virt-v2v + revisión cuidadosa de la licencia |
| Windows antiguo (2003, 2008 non-R2 ) | No se admite la migración |