Поделиться через


Не удается загрузить виртуальную машину Windows из-за диспетчера загрузки Windows

Область применения: ✔️ Виртуальные машины Windows

В этой статье приведены действия по устранению проблем, при которых диспетчер загрузки Windows предотвращает загрузку виртуальной машины Azure.

Симптом

Виртуальная машина зависает в ожидании запроса пользователя и не загружается, если не указано вручную.

При использовании диагностика загрузки для просмотра снимка экрана виртуальной машины вы увидите, что на снимках экрана отображается диспетчер загрузки Windows с сообщением "Выбор операционной системы для запуска" или нажмите клавишу TAB, чтобы выбрать средство:.

На экране диспетчера загрузки Windows отображается состояние

Причина

Ошибка возникает из-за флага BCD displaybootmenu в диспетчере загрузки Windows. Если флаг включен, диспетчер загрузки Windows предложит пользователю во время загрузки выбрать загрузчик, который он хочет запустить, что приводит к задержке загрузки. В Azure эта функция может увеличить время загрузки ВМ.

Решение

Совет

Если у вас есть последняя резервная копия виртуальной машины, попробуйте восстановить виртуальную машину из резервной копии , чтобы устранить проблему загрузки.

Общие сведения о процессе.

  1. Настройте для ускорения загрузки с помощью последовательной консоли.
  2. Создайте виртуальную машину восстановления и получите к ней доступ.
  3. Настройте для ускорения загрузки на виртуальной машине восстановления.
  4. Рекомендуется. Прежде чем перестроить виртуальную машину, включите последовательную консоль и коллекцию дампов памяти.
  5. Перестройте виртуальную машину.

Настройка для ускорения загрузки с помощью последовательной консоли

Если у вас есть доступ к последовательной консоли, существует два способа ускорить загрузку. Уменьшите время ожидания displaybootmenu или удалите флаг полностью.

  1. Следуйте указаниям по доступу к последовательной консоли Azure для Windows , чтобы получить доступ к текстовой консоли.

    Примечание.

    Если вы не можете получить доступ к последовательной консоли, перейдите к созданию и доступу к виртуальной машине восстановления.

  2. Вариант A. Сокращение времени ожидания

    a. Время ожидания устанавливается в 30 секунд по умолчанию, но может быть изменено на более быстрое время (например, 5 секунд).

    b. Чтобы настроить значение времени ожидания, используйте следующую команду в последовательной консоли:

    bcdedit /set {bootmgr} timeout 5

  3. Вариант B. Удаление флага BCD

    a. Чтобы предотвратить отображение командной строки меню загрузки, введите следующую команду:

    bcdedit /deletevalue {bootmgr} displaybootmenu

    Примечание.

    Если вы не смогли использовать последовательную консоль для настройки более быстрого времени загрузки в описанных выше шагах, можно продолжить следующие действия. Теперь вы будете устранять неполадки в автономном режиме, чтобы устранить эту проблему.

Создание виртуальной машины для восстановления и вход на нее

  1. Выполните шаги 1–3 списка команд для восстановления виртуальной машины, чтобы подготовить виртуальную машину для восстановления.
  2. Подключение к удаленному рабочему столу используйте подключение к виртуальной машине восстановления.

Настройка для ускорения загрузки на виртуальной машине восстановления

  1. Откройте командную строку с повышенными привилегиями.

  2. Введите следующее, чтобы включить DisplayBootMenu:

    Используйте эту команду для виртуальных машин поколения 1:

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

    Используйте эту команду для виртуальных машин поколения 2:

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

    Замените любое больше или меньше символов, а также текст внутри них, например "< текст здесь >".

  3. Измените значение времени ожидания на 5 секунд:

    Используйте эту команду для виртуальных машин поколения 1:

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

    Используйте эту команду для виртуальных машин поколения 2:

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

    Замените любое больше или меньше символов, а также текст внутри них, например "< текст здесь >".

Чтобы включить сбор дампа памяти и последовательную консоль, выполните следующие действия.

  1. Откройте сеанс командной строки с повышенными привилегиями от имени администратора.

  2. Выполните следующие команды BCDEdit с помощью параметров /ems и /emssettings :

    Включите последовательную консоль:

    bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /ems {<boot-loader-identifier>} ON
    bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
    
  3. Убедитесь, что размер свободного места на диске ОС превышает объем памяти (ОЗУ) этой виртуальной машины.

    Если на диске ОС недостаточно места, измените расположение, в котором создается файл дампа памяти, и обратитесь к нему на любой диск данных, подключенный к виртуальной машине с достаточным объемом свободного места. Чтобы изменить расположение, замените %SystemRoot% букву диска данных, например F:в следующих командах.

    Чтобы включить файл дампа ОС, выполните следующие команды загрузки, добавьте и выгрузите команды для реализации предлагаемой конфигурации с помощью средства reg :

    Загрузите hive реестра с сломанного диска ОС:

    reg load HKLM\<broken-system> <volume-letter-of-broken-os-disk>:\windows\system32\config\SYSTEM
    

    Включите сбор для ControlSet001.

    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    

    Включите сбор для ControlSet002.

    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    

    Выгрузите сломанный диск ОС:

    reg unload HKLM\<broken-system>
    

Перестроение исходной виртуальной машины

Чтобы заново собрать виртуальную машину, выполните шаг 5 из списка команд для восстановления ВМ.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.