Share via


La VM Windows no puede arrancar debido al Administrador de arranque de Windows

Este artículo proporciona pasos para resolver problemas en los que el Administrador de arranque de Windows impide el arranque de una máquina virtual (VM) de Azure.

Síntoma

La máquina virtual se queda atascada a la espera de una petición del usuario y no arranca a menos que se le indique manualmente.

Cuando utilice Diagnóstico de arranque para ver la captura de pantalla de la VM, verá que la captura muestra el Administrador de arranque de Windows con el mensaje Elija un sistema operativo para iniciar, o pulse TAB para seleccionar una herramienta:.

                             La pantalla del Gestor de arranque de Windows indica Elija un sistema operativo para iniciar, o pulse TAB para seleccionar una herramienta.                                     

Causa

El error se debe a un indicador BCD displaybootmenu en el Administrador de arranque de Windows. Cuando el indicador está activado, el Administrador de arranque de Windows solicita al usuario, durante el proceso de arranque, que seleccione el cargador que desea ejecutar, lo que provoca un retraso en el arranque. En Azure, esta función puede aumentar el tiempo que se tarda en arrancar una máquina virtual.

Solución

Sugerencia

Si tiene una copia de seguridad reciente de la VM, puede intentar restaurar la VM desde la copia de seguridad para corregir el problema de arranque.

Resumen del proceso:

  1. Configure para un tiempo de arranque más rápido usando la consola serie.
  2. Crear y acceder a una máquina virtual de reparación.
  3. Configuración para un tiempo de arranque más rápido en una máquina virtual de reparación.
  4. Recomendado: Antes de reconstruir la VM, habilite la consola serie y la recopilación de volcados de memoria.
  5. Reconstruir la máquina virtual.

Configuración de un tiempo de arranque más rápido mediante la consola serie

Si tienes acceso a la consola serie, hay dos formas de conseguir tiempos de arranque más rápidos. Disminuya el tiempo de espera de displaybootmenu o elimine el indicador.

  1. Siga las instrucciones para acceder a Azure Serial Console for Windows y acceder a la consola basada en texto.

    Nota:

    Si no puede acceder a la consola serie, pase a Crear y acceder a una VM de reparación.

  2. Opción A: Reducir el tiempo de espera

    a. El tiempo de espera está fijado por defecto en 30 segundos, pero puede cambiarse a un tiempo más rápido (por ejemplo, 5 segundos).

    b. Utilice el siguiente comando en la consola serie para ajustar el valor del tiempo de espera:

    bcdedit /set {bootmgr} timeout 5

  3. Opción B: Eliminar el indicador BCD

    a. Para evitar que aparezca el menú de arranque, introduzca el siguiente comando:

    bcdedit /deletevalue {bootmgr} displaybootmenu

    Nota:

    Si no pudo utilizar la consola serie para configurar un tiempo de arranque más rápido en los pasos anteriores, puede continuar con los siguientes pasos. Ahora tendrás que solucionar este problema en modo sin conexión.

Crear y acceder a una máquina virtual de reparación

  1. Utilice los pasos 1-3 de los Comandos de Reparación de VM para preparar una VM de Reparación.
  2. Utilice la Conexión a Escritorio Remoto para conectarse a la máquina virtual de reparación.

Configuración para un tiempo de arranque más rápido en una máquina virtual de reparación

  1. Abra un símbolo del sistema con privilegios elevados.

  2. Introduzca lo siguiente para activar DisplayBootMenu:

    Utilice este comando para máquinas virtuales de Generación 1:

    bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /set {bootmgr} displaybootmenu yes

    Utilice este comando para máquinas virtuales de Generación 2:

    bcdedit /store <VOLUME LETTER OF EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /set {bootmgr} displaybootmenu yes

    Sustituye cualquier símbolo mayor que o menor que, así como el texto que contienen, por ejemplo, "< texto aquí >".

  3. Cambia el valor del tiempo de espera a 5 segundos:

    Utilice este comando para máquinas virtuales de Generación 1:

    bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /set {bootmgr} timeout 5

    Utilice este comando para máquinas virtuales de Generación 2:

    bcdedit /store <VOLUME LETTER OF EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /set {bootmgr} timeout 5

    Sustituye cualquier símbolo mayor que o menor que, así como el texto que contienen, por ejemplo, "< texto aquí >".

Para habilitar la recopilación de volcado de memoria y Consola serie, ejecute el siguiente script.

  1. Abra una sesión de símbolo del sistema con privilegios elevados (Ejecutar como administrador).

  2. Ejecute los comandos siguientes:

    Uso de Consola serie

    bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON

    bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200

    Sustituye cualquier símbolo mayor que o menor que, así como el texto que contienen, por ejemplo, "< texto aquí >".

  3. Compruebe que el espacio libre en el disco del sistema operativo es igual al tamaño de la memoria (RAM) de la máquina virtual.

    Si no hay suficiente espacio en el disco del sistema operativo, debe cambiar la ubicación donde se creará el archivo de volcado de memoria y remitirlo a cualquier disco de datos conectado a la máquina virtual que tenga suficiente espacio libre. Para cambiar la ubicación, sustituya "%SystemRoot%" por la letra de la unidad (por ejemplo, "F:") del disco de datos en los siguientes comandos.

Configuración sugerida para activar el volcado del SO

Cargar el disco de SO roto:

REG LOAD HKLM\BROKENSYSTEM <VOLUME LETTER OF BROKEN OS DISK>:\windows\system32\config\SYSTEM

Habilitar en ControlSet001:

REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f

REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f

REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f

Habilitar en ControlSet002:

REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f

REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f

REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f

Descargar disco de SO roto:

REG UNLOAD HKLM\BROKENSYSTEM

Reconstruir la máquina virtual original

Utilice el paso 5 de los comandos de reparación de máquinas virtuales para volver a montar la máquina virtual.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.