Windows VM のトラブルシューティング


このドキュメントでは、Compute Engine Windows 仮想マシン(VM)のインスタンスの起動に関する以下の問題を解決するための方法とツールについて説明します。

  • RDP を使用して VM に接続できず、トラブルシューティングでも接続を解決できない。

  • ログイン画面が VM のスクリーンショットに表示されず、VM が進行していないか、更新が実行されていない。

  • 通常のオペレーションにより、ブルー スクリーン エラーが発生、フリーズ、または VM が正常に動作していない。

Windows VM への接続に問題がある場合は、RDP のトラブルシューティングをご覧ください。

始める前に

  • Windows の起動プロセスのトラブルシューティングについては、Windows のブートに関する問題のトラブルシューティングをご覧ください。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

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

詳細ブート オプション メニューの使用

Windows が正常に起動しない場合は、[詳細ブート オプション] メニューを使用してセーフモードに切り替えるか、オペレーティング システムのオンライン修復を行います。詳細については、高度なスタートアップ オプションをご覧ください。

Windows VM で [詳細ブート オプション] メニューを入力するには、次の手順を行います。

  1. VM の表示デバイスを有効にします(まだ有効にしていない場合)。
  2. VM のインタラクティブ シリアル コンソールに接続します

  3. 次のいずれかの方法で VM を再起動します。

    コンソール

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

      [VM インスタンス] に移動

    2. 再起動する VM の名前をクリックします。[VM インスタンスの詳細] ページが開きます。

    3. [リセット] ボタンをクリックして、VM を再起動します。

    gcloud

    VM をリセットするには、gcloud compute instances reset コマンドを使用します。

    gcloud compute instances reset VM_NAME --zone=ZONE --project=PROJECT_ID
    

    以下を置き換えます。

    • PROJECT_ID: VM が含まれているプロジェクトの ID
    • ZONE: VM が存在するゾーンの名前
    • VM_NAME: VM の名前

    コマンド プロンプト

    インタラクティブ シリアル コンソールに接続した状態で、コマンド プロンプト セッションを開き、次のコマンドを実行します。コマンド プロンプト セッションを開く方法については、Windows SAC でコマンド プロンプトを開くをご覧ください。

    shutdown /r /t 0
    

    Windows ブート マネージャーのメニューが開きます。

    Windows ブート マネージャーのメニュー

  4. カウントダウンが期限切れになる前に、次の手順を行います。

    1. インタラクティブ シリアル コンソールがアクティブなウィンドウであることを確認します。

    2. キーボードの Esc キーを押します。

    3. キーボードの数字キーの 8 を押します。

    [詳細ブート オプション] メニューが開きます。

    [詳細ブート オプション] メニュー

  5. キーボードの矢印キーを使用してオプションを選択し、[Enter] キーを押して開きます。

Windows ブート マネージャー メニューの有効化

Windows VM インスタンスが再起動されたときに表示される Windows ブート マネージャー メニューを構成できます。Windows ブート マネージャーのメニューを有効にするには、次の手順を行います。

VM に接続し、管理者権限を指定してコマンド プロンプトを開きます。VM に接続できない場合は、後続のステップを直接実行するのではなく、windows-startup-script-cmd または windows-startup-script-ps1起動スクリプトに値として追加します。

コマンド プロンプト

  1. 起動時に Windows ブート マネージャーのメニューを有効にして、15 秒のタイムアウトを追加するには、次のコマンドを実行します。

    bcdedit /set {bootmgr} displaybootmenu yes
    
    bcdedit /set {bootmgr} timeout 15
    
  2. VM を再起動し、シリアル コンソールに Windows ブート マネージャーのメニューを表示するには、次のコマンドを使用します。

    shutdown -r -t 0
    

PowerShell

  1. 起動時に Windows ブート マネージャーのメニューを有効にして、15 秒のタイムアウトを追加するには、次のコマンドを実行します。

    bcdedit /set '{bootmgr}' displaybootmenu yes
    
    
    bcdedit /set '{bootmgr}' timeout 15
    
  2. VM を再起動し、シリアル コンソールに Windows ブート マネージャーのメニューを表示するには、次のコマンドを使用します。

    shutdown -r -t 0
    

オフライン修復の完了

