Udostępnij za pośrednictwem


Nie można uruchomić maszyny wirtualnej z systemem Windows z powodu Menedżera rozruchu systemu Windows

Dotyczy: ✔️ maszyny wirtualne z systemem Windows

Ten artykuł zawiera kroki rozwiązywania problemów, w których Menedżer rozruchu systemu Windows uniemożliwia rozruch maszyny wirtualnej platformy Azure.

Objaw

Maszyna wirtualna czeka na monit użytkownika i nie uruchamia się, chyba że zostanie ręcznie poinstruowana.

Gdy używasz diagnostyki rozruchu do wyświetlenia zrzutu ekranu maszyny wirtualnej, zobaczysz, że zrzut ekranu przedstawia Menedżera rozruchu systemu Windows z komunikatem Wybierz system operacyjny do uruchomienia lub naciśnij TAB, aby wybrać narzędzie:.

Na ekranie Menedżer rozruchu systemu Windows jest wyświetlany stan Wybierz system operacyjny do uruchomienia lub naciśnij TAB, aby wybrać narzędzie.

Przyczyna

Błąd jest spowodowany flagą BCD displaybootmenu w Menedżerze rozruchu systemu Windows. Po włączeniu flagi menedżer rozruchu systemu Windows monituje użytkownika podczas procesu rozruchu, aby wybrać moduł ładujący, który ma zostać uruchomiony, powodując opóźnienie rozruchu. Na platformie Azure ta funkcja może zwiększyć czas potrzebny do rozruchu maszyny wirtualnej.

Rozwiązanie

Napiwek

Jeśli masz najnowszą kopię zapasową maszyny wirtualnej, możesz spróbować przywrócić maszynę wirtualną z kopii zapasowej , aby rozwiązać problem z rozruchem.

Omówienie procesu:

  1. Skonfiguruj pod kątem szybszego czasu rozruchu przy użyciu konsoli szeregowej.
  2. Tworzenie maszyny wirtualnej naprawy i uzyskiwanie do jej dostępu.
  3. Skonfiguruj pod kątem szybszego czasu rozruchu na maszynie wirtualnej naprawy.
  4. Zalecane: Przed odbudową maszyny wirtualnej włącz zbieranie zrzutów pamięci i konsoli szeregowej.
  5. Ponownie skompiluj maszynę wirtualną.

Konfigurowanie pod kątem szybszego czasu rozruchu przy użyciu konsoli szeregowej

Jeśli masz dostęp do konsoli szeregowej, istnieją dwa sposoby szybszego rozruchu. Zmniejsz czas oczekiwania displaybootmenu lub całkowicie usuń flagę.

  1. Postępuj zgodnie z instrukcjami, aby uzyskać dostęp do konsoli szeregowej platformy Azure dla systemu Windows , aby uzyskać dostęp do konsoli opartej na tekście.

    Uwaga

    Jeśli nie możesz uzyskać dostępu do konsoli szeregowej, przejdź do sekcji Tworzenie i uzyskiwanie dostępu do naprawy maszyny wirtualnej.

  2. Opcja A: Skrócenie czasu oczekiwania

    a. Czas oczekiwania jest domyślnie ustawiony na 30 sekund, ale można go zmienić na krótszy czas (np. 5 sekund).

    b. Użyj następującego polecenia w konsoli szeregowej, aby dostosować wartość limitu czasu:

    bcdedit /set {bootmgr} timeout 5

  3. Opcja B: Usuwanie flagi BCD

    a. Aby całkowicie uniemożliwić wyświetlenie monitu menu rozruchowego, wprowadź następujące polecenie:

    bcdedit /deletevalue {bootmgr} displaybootmenu

    Uwaga

    Jeśli nie możesz użyć konsoli szeregowej do skonfigurowania szybszego czasu rozruchu w powyższych krokach, możesz zamiast tego kontynuować wykonywanie poniższych kroków. Teraz będziesz rozwiązywać problemy w trybie offline, aby rozwiązać ten problem.

Tworzenie i uzyskiwanie dostępu do naprawy maszyny wirtualnej

  1. Wykonaj kroki 1-3 z poleceń naprawy maszyny wirtualnej, aby przygotować maszynę wirtualną na potrzeby naprawy.
  2. Połącz się z maszyną wirtualną naprawy za pomocą połączenia pulpitu zdalnego.

Konfigurowanie pod kątem szybszego czasu rozruchu na naprawianej maszynie wirtualnej

  1. Otwórz wiersz polecenia z podwyższonymi uprawnieniami.

  2. Wprowadź następujące polecenie, aby włączyć funkcję DisplayBootMenu:

    Użyj tego polecenia dla maszyn wirtualnych generacji 1:

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

    Użyj tego polecenia dla maszyn wirtualnych generacji 2:

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

    Zastąp dowolne symbole większe niż lub mniejsze, a także tekst w nich, np. "< tekst tutaj >".

  3. Zmień wartość limitu czasu na 5 sekund:

    Użyj tego polecenia dla maszyn wirtualnych generacji 1:

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

    Użyj tego polecenia dla maszyn wirtualnych generacji 2:

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

    Zastąp dowolne symbole większe niż lub mniejsze, a także tekst w nich, np. "< tekst tutaj >".

Aby włączyć zbieranie zrzutów pamięci i konsolę szeregową, wykonaj następujące kroki:

  1. Otwórz sesję wiersza polecenia z podwyższonym poziomem uprawnień jako administrator.

  2. Uruchom następujące polecenia BCDEdit przy użyciu opcji /ems i /emssettings :

    Włącz konsolę szeregową:

    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. Sprawdź, czy wolne miejsce na dysku systemu operacyjnego jest większe niż rozmiar pamięci RAM na maszynie wirtualnej.

    Jeśli na dysku systemu operacyjnego nie ma wystarczającej ilości miejsca, zmień lokalizację, w której jest tworzony plik zrzutu pamięci, i odwołaj się do dowolnego dysku danych dołączonego do maszyny wirtualnej, która ma wystarczającą ilość wolnego miejsca. Aby zmienić lokalizację, zastąp literą %SystemRoot% dysku danych, taką jak F:, w następujących poleceniach.

    Aby włączyć plik zrzutu systemu operacyjnego, uruchom następujące polecenia ładowania, dodaj i zwolnij , aby zaimplementować sugerowaną konfigurację przy użyciu narzędzia reg :

    Załaduj gałąź rejestru z uszkodzonego dysku systemu operacyjnego:

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

    Włącz dla kontrolki 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
    

    Włącz dla kontrolki 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
    

    Zwolnij uszkodzony dysk systemu operacyjnego:

    reg unload HKLM\<broken-system>
    

Ponowne kompilowanie oryginalnej maszyny wirtualnej

Wykonaj krok 5 z poleceń naprawy maszyny wirtualnej, aby ponownie złożyć maszynę wirtualną.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.