Windows Compute Engine インスタンスの起動に関する問題のトラブルシューティング

このドキュメントでは、Windows Server Compute Engine インスタンスが起動しない理由を特定し、一般的な問題を解決する方法について説明します。

起動に失敗した Windows Compute インスタンスには、通常、次のような症状が見られます。

  • コンピューティング インスタンスは RUNNING 状態ですが、RDP を使用して接続できません。
  • シリアルポート 1 にはファームウェアとゲスト エージェントの行のみが表示され、ゲスト エージェントが準備完了を報告することはありません。
  • シリアルポート 2 に Windows ブート マネージャーのエラー画面または STOP エラーが表示される。

コンピューティング インスタンスの起動が完了しても接続できない場合は、RDP のトラブルシューティングをご覧ください。

始める前に

  • コンピューティング インスタンスがシリアルポート 1 と 2 に出力を書き込むことを確認します。シリアルポート出力は、コンピューティング インスタンスの実行中に使用できます。コンピューティング インスタンスの停止後も保持するには、Cloud Logging へのシリアルポート ロギングを有効にします。詳細については、シリアルポート出力の表示をご覧ください。
  • まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
    1. Google Cloud CLI をインストールします。インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    2. デフォルトのリージョンとゾーンを設定します。

原因を自動的に検出する

起動診断コマンドを実行します。Windows コンピューティング インスタンスの場合、シリアルポート 2 を読み取り、最も可能性の高い原因を報告し、このドキュメントの対応するセクションにリンクします。

このコマンドを使用するには、アルファ版コマンド コンポーネントがインストールされていることを確認してください。

gcloud alpha compute diagnose boot INSTANCE_NAME --zone=ZONE

次のように置き換えます。

  • INSTANCE_NAME: コンピューティング インスタンスの名前。
  • ZONE: コンピューティング インスタンスを含むゾーン。

シリアル コンソールの出力を読み取る

ブート マネージャー画面または STOP エラーを自分で読み取るには、シリアルポート 2 を読み取ります。

コンソール

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. シリアルポートの出力を表示するコンピューティング インスタンスを選択します。

  3. [ログ] で、[シリアルポート 2(コンソール)] をクリックします。

gcloud

gcloud compute instances get-serial-port-output INSTANCE_NAME --zone=ZONE --port=2

次のように置き換えます。

  • INSTANCE_NAME: コンピューティング インスタンスの名前。
  • ZONE: コンピューティング インスタンスを含むゾーン。

ブート マネージャーの画面には、0xc000000e などのコードを含む Status: 行と、障害を説明する Info: 行が表示されます。STOP エラーには、STOP コードとその名前(INACCESSIBLE_BOOT_DEVICE など)が含まれます。

次の起動時に Windows ブート マネージャーのメニューまたは [詳細ブート オプション] メニューを開くには、Windows VM のトラブルシューティングをご覧ください。

一般的な起動の問題

以降のセクションでは、Windows コンピューティング インスタンスでよく発生する起動エラー、シリアルポート 2 の署名、解決方法について説明します。ほとんどの解決策では、ディスクをオフラインで修正するの説明に沿って、ブートディスクを復元 VM にアタッチする必要があります。

Windows ブート マネージャーで Windows を起動できない

現象: シリアルポート 2 に Windows ブート マネージャーのエラー画面が表示されます。

Windows failed to start. A recent hardware or software change might be the cause.
Status: 0xc000000e
Info: A required device isn't connected or can't be accessed.

ステータス コードは、具体的な原因を示します。

ステータス 意味
0xc000000e、0xc0000001 ブート構成データ(BCD)が、ファームウェアがアクセスできないブートデバイスを指している。ディスクの復元、ディスクのクローン作成、ディスク構成の変更後に発生することがあります。
0xc0000225、0xc000000f ブートローダーまたはその BCD エントリがないか、無効です。
0xc000014c、0xc0000034、0xc0000098、0xc0000102 BCD ストアがない、不完全である、破損している。

原因: ブート マネージャーは読み込まれましたが、BCD に起動可能な Windows インストールが記述されていません。

