Windows Server 2019 a 2022 se detiene al 87% (MigHost, 0xc0000409): diagnóstico y solución paso a paso

¿La actualización in‑place de Windows Server 2019 a 2022 se detiene al 87% con “Parent process unexpectedly exited” y el evento 0xc0000409? En esta guía práctica encontrarás el porqué, cómo confirmarlo en los logs y un plan de corrección paso a paso para completar la migración sin pérdida de servicios ni datos.

Índice

Contexto y síntomas

En actualizaciones in‑place (2019 Standard → 2022 Standard) es relativamente común que el progreso aparente se “congele” cerca del 87%. Cuando se revisan los logs en C:\$WINDOWS.~BT\Sources\Panther\MIG se observa la traza Parent process unexpectedly exited. En el Visor de eventos, normalmente aparece una excepción 0xc0000409 (posible stack buffer overrun). En paralelo, MigHost suele estar procesando perfiles de usuario, claves de registro o datos de aplicaciones.

Qué está sucediendo técnicamente

El motor de migración (MIG) de Windows, que transfiere configuraciones, perfiles y componentes durante la actualización, falla de manera abrupta. Ese fallo provoca que el proceso padre (SetupHost/MigHost) termine inesperadamente y el asistente de actualización se cierre sin completar.

Causas más probables

  • Corrupción de sistema (por ejemplo, ntdll.dll), errores de memoria o disco.
  • Drivers/servicios de terceros (AV/EDR, backup, DLP, cifrado, filtros de archivo/almacenamiento) incompatibles con Windows Server 2022.
  • Perfil de usuario corrupto (hive HKCU o UsrClass.dat) desde el que se lanza la actualización.
  • Requisitos previos incumplidos: poco espacio en C: o en la partición del sistema (System Reserved/EFI), firmware/BIOS desactualizado.

Mapa rápido de diagnóstico

IndicioCómo verloAcción inmediata
0xc0000409 en VisorAplicación/Instalación → errores de SetupHost/MigHostEjecutar SFC/DISM, revisar memoria/disco
“Parent process unexpectedly exited” en MIGPanther\MIG\*.logArranque limpio y deshabilitar filtros de terceros
Eventos de drivers de filtrofltmc filters, System logDesinstalar/pausar AV/EDR/backup/DLP
Falta de espacioGet-Volume, ExploradorLiberar/expandir C: y System Reserved/EFI
Perfil en uso con erroresErrores HKCU/UsrClass.datCrear admin local nuevo y relanzar

Plan de acción priorizado (de menor a mayor intrusión)

Preparación y compatibilidad

  • Actualiza Windows Server 2019 al último Servicing Stack Update (SSU) y Cumulative Update (CU).
  • Actualiza BIOS/firmware y drivers críticos (almacenamiento, chipset, red, controladoras HBA/RAID).
  • Valida compatibilidad de aplicaciones/servicios con 2022. Atención especial a agentes de seguridad, backup, DLP, cifrado o filtrado de disco.
  • Asegura espacio libre: mínimo 20–30 GB en C: y suficiente espacio en la partición System Reserved/EFI (ideal ≥500 MB).

Arranque limpio y reducción de “superficies de conflicto”

  • Suspende BitLocker (si aplica) y desconecta periféricos USB no esenciales.
  • Desinstala o deshabilita temporalmente AV/EDR, agentes de backup, DLP, software de cifrado y cualquier filtro de sistema de archivos/almacenamiento.
  • Configura un clean boot (solo servicios Microsoft) con msconfig.
  • Crea un usuario local nuevo con rol Administrador, inicia sesión con ese perfil y lanza el setup.exe desde ahí (evita un HKCU dañado).

Salud del sistema y del disco

Ejecuta en esta secuencia (consola elevada):

mdsched.exe
sfc /scannow
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
chkdsk C: /f

Programa chkdsk en reinicio si fuese necesario y repite la actualización solo cuando no haya errores.

Limpieza de cachés de instalación

Tras fallos previos, borra cachés y reinicia:

net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver
rd /s /q C:\Windows\SoftwareDistribution
rd /s /q C:\Windows\System32\catroot2
rd /s /q C:\$WINDOWS.~BT
net start msiserver
net start cryptsvc
net start bits
net start wuauserv

Identificación de filtros y drivers de terceros

Los minifiltros de archivos incompatibles son culpables frecuentes. Lista los filtros activos:

fltmc filters

En la salida verás filtros nativos (por ejemplo, Wof, FileInfo, Luafv). Si detectas filtros de seguridad/backup/DLP cifrado, deshabilítalos o desinstala temporalmente el software.

Para revisar drivers instalados y su proveedor/versión:

