仮想マシンの問題のトラブルシューティング

Citrixは、以下の2つの形式のサポートを提供します:

  • シトリックスWebサイトでの無料セルフヘルプサポート
  • サポートサイトから購入可能な有料のサポートサービス

Citrixのテクニカルサポートを受けるには、オンラインでサポートケースを登録したり、サポート担当者に電話したりできます。

シトリックスサポートサイトでは、Citrix Hypervisorの問題解決に有用な情報が提供されています。ここでは、製品のドキュメント、ナレッジベース、ディスカッションフォーラムなどのリソースにアクセスできます。

このセクションは、仮想マシンの動作が異常な場合に問題の解決を支援することを目的としています。このセクションでは、問題についてCitrix Hypervisorソリューションプロバイダーに問い合わせる場合に必要な、アプリケーションログの場所やそのほかの情報についても説明します。

重要:

ここで説明するトラブルシューティングを実行する場合には、Citrix Hypervisorソリューションプロバイダーまたはサポートチームの指示に従うことをお勧めします。

ベンダーによるアップデート:オペレーティングシステムのベンダーが提供するアップデートを使用して、仮想マシンを最新の状態にしておきます。ベンダーから、仮想マシンのクラッシュやその他の障害に対する修正プログラムが提供されている場合があります。

仮想マシンのクラッシュ

仮想マシンのクラッシュの問題を解決するには、カーネルのクラッシュダンプ情報を参照します。可能であれば、クラッシュを再現し、この手順に従ってください。この問題の詳細な調査については、ゲストOSベンダーにお問い合わせください。

Linux仮想マシンのクラッシュダンプ動作の制御

Linux仮想マシンでのクラッシュダンプの動作は、actions-after-crashパラメーターで制御できます。使用可能な値は次のとおりです:

説明
preserve 仮想マシンを一時停止状態にします。(分析用)
restart コアダンプを記録せずに、仮想マシンの再起動のみを実行します。(デフォルト)
destroy コアダンプを記録せずに、仮想マシンを停止状態のままにします。

Linux仮想マシンのクラッシュダンプの保存を有効にするには:

  1. Citrix Hypervisorサーバー上で、次のコマンドを実行して、対象の仮想マシンのUUIDを確認します:

    xe vm-list name-label=name params=uuid --minimal
    
  2. xe vm-param-setを使用して、actions-after-crashの値を変更します。たとえば、dom0で次のコマンドを実行します:

    xe vm-param-set uuid=vm_uuid actions-after-crash=preserve
    
  3. 仮想マシンをクラッシュします。

    • PVゲストの場合は、仮想マシンで次のコマンドを実行します。

       echo c | sudo tee /proc/sysrq-trigger
      
  4. dom0でダンプコアコマンドを実行します。たとえば、次のコマンドを実行します。

    xl dump-core domid filename
    

Windows仮想マシンのクラッシュダンプ動作の制御

Windows仮想マシンでのコアダンプの動作は、actions-after-crashパラメーターで制御できません。デフォルトでは、Windowsのクラッシュダンプは、Windows仮想マシン自体の%SystemRoot%\Minidumpに保存されます。

仮想マシンでのダンプレベルは、[マイコンピュータ]>[プロパティ]>[詳細設定]>[起動と回復] で設定できます。

Linux仮想マシンの起動の問題のトラブルシューティング

Citrix Hypervisorサーバーコントロールドメインに、xe-edit-bootloaderという名前のユーティリティスクリプトがあります。このスクリプトを使用して、シャットダウンされたLinux仮想マシンのブートローダー構成を編集し、仮想マシンが起動できない問題を修正できます。

このスクリプトを使用するには:

  1. 次のコマンドを実行します。

    xe vm-list
    

    このコマンドにより、対象の仮想マシンがシャットダウンされているかどうかを確認できます(power-stateの値はhaltedになります)。

  2. 仮想マシンのUUIDを指定して編集対象のブートローダーを開くには、次のコマンドを実行します。

    xe-edit-bootloader -u linux_vm_uuid -p partition_number
    

    または、名前ラベルを次のように使用できます:

    xe-edit-bootloader -n linux_vm_name_label -p partition_number
    

    パーティション番号には、ファイルシステムが設定されているディスクのスライスを指定します。デフォルトのDebianテンプレートの場合、最初のパーティションになるため、パーティション番号は1です。

  3. 指定した仮想マシンのgrub.confファイルがエディタで表示されます。問題を解決するためファイルに変更を行い、ファイルを保存してエディターを終了し、仮想マシンを起動します。