VM が正しく起動せず、詳細ブートメニューを使用しても問題が解決しなかった場合は、問題のある VM のブートディスクのスナップショットを使用して、機能している Windows VM インスタンスを使用したオフライン修復を実行して復元を試みてください。スナップショットを使用すると、元の VM の状態を変更せずに、変更可能なバックアップ コピーを作成できます。

  1. 問題のある VM のブートディスクのスナップショットを作成します。

  2. そのスナップショットを使用してディスクを作成します。

  3. 新しく作成したディスクを使用して、追加の非ブートディスクで VM を作成します。リカバリ VM は次の条件を満たす必要があります。

    • リカバリ VM は、作成したディスクと同じゾーンに存在する必要があります。
    • リカバリ VM には、Windows Server イメージも使用する必要があります。
    • リカバリ VM のブートディスクのソースイメージは、問題のある VM のブートディスクのソースイメージと異なるものにする必要があります。
  4. Windows のツールとユーティリティを使用して、追加でアタッチされているディスクのオフライン修復が実行できるようになりました。VM のオフライン修復の詳細については、次のドキュメントをご覧ください。

  5. オフラインの修復が正常に完了したら、問題のある VM のブートディスクを更新して、新しく修復されたブートディスクにします。

  6. (省略可)不要になった追加のリソースを削除します。

ブルー スクリーン エラーのトラブルシューティング

Windows オペレーティング システムで停止コードや青い画面にエラーが表示されることがあります。これは、死のブルー スクリーンとも呼ばれます。VM にブルー スクリーン エラーが発生すると、VM は実行を停止するため、通常のオペレーションを再開する前に再起動する必要があります。

ブルー スクリーン エラーが発生したと思われる場合は、次の方法を 1 つ以上使用してエラーの存在を特定します。

シリアルポート 1

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

    [VM インスタンス] に移動

  2. ログを表示する VM の名前をクリックします。[VM インスタンスの詳細] ページが開きます。

  3. [ログ] で、[シリアルポート 1] をクリックします。

  4. 次のようなスタック トレース ダンプが、ブルー スクリーン エラーを確認します。

    ntoskrnl.exe [0xFFFFF802C9606000, 0xFFFFF802C9E23000]
    netbios.sys [0xFFFFF80E98430000, 0xFFFFF80E98442000]
    volmgr.sys [0xFFFFF80E97E40000, 0xFFFFF80E97E58000]
    NTFS.sys [0xFFFFF80E98060000, 0xFFFFF80E98293000]
    crashdmp.sys [0xFFFFF80E986C0000, 0xFFFFF80E986D9000]
    pvpanic.sys [0xFFFFF80E99030000, 0xFFFFF80E9903C000]
    myfault.sys [0xFFFFF80E9A570000, 0xFFFFF80E9A578000]
    Dumping stack trace:
    0xFFFFF80E990317C7 (pvpanic.sys+0x17C7)
    0xFFFFF80E990316D3 (pvpanic.sys+0x16D3)
    0xFFFFF802C97D9681 (ntoskrnl.exe+0x1D3681)
    0xFFFFF802C97D8A1F (ntoskrnl.exe+0x1D2A1F)
    0xFFFFF802C97633F4 (ntoskrnl.exe+0x15D3F4)
    0xFFFFF802C9773329 (ntoskrnl.exe+0x16D329)
    0xFFFFF802C976F152 (ntoskrnl.exe+0x169152)
    0xFFFFF80E9A572794 (myfault.sys+0x2794)
    Current Process: notmyfault64.e
    

シリアルポート 2

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

    [VM インスタンス] に移動

  2. ログを表示する VM の名前をクリックします。[VM インスタンスの詳細] ページが開きます。

  3. [ログ] の下の [その他] を展開し、[シリアルポート 2(コンソール)] をクリックします。

  4. インスタンスのシリアルポートを確認し、次のような出力を探します。

    !SAC>
    Your PC ran into a problem and needs to restart.
    If you call a support person, give them this info:
    UNEXPECTED_KERNEL_MODE_TRAP
    
    myfault.sys
    
    0x0000000000000008
    0xFFFFC6812AB94F70
    0xFFFFC6812E38EFF0
    0xFFFFF80E9A572794
    
    We're just collecting some error info, and then we'll restart for you.
    100% complete
    

コマンド プロンプト

  1. インスタンスに接続し、管理者権限を指定してコマンド プロンプトを開きます。

  2. 最新のブルー スクリーン イベントを表示するには、次のコマンドを実行します。

    wevtutil qe System "/q:*[System [(EventID=1001)]]" /rd:True /c:1 /f:Text
    
  3. 次のような内容の出力を確認します。

    Event[0]:
      Log Name: System
      Source: Microsoft-Windows-WER-SystemErrorReporting
      Date: 2021-04-14T08:53:52.933
      Event ID: 1001
      Task: N/A
      Level: Error
      Opcode: N/A
      Keyword: Classic
      User: N/A
      User Name: N/A
      Computer: WINDOWS
      Description:
    The computer has rebooted from a bugcheck.  The bugcheck was: 0x1000007f (0x
    0000000000000008, 0xffffc6812ab94f70, 0xffffc6812e38eff0, 0xfffff80e9a572794
    ). A dump was saved in: C:\Windows\Minidump\041421-12656-01.dmp. Report Id:
    a5710c98-a577-4b3e-a3c9-2fc0aa4e5d83.
    