pnputil /enum-drivers
driverquery /v /fo table > C:\Temp\drivers.txt
sc.exe query type= driver state= all > C:\Temp\drv_services.txt

Análisis específico del fallo de migración

Usa SetupDiag para obtener una causa canónica y correlacionarla con los logs de Panther:

SetupDiag.exe /Output:"C:\Temp\SetupDiagResults.log" /LogPath:"C:\$WINDOWS.~BT\Sources\Panther"

Busca firmas relacionadas con finalización de SetupHost/MigHost, errores del tipo 0xC1900101 o el 0xc0000409. En los logs MIG, identifica el plugin y ruta que se estaban procesando antes del crash (p. ej., datos de una aplicación concreta). Si un plugin apunta a una app específica, desinstala temporalmente esa app y reintenta.

Reintento controlado de la actualización

  • Ejecuta el instalador desde ISO local copiada a disco (no por red).
  • Opcionalmente, bloquea la descarga de drivers durante el proceso si sospechas que uno recién traído rompe la actualización: setup.exe /DynamicUpdate disable
  • Conserva aplicaciones y datos. Registra la hora del reinicio para correlacionar cualquier nueva traza.

Alternativa de bajo riesgo: migración paralela

Si tras dos intentos con mitigaciones falla en el mismo punto, tu mejor opción operativa puede ser un side‑by‑side: instala Windows Server 2022 desde cero en un host/VM paralela, migra roles/datos y realiza cutover planificado. Minimiza el downtime y evita arrastrar problemas del sistema origen.

Cómo verificar y ampliar la partición System Reserved/EFI

Una partición System Reserved (BIOS/MBR) o EFI (UEFI/GPT) pequeña o llena puede interrumpir la preparación de arranque durante la actualización. Apunta a ≥500 MB libres.

Comprobación rápida con PowerShell

Get-Partition | Sort-Object DiskNumber, PartitionNumber | Format-Table DiskNumber, PartitionNumber, DriveLetter, Size, Type
Get-Volume | Format-Table DriveLetter, FileSystemLabel, FileSystem, Size, SizeRemaining

En sistemas UEFI puedes montar la partición EFI para verificar su ocupación:

mountvol S: /S

Si está al límite, limpia logs antiguos de arranque o, mejor, amplíala desde entorno seguro (WinPE/hipervisor) tras un respaldo verificado. En MBR suele implicar mover encogiendo el inicio de C:; en GPT, ampliar la EFI si hay espacio contiguo. Siempre realiza copia/snapshot antes.

Revisión de eventos y ejemplos de log

Visor de eventos

  • Aplicación: errores de SetupHost.exe, MigHost.exe, MoSetup.
  • Instalación y Configuración: resultados de componentes de actualización.
  • Sistema: cargas de drivers, fallos de servicio, minifiltros.

Patrones típicos

// Panther\MIG\setupact.log (ejemplo)
[Info] MigHost: Starting profile migration for SID S-1-5-21-...
[Info] Plugin <AppSettings> processing path: C:\ProgramData\Vendor\...
[Error] Parent process unexpectedly exited

// Visor de eventos - Aplicación
Faulting application name: SetupHost.exe
Exception code: 0xc0000409
Faulting module name: ntdll.dll 

Comandos útiles (lista rápida)

mdsched.exe
sfc /scannow
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
chkdsk /f
fltmc filters
pnputil /enum-drivers
driverquery /v /fo table
SetupDiag.exe /Output:"C:\Temp\SetupDiagResults.log" /LogPath:"C:\$WINDOWS.~BT\Sources\Panther"

Crear un perfil limpio para lanzar la actualización

Evita que un HKCU dañado intervenga en MIG. Desde una consola elevada:

net user UpgradeAdmin Un@Contr4seña! /add
net localgroup Administrators UpgradeAdmin /add

Cierra sesión con el usuario habitual, inicia con UpgradeAdmin y ejecuta setup.exe desde la ISO local.

Qué hacer con Microsoft Visual C++ Redistributable

En general, no bloquean la actualización: son bibliotecas de usuario. Rara vez son la causa directa de un crash de MIG. La excepción es que la app que los usa instale drivers/servicios (hooks, filtros) incompatibles; si SetupDiag/MIG apunta a esa app, desinstálala temporalmente y vuelve a intentar.