Windows仮想マシンのUEFIおよびセキュアブートの問題のトラブルシューティング

UEFI対応の仮想マシンでXenCenterコンソールの画面の解像度を変更するにはどうすればよいですか

UEFI対応の仮想マシンでXenCenterコンソールの画面の解像度を変更するには、次の手順を実行します:

  1. [Windowsの設定] を開きます。
  2. [更新とセキュリティ] をクリックします。
  3. [回復]タブの [今すぐ再起動] をクリックします。
  4. [トラブルシューティング] > [詳細オプション] > [UEFIファームウェアの設定] の順に移動します。
  5. [再起動] をクリックします。再起動中に、UEFI設定メニューがロードされます。
  6. [Device Manager] > [OVMFプラットフォームの設定] に移動します。現在の画面の解像度が表示されます。
  7. 画面の解像度オプションを表示するには、Enterキーを押します。
  8. 矢印キーを使用して希望する画面解像度を選択し、Enterキーを押します。
  9. F10キーを押して変更を保存し、選択内容を確定します。
  10. 仮想マシンを再起動して、更新された画面の解像度でXenCenterコンソールを表示します。

UEFIセキュアブート仮想マシンを作成できないのはなぜですか

仮想マシンのオペレーティングシステムがUEFIセキュアブートモードをサポートしていることを確認します。Citrix Hypervisor 8.1では、次のオペレーティングシステムのみがセキュアブートをサポートしています:Windows 10(64ビット)、Windows Server 2016(64ビット)、Windows Server 2019(64ビット)

Citrix HypervisorサーバーがUEFIモードで起動されることを確認します。UEFIセキュアブート仮想マシンを作成できるのは、セキュアブート証明書が存在するCitrix Hypervisorサーバーのみです。セキュアブート証明書は、UEFIモードで起動されたサーバー、またはUEFIモードで起動されたサーバーと同じプール内のサーバーにのみ存在します。詳しくは、「ネットワークブート」を参照してください。

UEFIモードで起動されたCitrix Hypervisorサーバーがハードウェア互換性リスト(英語)に含まれていることを確認します。古いサーバーは、UEFIモードで起動した場合にセキュアブート証明書を含まない可能性があります。

セキュアブートVMを作成するCitrix Hypervisorサーバーにセキュアブート証明書があることをどのようにして確認できますか

Citrix HypervisorサーバーがUEFIモードで起動すると、サーバー上でセキュアブート証明書が利用可能になります。Citrix Hypervisorサーバーは、同じリソースプール内の他のサーバーと証明書を共有します。リソースプールにUEFIモードで起動するサーバーがある場合、そのプール内のすべてのサーバーにセキュアブート証明書があります。

Citrix Hypervisorサーバーで次のコマンドを実行します:

xe pool-param-get param-name=uefi-certificates uuid=<pool-uuid> | wc -c

ゼロより大きい値が返される場合、セキュアブート証明書が存在します。

証明書が有効であることを確認するには、Citrix Hypervisorサーバーで次のコマンドを実行します:

xe pool-param-get uuid=$(xe pool-list --minimal)  param-name=uefi-certificates|base64 -d|tar tv
-rw-r--r-- root/root      1600 2019-11-11 17:09 KEK.auth
-rw-r--r-- root/root      3212 2019-11-11 17:09 db.auth

セキュアブート証明書が存在しない場合は、Citrix Hypervisorサーバーで次のコマンドを実行します:

ls /sys/firmware/efi/efivars | grep KEK

このコマンドが値を返さない場合、必要な証明書がUEFIファームウェアにないため、そのサーバー上にセキュアブート仮想マシンを作成できません。

UEFIセキュアブート仮想マシンの起動に失敗するのはなぜですか

UEFIセキュアブート仮想マシンのコンソールに次のメッセージが表示され、XenCenterにアラートが表示される場合、セキュアブートプロセスが失敗したため、仮想マシンが起動しません。

起動しないUEFIセキュアブートVMからのコンソール出力。

これは通常、署名されていないドライバーを仮想マシンにインストールしたことが原因です。前回の正常なセキュアブート以降に更新またはインストールされたドライバーを調査します。