wetutil クエリのカスタマイズについては、wevtutil をご覧ください。

ディスクのスナップショット

VM が動作しなくなった場合や、他の方法でも正常に作動しなかった場合。疑わしいブルー スクリーン VM のブートディスクは、セカンダリ VM で検査できます。スナップショットを使用すると、元の VM の状態を変更せずに、変更可能なバックアップ コピーを作成できます。

  1. 疑わしいブルー スクリーン VM のブートディスクのスナップショットを作成します。

  2. そのスナップショットを使用してディスクを作成します。

  3. 疑わしい VM の新しく作成されたディスクを使用して、追加の非ブートディスクを含む VM を作成します。リカバリ VM は次の条件を満たす必要があります。

    • リカバリ VM は、作成したディスクと同じゾーンに存在する必要があります。
    • リカバリ VM には、Windows Server イメージも使用する必要があります。
    • リカバリ VM のブートディスクのソースイメージは、問題のある VM のブートディスクのソースイメージと異なるものにする必要があります。
  4. 追加のディスクを参照して、次のファイルを探します。

    %SystemRoot%\Memory.dmp
    %SystemRoot%\Minidump\DATE-TIME-NUM.dmp
    

    ファイルの日時は、疑わしいインスタンスにブルー スクリーン エラーが発生したかどうかの特定に役立ちます。これらのファイルは、分析と診断にも使用できます。

  5. (省略可)不要になった追加のリソースを削除します。

ブルー スクリーン エラー情報を取得し、必要に応じてメモリ ダンプファイルへのアクセス権を取得したら、Microsoft が提供する診断手順と推奨事項を実施します。

ライセンスについて

Windows オペレーティング システムは、鍵管理サービス(KMS)サーバーに接続して、7 日ごとにライセンスを更新します。ライセンスの有効期限に関するメッセージが表示された場合、または Windows VM のライセンスに関連するその他の問題についてメッセージが表示された場合、次のことを行ってください。

  1. Windows VM の VPC ネットワークが KMS との通信を許可するように構成されていることを確認します。

  2. Windows ファイアウォールが KMS サーバーへの送信接続を許可していることを確認します。

    • IP アドレス: 35.190.247.13
    • ポート: 1688
    • プロトコル: TCP

    Windows の高度なファイアウォール ルールの構成の詳細については、送信ポートルールの作成をご覧ください。

  3. 次のコマンドを実行して、KMS サーバーへの接続が完了しているかをテストします。

    powershell.exe Test-NetConnection 35.190.247.13 -Port 1688
    
  4. 次のコマンドを実行して、ライセンスの現在の状態を確認し、KMS のサーバー IP アドレスを設定して、ライセンス認証を強制します。

    cscript \windows\system32\slmgr.vbs /dlv
    
    cscript \windows\system32\slmgr.vbs /skms 35.190.247.13:1688
    
    cscript \windows\system32\slmgr.vbs /ato
    

インタラクティブ シリアル コンソールのトラブルシューティング

  1. シリアル コンソールにアクセスするための前提条件を満たしていることを確認します。

  2. 緊急管理サービスを有効にします。EMS がオフになっている場合、シリアル コンソールはキーボード入力を受け付けません。空白の画面のみが表示され、カーソルが点滅します。

    コマンド プロンプト

    1. RDP を使用して VM に接続し、管理者として Command Prompt を開きます。RDP で操作できない場合は、以降の手順を値として windows-startup-script-cmd 起動キーに追加します。

    2. COM2(ボーレート 115,200)を使用するようにグローバル EMS リダイレクトを設定し、EMS を有効にします。

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. VM を再起動して、更新された構成を適用します。メタデータ スクリプトを使用している場合は、shutdown コマンドを追加しないでください。

      shutdown -r -t 0
      

    PowerShell

    1. RDP を介して接続し、管理者として Powershell を開きます。RDP で操作できない場合は、以降の手順を値として windows-startup-script-ps1 起動キーに追加します。

    2. COM2(ボーレート 115,200)を使用するようにグローバル EMS リダイレクトを設定し、EMS を有効にします。

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. VM を再起動して、更新された構成を適用します。メタデータ スクリプトを使用している場合は、shutdown コマンドを追加しないでください。

      shutdown -r -t 0
      

次のステップ