次の方法で共有


Windows ブート マネージャーが原因で Windows VM を起動できない

適用対象: ✔️ Windows VM

この記事では、Windows ブート マネージャーが原因で Azure 仮想マシン (VM) を起動できない問題を解決するための手順を示します。

症状

VM がユーザー プロンプトで待機していて、手動で指示しない限り起動しない。

次のスクリーンショットのように、ブート診断を使用して VM を確認すると、Windows ブート マネージャーにより "開始するオペレーティング システムを選択するか、TAB キーを押してツールを選択してください:" というメッセージが表示されます。

[Windows ブート マネージャー] 画面の状態:起動するオペレーティング システムを選択するか、Tab キーを押してツールを選択します。

原因

このエラーの原因は、Windows ブート マネージャーの BCD フラグ displaybootmenu です。 このフラグが有効になっている場合、Windows ブート マネージャーは、起動プロセス中に、実行するローダーを選択するように求めるプロンプトをユーザーに対して表示します。これにより起動が遅延します。 Azure では、この機能によって VM の起動にかかる時間が長くなる場合があります。

ソリューション

ヒント

VM の最新のバックアップがある場合は、そのバックアップから VM の復元を試行して、起動の問題を修正することができます。

プロセスの概要:

  1. シリアル コンソールを使用して、より短い起動時間を構成します。
  2. 修復 VM を作成してアクセスします。
  3. 修復 VM でより短い起動時間を構成します。
  4. 推奨: VM を再構築する前に、シリアル コンソールとメモリ ダンプの収集を有効にします。
  5. VM を再構築します。

シリアル コンソールを使用して、より短い起動時間を構成する

シリアル コンソールへのアクセス権がある場合、起動時間を短縮する方法は 2 つあります。 displaybootmenu の待機時間を短縮するか、このフラグを完全に削除します。

  1. 指示に従って Windows 用 Azure シリアル コンソールにアクセスし、テキストベースのコンソールにアクセスできるようにします。

    Note

    シリアル コンソールにアクセスできない場合は、「修復 VM を作成してアクセスする」に進んでください。

  2. オプション A: 待機時間を短縮する

    a. 待機時間は既定では 30 秒に設定されていますが、より短い時間 (たとえば 5 秒) に変更できます。

    b. シリアル コンソールで次のコマンドを使用してタイムアウト値を調整します。

    bcdedit /set {bootmgr} timeout 5

  3. オプション B: BCD フラグを削除する

    a. [Display Boot Menu]\(ブート メニューの表示\) プロンプトが表示されないようにするには、次のコマンドを入力します。

    bcdedit /deletevalue {bootmgr} displaybootmenu

    Note

    前の手順でシリアル コンソールを使用してより短いブート時間を構成できなかった場合は、代わりに次の手順に進むことができます。 オフライン モードでトラブルシューティングを行い、この問題を解決します。

修復 VM を作成してアクセスする

  1. VM 修復コマンドの手順 1 から 3 を使用して、修復 VM を準備します。
  2. リモート デスクトップ接続を使用して、修復 VM に接続します。

修復 VM でより短い起動時間を構成する

  1. 管理者特権でのコマンド プロンプトを開きます。

  2. 次のように入力して DisplayBootMenu を有効にします。

    第 1 世代 VM の場合、次のコマンドを使用します。

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

    第 2 世代 VM の場合、次のコマンドを使用します。

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

    ">でテキストを<" など、シンボル内のテキストと同様に、大きいまたは小さい記号を置き換えます。

  3. タイムアウト値を 5 秒に変更します。

    第 1 世代 VM の場合、次のコマンドを使用します。

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

    第 2 世代 VM の場合、次のコマンドを使用します。

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

    ">でテキストを<" など、シンボル内のテキストと同様に、大きいまたは小さい記号を置き換えます。

メモリ ダンプ収集とシリアル コンソールを有効にするには、次の手順に従います。

  1. 管理者として管理者特権でのコマンド プロンプト セッションを開きます。

  2. /ems および /emssettings オプションを使用して、次の BCDEdit コマンドを実行します。

    シリアル コンソールを有効にします。

    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. OS ディスクの空き領域が、VM のメモリ サイズ (RAM) よりも大きいことを確認します。

    OS ディスクに十分な領域がない場合は、メモリ ダンプ ファイルが作成される場所を変更し、その場所を、十分な空き領域がある VM に接続されているデータ ディスクを参照します。 場所を変更するには、次のコマンドで、 %SystemRoot% をデータ ディスクのドライブ文字 ( F:など) に置き換えます。

    OS ダンプ ファイルを有効にするには、次の loadadd、および unload コマンドを実行して、 reg ツールを使用して推奨される構成を実装します。

    壊れた OS ディスクからレジストリ ハイブを読み込みます。

    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
    

    壊れた OS ディスクをアンロードします。

    reg unload HKLM\<broken-system>
    

元の VM を再構築する

VM 修復コマンドの手順 5 を使用して、VM を再構成します。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。