セキュアブートを無効にし、セットアップモードで仮想マシンを起動して、署名されていないドライバーを削除できます。

重要:

この処理を行う前に、スナップショットを作成して仮想マシンをバックアップします。

UEFIセキュアブート仮想マシンをUEFIブート仮想マシンに変更するには、仮想マシンをホストするCitrix Hypervisorサーバーで次のコマンドを実行します:

varstore-sb-state <VM_UUID> setup

仮想マシンを修正したら、次のコマンドを実行してセキュアブートを再び有効にします:

varstore-sb-state <VM_UUID> user

セキュアブートはWindows仮想マシンで問題を引き起こしていますか

Windows仮想マシンの問題の原因が、仮想マシンに対して有効なセキュアブートであるかどうかを診断するには、セキュアブートを無効にして、問題の再現を試みます。

セキュアブートを無効にするには、仮想マシンをホストするCitrix Hypervisorサーバーで次のコマンドを実行します:

varstore-sb-state <VM_UUID> setup

問題をデバッグしたら、次のコマンドを実行してセキュアブートを再び有効にします:

varstore-sb-state <VM_UUID> user

セキュアブート仮想マシンでWindowsデバッグを実行するにはどうすればよいですか

セキュアブート仮想マシンでWindowsデバッグを実行することはできません。仮想マシンでWindowsデバッグを実行するには、次のいずれかを実行できます:

  • 次のコマンドを実行して、仮想マシンをUEFIブートモードに切り替えます:

    xe vm-param-set uuid=<UUID> platform:secureboot=false
    

    仮想マシンを再起動します。

    問題をデバッグしたら、次のコマンドを実行してセキュアブートを再び有効にします:

    xe vm-param-set uuid=<UUID> platform:secureboot=auto
    

    仮想マシンを再起動します。

  • 仮想マシンをホストするCitrix Hypervisorサーバーで次のコマンドを実行し、セキュアブートを無効にします:

    varstore-sb-state <VM_UUID> setup
    

    問題をデバッグしたら、次のコマンドを実行してセキュアブートを再び有効にします:

    varstore-sb-state <VM_UUID> user
    

UEFI仮想マシンに2つのNICしか表示されないのはなぜですか

UEFI対応の仮想マシンの作成時に3つ以上のNICをセットアップした場合でも、仮想マシンの初回起動時には、2つのNICしか表示されません。この情報は、Citrix VM Toolsが仮想マシンにインストールされた後に正しく表示されます。

エミュレートされたデバイスが予想と異なるタイプとして表示されるのはなぜですか

UEFIセキュアブート仮想マシンはエミュレートされたデバイスにNVMEとE1000を使用します。ただし、仮想の初回起動時には、エミュレートされたデバイスが異なるタイプとして表示されます。この情報は、Citrix VM Toolsが仮想マシンにインストールされた後に正しく表示されます。

テンプレートをBIOSモードからUEFIまたはUEFIセキュアブートモードに変換できないのはなぜですか

UEFI対応の仮想マシンテンプレートは、Citrix Hypervisorが提供するテンプレートのみから作成できます。

何かがインストールされているテンプレート、またはスナップショットから作成したテンプレートに対してはxe template-param-setコマンドを実行しないでください。これらのスナップショットの起動モードは変更できません。また、起動モードを変更しようとすると、仮想マシンは起動に失敗します。

UEFIおよびUEFIセキュアブート設定を確認するにはどうすればよいですか

UEFIまたはUEFIセキュアブート仮想マシンがホストされているCitrix Hypervisorサーバーで、次のコマンドを実行します:

varstore-ls

このコマンドでは、使用可能な設定のIDが一覧にされます。設定IDを次のコマンドで使用します:

varstore-get <setting_ID> <VM_ID> | hexdump -C

設定の値は、無効の場合は0、有効の場合は1です。

セキュアブート仮想マシンで「テスト」ドライバーを使用できないのはなぜですか

お客様がUEFIセキュアブート仮想マシンの問題をデバッグおよび修正するためにサードパーティと協力している場合、サードパーティはテストまたは検証の目的で署名されていないドライバーを提供する場合があります。これらのドライバーは、UEFIセキュアブート仮想マシンでは機能しません。

サードパーティに署名済みのドライバーをリクエストするようにお客様に伝えます。また、お客様はUEFIセキュアブート仮想マシンをセットアップモードに切り替えて、署名されていないドライバーで実行することもできます。