解決策: ディスクを復元 VM に接続し、Windows 起動修復ツールを使用して起動構成を修復します。表示されたステータス コードについては、Microsoft の Windows 起動に関する高度なトラブルシューティングのドキュメントをご覧ください。ディスクをオフラインで修正するをご覧ください。ブート構成を再構築できない場合は、スナップショットからディスクを復元します。

BOOTMGR が見つからない

症状: シリアルポート 2 に BOOTMGR is missing. Press Ctrl+Alt+Del to restart が表示される。このメッセージは、BIOS ブートを使用する OS イメージでのみ表示されます。

原因: ブート マネージャー ファイルがシステム パーティションにありません。

解決策: Microsoft の Windows の起動に関する問題の高度なトラブルシューティングのドキュメントに沿って、ディスクを復元 VM にアタッチし、Windows スタートアップ修復ツールを使用してブートファイルを復元します。ディスクをオフラインで修正するをご覧ください。

STOP 0x7B INACCESSIBLE_BOOT_DEVICE

現象: シリアルポート 2 に INACCESSIBLE_BOOT_DEVICE という名前の STOP エラーが表示される。

原因: Windows はブート ボリュームを検出しましたが、ディスク コントローラのストレージ ドライバがないか無効になっているため、ボリュームにアクセスできません。このエラーは、SCSI から NVMe へのディスク インターフェースの変更、ストレージ ドライバの更新、別のコンピューティング インスタンスからの復元後に発生することがよくあります。

解決策: コンピューティング インスタンスを 1 回リセットします。一時的な障害は解消されることがよくあります。エラーが再発する場合は、ディスクを復元 VM にアタッチし、オフライン インストールでコンピューティング インスタンスのディスク インターフェースのストレージ ドライバを有効にするか、再インストールします。オフライン インストールでドライバを見つけて削除または更新する手順については、ストップ コードまたはブルースクリーン エラーの高度なトラブルシューティングをご覧ください。

STOP 0xED UNMOUNTABLE_BOOT_VOLUME

現象: シリアルポート 2 に UNMOUNTABLE_BOOT_VOLUME という名前の STOP エラーが表示される。

原因: ブート ボリュームの NTFS メタデータが破損しているか、ディスクを読み取ることができません。

解決策: オフライン修復を完了するの説明に沿って、ディスクを復元 VM にアタッチし、ボリュームをチェックして修復します。ボリュームを修復できない場合は、スナップショットからディスクを復元します。

その他の STOP エラー

現象: シリアルポート 2 に STOP エラー(CRITICAL_PROCESS_DIED、SYSTEM_THREAD_EXCEPTION_NOT_HANDLED など)または STOP コード(*** STOP: 0x0000007E など)が表示される。

原因: 必要なシステム プロセスが終了した、カーネルが処理できない例外がドライバによって発生した、または別のカーネル エラーが発生した。STOP 行には、原因となった .sys ドライバ ファイルの名前が記載されていることがよくあります。

解決策: コンピューティング インスタンスを 1 回リセットします。エラーが繰り返し発生する場合は、ブルースクリーン エラーのトラブルシューティングの説明に従って完全なスタック トレースを読み取り、オフライン修復の完了の説明に従って、復元 VM から STOP 行で指定されたシステム ファイルを修復するか、ドライバを削除するか、ドライバを更新します。

ディスクをオフラインで修正する

Windows の起動に関する問題のほとんどは、ブートディスクをデータディスクとして復元 VM にアタッチし、Windows 修復ツールを実行することで修復できます。手順については、オフライン修復を完了するを参照してください。

このドキュメントの解決策では、元のブートディスクが復元 VM にアタッチされていることを前提としています。ディスクを変更する前に、スナップショットを作成して、修復が失敗した場合に復元できるようにします。手順については、アーカイブ ディスクと標準ディスクのスナップショットを作成するをご覧ください。

ディスクを修復できない場合は、コンピューティング インスタンスを復元する

いずれの解決策でも問題が解決しない場合は、スナップショットからブートディスクを復元するか、スナップショットまたはカスタム OS イメージから新しいコンピューティング インスタンスを作成して、データを移動します。

次のステップ