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

このページでは、Windows VM のトラブルシューティング方法について説明します。

RDP 接続のトラブルシューティング

リモート デスクトップ プロトコル(RDP)を使用してインスタンスに接続できない場合は、RDP のトラブルシューティングの詳細なガイドに従ってください。

EM コンソールに接続する

Emergency Management Services(EM)コンソールを使用して、Windows VM の問題をトラブルシューティングします。

EMS コンソールに接続するには:

  1. ターミナルまたは Cloud Shell で、VM のシリアルポートへの接続を有効にします。

    gcloud compute instances add-metadata vm-name --metadata=serial-port-enable=1
    

    vm-name は、シリアルポートを有効にする VM の名前に置き換えます。

  2. VM のシリアルポート 2 で EMS コンソールに接続します。

    gcloud compute connect-to-serial-port vm-name --port 2
    

    vm-name は、接続先のシリアルポートを持つ VM の名前に置き換えます。

  3. 次のような出力が表示されることを確認します。

    Computer is booting, SAC started and initialized.
    
    Use the "ch -?" command for information about using channels.
    Use the "?" command for general help.
    
    SAC>
    EVENT: The CMD command is now available.
    SAC>
    
  4. cmd コマンドを使用して新しいコマンド プロンプト セッションを作成し、次のような出力が表示されるのを確認します。

    The Command Prompt session was successfully launched.
    SAC>
    EVENT:   A new channel has been created.  Use "ch -?" for channel help.
    Channel: Cmd0001
    SAC>
    
  5. ch -si 1 コマンドを使用して新しいコマンド プロンプト セッションに接続し、次のような出力が表示されるのを確認します。

    Name:                  Cmd0001
    Description:           Command
    Type:                  VT-UTF8
    Channel GUID:          28de7392-5413-11ea-bb03-c9656a2ed613
    Application Type GUID: 63d02271-8aa4-11d5-bccf-00b0d014a2d0
    
    Press <esc><tab> for next channel.
    Press <esc><tab>0 to return to the SAC channel.
    Use any other key to view this channel.
    
  6. Enter キーを押してセッションに接続します。

  7. この VM のログイン認証情報を入力してセッションにログインします。ログインすると、C:\Windows\system32 ディレクトリで EMS コンソールが開きます。

    • help」と入力すると、EMS コンソールで使用可能なコマンドのリストが表示されます。

詳細ブート オプションを有効にする

Windows ブートマネージャー(BOOTMGR)を使用してセーフモードに切り替え、詳細ブート オプションにアクセスします。

詳細ブート オプションを有効にするには:

  1. ターミナルまたは Cloud Shell で、VM のシリアルポートへの接続を有効にします。

    gcloud compute instances add-metadata vm-name --metadata serial-port-enable=1
    

    vm-name は、シリアルポートを有効にする VM の名前に置き換えます。

  2. RDP を使用して Windows VM に接続します。

    RDP を使用してインスタンスにアクセスできない場合は、Cloud Console または gcloud ツールを使用してインスタンスをリセットできます。

  3. 管理コマンド プロンプトから次のコマンドを実行します。

    bcdedit /set {bootmgr} displaybootmenu yes
    
    bcdedit /set {bootmgr} timeout 10
    
    bcdedit /set {bootmgr} bootems yes
    
  4. Cloud Console または gcloud コマンドライン ツールを使用して、シリアルポート 2 でインタラクティブ シリアル コンソールに接続します。

    gcloud compute connect-to-serial-port vm-name --port 2
    

    vm-name は、接続先のシリアルポートを持つ VM の名前に置き換えます。

  5. ユーザー インターフェースまたはコマンド プロンプトからインスタンスを再起動します。

    shutdown /r /f
    
  6. インタラクティブ シリアル コンソールで、Windows ブート マネージャーが表示されていることを確認します。

    Windows ブート マネージャーの画面。

  7. Windows ブート マネージャーから、起動するオペレーティング システムを選択します。

  8. Esc + 8 キーを押して、詳細ブート オプションを開きます。

    詳細ブート オプションの画面。

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

Windows OS がクラッシュすると、青い画面にエラーが表示されることがあります。この青い画面は、死のブルー スクリーン(BSoD)とも呼ばれます。ブルー スクリーン エラーが発生すると、現在読み込まれているモジュールとスタック トレースのリストがシリアルポート 1 に送信されます。

  1. バージョン 20191112 以降の Windows イメージには、読み込まれたモジュールのリストとスタック トレースをシリアルポート 1 に送信するためのドライバが含まれています。クラッシュが発生した Windows VM がバージョン 20191112 より前の Windows イメージを実行している場合は、Windows VM で管理者特権のコマンド プロンプトから次のコマンドを実行してドライバをインストールします。

    googet install google-compute-engine-driver-pvpanic
    
  2. ターミナルまたは Cloud Shell で、VM のシリアルポートへの接続を有効にします。

    gcloud compute instances add-metadata vm-name --metadata serial-port-enable=1
    

    vm-name は、シリアルポートを有効にする VM の名前に置き換えます。

  3. VM のシリアルポート 1 に接続します。

    gcloud compute instances get-serial-port-output vm-name --port 1
    

    vm-name は、接続先のシリアルポートを持つ VM の名前に置き換えます。

  4. ブルー スクリーン エラーが発生すると、読み込まれているモジュールとスタック トレースのリストがシリアルポート 1 に送信されます。この出力では、読み込まれたモジュールのリストの末尾とスタック トレースの先頭が次のように表示されます。

    Dumping stack trace:
    
  5. バグチェック コードのリファレンスを確認して、問題を絞り込みます。

ライセンスについて

デフォルトで、Compute Engine Windows VM は 7 日ごとに、KMS サーバーに TCP ポート 16 を介して自動的に接続し、ライセンスを更新します。ライセンスの有効期限に関するメッセージが表示された場合、または Windows VM のライセンスに関連するその他の問題についてメッセージが表示された場合、次を行ってください。

  1. KMS との通信を許可するように構成された IP アドレスが Windows VM にあることを確認します。

  2. TCP 1688 を介した kms.windows.googlecloud.com への接続をブロックする下り(外向き)ファイアウォール ルールがないことを確認します。

  3. ライセンスに関する問題が解決しない場合は、管理者特権のコマンド プロンプトから次のコマンドを実行して、KMS の IP アドレスを強制的に設定し、ライセンス認証を強制します。

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

次のステップ