Cómo restaurar una instancia Windows Server 2019 que no arranca en OpenStack 17.1

Perder winload.exe de forma accidental suele traducirse en pánico inmediato: la pantalla negra con el mensaje “No se pudo encontrar un dispositivo de arranque” detiene toda la plataforma hasta nuevo aviso. Afortunadamente, si tu infraestructura corre sobre Red Hat OpenStack Platform 17.1 dispones de la imagen de rescate, una navaja suiza que te permite entrar por la puerta trasera del sistema y devolverle la vida casi sin tiempo muerto.

Índice

Contexto del problema

En una nube OpenStack con instancias Windows Server 2019, la eliminación de %SystemRoot%\System32\winload.exe —ya sea por un script de limpieza, un antivirus mal configurado o un descuido— impide que el cargador de arranque localice el núcleo del sistema operativo. Como la plataforma no ofrece arranque desde ISO ni la opción de desacoplar el disco raíz a otra VM, la única vía es iniciar en “rescue mode”. En este modo:

  • La imagen de rescate (basada en WinPE) se monta como unidad C:.
  • El disco original de la instancia aparece como unidad D:.

Desde ahí será posible copiar el binario perdido, reparar el BCD y reconstruir el MBR/sector de arranque.

Cómo funciona el arranque de Windows Server 2019

Antes de tocar nada conviene recordar la cadena de arranque:

  1. El firmware (BIOS o UEFI) localiza la Partition Boot Record (PBR) del disco de sistema.
  2. La PBR invoca al Boot Manager (\bootmgr o \EFI\Microsoft\Boot\bootmgfw.efi).
  3. El Boot Manager lee la Base de Datos de Configuración de Arranque (BCD) y carga winload.exe.
  4. winload.exe enciende el kernel (ntoskrnl.exe) y pasa el control al sistema.

Si falta winload.exe, la cadena se rompe en el paso 3. El resto de archivos permanecen intactos, por lo que basta con reponer ese componente y asegurarse de que el BCD apunta correctamente.

Preparativos antes de la intervención

  • Crea un snapshot del volumen raíz desde Horizon o mediante openstack volume snapshot create. Jamás subestimes un backup.
  • Anota si tu VM usa MBR o GPT; lo verás con diskpart > list disk (columna “Gpt”). Algunas órdenes varían según el esquema.
  • Si hay varias particiones (por ejemplo, System Reserved y OS), identifica la letra que Windows PE les asigna. Un wmic logicaldisk get name,volumename eliminará dudas.

Procedimiento paso a paso

Montar y comprobar discos

diskpart
list volume
exit

Confirma que C: corresponde a la imagen de rescate (WinPE) y D: al disco original. Explora D:\Windows para asegurarte de que los datos del sistema siguen allí.

Restituir archivos críticos

copy C:\Windows\System32\winload.exe D:\Windows\System32\winload.exe /y
copy C:\Windows\System32\winresume.exe D:\Windows\System32\winresume.exe /y

Usamos la copia “sana” incluida en WinPE. Si estás en UEFI, sustituye igualmente winload.efi y winresume.efi.

Revisar y reparar el BCD

bcdedit /store D:\Boot\BCD

Revisa la sección Windows Boot Loader; el valor path debe ser \Windows\system32\winload.exe. Si está mal o el BCD está dañado:

bootrec /rebuildbcd

El comando busca instalaciones de Windows y permite agregarlas de nuevo al BCD. Acepta con “S”.

Reparar MBR y sector de arranque

bootrec /fixmbr
bootrec /fixboot

En discos GPT con UEFI suele bastar con bootrec /fixboot, ya que el MBR cumple un rol mínimo. Para MBR puro (legacy BIOS) ejecuta ambos.

Comprobar el sistema de archivos

chkdsk D: /f /r

La opción /r examina los sectores defectuosos, mientras que /f corrige errores lógicos. La fase puede tardar varios minutos según el tamaño del disco.

Desmontar la imagen de rescate y reiniciar

  1. Desde Horizon o la CLI marca la instancia como unrescue.
  2. Arráncala normalmente. Si todo salió bien, verás la pantalla de inicio de sesión de Windows Server 2019.

Tabla resumen de comandos

ComandoPropósito
copy winload.exeReponer el cargador de arranque
bcdedit /store ...Inspeccionar la configuración BCD
bootrec /rebuildbcdRegenerar entradas BCD
bootrec /fixmbrReescribir el MBR (BIOS/MBR)
bootrec /fixbootRecrear sector de arranque
chkdsk /f /rReparar sistema de archivos y sectores

Verificación post‑recuperación

  • Visor de eventos ➜ Sistema: busca errores de “Kernel‑Boot” o “Disk”.
  • sfc /scannow y DISM /RestoreHealth sobre el sistema en vivo para validar la integridad de todos los binarios.
  • Actualiza de inmediato el antivirus que causó la supresión (si procediese) y pon winload.exe en la lista de exclusiones.

Automatización con PowerShell (opcional)

Para nubes con decenas de instancias es práctico orquestar la recuperación con Ansible o Terraform disparando un script PowerShell dentro de WinPE:

# Rebuild-Winload.ps1
$source = "C:\Windows\System32\winload.exe"
$dest   = "D:\Windows\System32\winload.exe"
Copy-Item $source $dest -Force
bootrec /rebuildbcd
bootrec /fixboot
exit 0

Basta con adjuntar el script en la metadata de la instancia y usar la interfaz de rescue para ejecutarlo de forma desatendida.

Buenas prácticas para prevenir el problema

  1. Mantén una imagen de rescate actualizada con los binarios de la misma build que tus servidores.
  2. Documenta cada paso de rescate en tu wiki o GPT interno para que el conocimiento no dependa de una sola persona.
  3. Supervisa tus antivirus y herramientas EDR; configura reglas que impidan eliminar archivos del sistema.
  4. Aplica CU y LCU (Latest Cumulative Updates) para Windows Server con regularidad: muchas actualizaciones corrigen fallos de arranque.
  5. Automatiza snapshots antes de cada cambio —parches, nuevos agentes, etc.— y establece un ciclo de retención acorde al SLA.

Preguntas frecuentes

¿Puedo usar un ISO de instalación en lugar de la imagen de rescate?

No en OpenStack 17.1 si el proyecto no ha activado config‑drive con ISO boot. La imagen de rescate es la vía soportada.

¿Funcionan los mismos comandos en Windows Server 2022?

Sí, el flujo es idéntico. Solo asegúrate de que la versión de WinPE coincida con la build del OS.

¿Qué pasa si el BCD está en una partición oculta sin letra?

Asígnele una letra temporal en diskpart (select volume Xassign letter=Z) y ejecute los comandos apuntando a Z:.

Conclusión

Restaurar una instancia de Windows Server que no arranca en OpenStack puede parecer un laberinto, pero con una imagen de rescate bien preparada y un puñado de comandos la solución está a unos pocos minutos de trabajo. Copiar winload.exe, arreglar el BCD y revisar el disco bastan para devolver el servicio a producción y evitar reinstalaciones innecesarias. Añade snapshots automáticos y controles de antivirus para blindar tu plataforma ante futuras sorpresas.

Índice