Checklist práctico para completar la migración

  • ✔️ Respaldo/snapshot verificado del servidor y BCD/estado del sistema.
  • ✔️ Windows 2019 en último SSU/CU; BIOS/firmware y drivers de almacenamiento/red al día.
  • ✔️ ≥30 GB libres en C:; System Reserved/EFI ≥500 MB.
  • ✔️ Clean boot (solo servicios Microsoft); AV/EDR/backup/DLP desinstalados o deshabilitados.
  • ✔️ Nuevo admin local para ejecutar la actualización.
  • ✔️ SFC/DISM sin errores; chkdsk limpio; memoria validada con mdsched.
  • ✔️ Cachés de instalación (SoftwareDistribution, catroot2, $WINDOWS.~BT) limpias.
  • ✔️ fltmc sin minifiltros de terceros activos.
  • ✔️ SetupDiag revisado; sin firmas de bloqueo pendientes.
  • ✔️ Reintento desde ISO local, opcional /DynamicUpdate disable.
  • ✔️ Si persiste el 87%: plan de migración paralela (side‑by‑side).

Árbol de decisión rápido

  • ¿Hay 0xc0000409 y “Parent process unexpectedly exited”? Sí → Probable crash MIG.
  • ¿Tienes filtros de terceros? Sí → Deshabilita/desinstala y reintenta.
  • ¿Integridad del sistema limpia (SFC/DISM/CHKDSK)? No → Repara hasta que quede OK.
  • ¿Espacio suficiente en C: y System Reserved/EFI? No → Libera/expande primero.
  • ¿Sigue fallando con admin local nuevo? Sí → Inspecta logs MIG por app/clave concreta y retira esa app.
  • ¿Falla en el mismo punto tras dos intentos? Sí → Side‑by‑side a 2022.

Buenas prácticas para minimizar el riesgo

  • Preferir drivers “in‑box” durante la actualización; agregar drivers de fabricante después.
  • Usar ISO verificada (hash) copiada al disco local; no montar desde recursos compartidos inestables.
  • Desactivar tareas programadas de software de terceros que inyecten DLL/servicios en segundo plano.
  • Si es VM, confirmar herramientas de hipervisor compatibles (VM tools, agentes) o actualizarlas después.
  • Evitar Safe Mode para la actualización; usa clean boot normal.

Ejemplos ampliados de comandos y automatización

Inventario de minifiltros y drivers (PowerShell)

# Minifiltros
fltmc filters > C:\Temp\minifiltros.txt

Drivers instalados (con proveedor y fecha)

pnputil /enum-drivers > C:\Temp\drivers\_pnp.txt
driverquery /v /fo csv > C:\Temp\drivers\_detalle.csv

Servicios de tipo driver

sc.exe query type= driver state= all > C:\Temp\servicios\_driver.txt 

Comprobar tamaño y uso de la partición EFI

mountvol S: /S
dir S:\ /a

Lanzar Setup con Dynamic Update deshabilitado

D:\setup.exe /DynamicUpdate disable

Preguntas frecuentes

¿Puedo ejecutar la actualización desde una sesión RDP? Es posible, pero si hay políticas o software que inyecten componentes en sesiones remotas, eleva riesgos. Preferible consola directa o KVM/ILO.

¿Puedo dejar instalado el antivirus/EDR? No es recomendable. Aunque “compatible”, sus minifiltros pueden interferir con MIG. Deshabilita o desinstala temporalmente siguiendo la guía del fabricante.

¿Qué logs debo adjuntar si escalo el caso? Carpeta Panther completa (setupact.log, setuperr.log, subcarpeta MIG), resultados de SetupDiag y eventos de Aplicación/Sistema alrededor del minuto del 87%.

Conclusiones

El combo de “Parent process unexpectedly exited” + 0xc0000409 encaja con un crash del motor de migración provocado por corrupción, problemas de memoria/disco o, muy frecuentemente, por drivers/servicios de terceros. Aplicar el plan anterior —clean boot, retirada temporal de filtros, verificación de integridad, perfil limpio y reintento desde ISO— resuelve la mayoría de casos. Si no, la migración paralela a 2022 reduce el tiempo de indisponibilidad y te permite avanzar sin arrastrar inconsistencias del host origen.


Apéndice: plantilla de análisis para tus notas

PasoResultadoEvidencia/LogAcción siguiente
SFC/DISMOK / CorrupciónCBS.log, salida DISMReparar hasta OK
MinifiltrosSolo MS / Tercerosfltmc filtersDesinstalar/pausar
Espacio C:/EFI>=30GB / <30GBGet-Volume, mountvolLiberar/expandir
PerfilNuevo / AntiguoRegistro HKCUUsar admin local nuevo
SetupDiagFirma halladaSetupDiagResults.logMitigar señalada

Nota operativa: evita reintentos idénticos sin cambios. Cada intento fallido consume tiempo, fragmenta logs y complica el análisis. Cambia una variable (filtros, perfil, caché, Dynamic Update, espacio) y documenta.

Índice