仮想マシンの問題のトラブルシューティング
Citrixは、以下の2つの形式のサポートを提供します:
- シトリックスWebサイトでの無料セルフヘルプサポート
- サポートサイトから購入可能な有料のサポートサービス
Citrixのテクニカルサポートを受けるには、オンラインでサポートケースを登録したり、サポート担当者に電話したりできます。
シトリックスサポートサイトでは、Citrix Hypervisorの問題解決に有用な情報が提供されています。ここでは、製品のドキュメント、ナレッジベース、ディスカッションフォーラムなどのリソースにアクセスできます。
このセクションは、仮想マシンの動作が異常な場合に問題の解決を支援することを目的としています。このセクションでは、問題についてCitrix Hypervisorソリューションプロバイダーに問い合わせる場合に必要な、アプリケーションログの場所やそのほかの情報についても説明します。
重要:
ここで説明するトラブルシューティングを実行する場合には、Citrix Hypervisorソリューションプロバイダーまたはサポートチームの指示に従うことをお勧めします。
ベンダーによるアップデート:オペレーティングシステムのベンダーが提供するアップデートを使用して、仮想マシンを最新の状態にしておきます。ベンダーから、仮想マシンのクラッシュやその他の障害に対する修正プログラムが提供されている場合があります。
仮想マシンのクラッシュ
仮想マシンのクラッシュの問題を解決するには、カーネルのクラッシュダンプ情報を参照します。可能であれば、クラッシュを再現し、この手順に従ってください。この問題の詳細な調査については、ゲストOSベンダーにお問い合わせください。
Linux仮想マシンのクラッシュダンプ動作の制御
Linux仮想マシンでのクラッシュダンプの動作は、actions-after-crash
パラメーターで制御できます。設定可能な値は、次のとおりです:
値 | 説明 |
---|---|
preserve |
仮想マシンを一時停止状態にします。(分析用) |
restart |
コアダンプを記録せずに、仮想マシンの再起動のみを実行します。(デフォルト) |
destroy |
コアダンプを記録せずに、仮想マシンを停止状態のままにします。 |
Linux仮想マシンのクラッシュダンプの保存を有効にするには:
Citrix Hypervisorサーバー上で,次のコマンドを実行して,対象の仮想マシンのUUIDを確認します:
xe vm-list name-label=name params=uuid --minimal
xe vm-param-set
を使用して、actions-after-crash
の値を変更します。たとえば、dom0で次のコマンドを実行します:xe vm-param-set uuid=vm_uuid actions-after-crash=preserve
仮想マシンをクラッシュします。
PVゲストの場合は、仮想マシンで次のコマンドを実行します。
echo c | sudo tee /proc/sysrq-trigger
dom0でダンプコアコマンドを実行します。たとえば、次のコマンドを実行します。
xl dump-core domid filename
Windows仮想マシンのクラッシュダンプ動作の制御
Windows仮想マシンでのコアダンプの動作は、actions-after-crash
パラメーターで制御できません。デフォルトでは、Windowsのクラッシュダンプは、Windows仮想マシン自体の%SystemRoot%\Minidump
に保存されます。
仮想マシンでのダンプレベルは、[マイコンピュータ]>[プロパティ]>[詳細設定]>[起動と回復]で設定できます。
Linux仮想マシンの起動の問題のトラブルシューティング
Citrix Hypervisorサーバーコントロールドメインに,xe-edit-bootloader
という名前のユーティリティスクリプトがあります。このスクリプトを使用して、シャットダウンされたLinux仮想マシンのブートローダー構成を編集し、仮想マシンが起動できない問題を修正できます。
このスクリプトを使用するには:
次のコマンドを実行します。
xe vm-list
このコマンドにより、対象の仮想マシンがシャットダウンされているかどうかを確認できます(power-stateの値はhaltedになります)。
仮想マシンのUUIDを指定して編集対象のブートローダーを開くには、次のコマンドを実行します。
xe-edit-bootloader -u linux_vm_uuid -p partition_number
または、名前ラベルを次のように使用できます:
xe-edit-bootloader -n linux_vm_name_label -p partition_number
パーティション番号には、ファイルシステムが設定されているディスクのスライスを指定します。デフォルトのDebianテンプレートの場合、最初のパーティションになるため、パーティション番号は1です。
指定した仮想マシンの
grub.conf
ファイルがエディタで表示されます。問題を解決するためファイルに変更を行い、ファイルを保存してエディターを終了し、仮想マシンを起動します。
Windows仮想マシンのUEFIおよびセキュアブートの問題のトラブルシューティング
UEFI対応の仮想マシンでXenCenterコンソールの画面の解像度を変更するにはどうすればよいですか
UEFI対応の仮想マシンでXenCenterコンソールの画面の解像度を変更するには、次の手順を実行します:
- [Windowsの設定]を開きます。
- [更新とセキュリティ]をクリックします。
- [回復]タブの[今すぐ再起動]をクリックします。
- [トラブルシューティング]>[詳細オプション]>[UEFIファームウェアの設定]の順に移動します。
- [再起動]をクリックします。再起動中に、UEFI設定メニューがロードされます。
- [Device Manager]>[OVMFプラットフォームの設定]に移動します。現在の画面の解像度が表示されます。
- 画面の解像度オプションを表示するには、Enterキーを押します。
- 矢印キーを使用して希望する画面解像度を選択し、Enterキーを押します。
- F10キーを押して変更を保存し、選択内容を確定します。
- 仮想マシンを再起動して、更新された画面の解像度でXenCenterコンソールを表示します。
UEFIセキュアブート仮想マシンを作成できないのはなぜですか
仮想マシンのオペレーティングシステムがUEFIセキュアブートモードをサポートしていることを確認します。Citrix Hypervisor 8.2では、次のオペレーティングシステムのみがセキュアブートをサポートしています: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= | 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セキュアブート仮想マシンをUEFIブート仮想マシンに変更するには、仮想マシンをホストするCitrix Hypervisorサーバーで次のコマンドを実行します:
varstore-sb-state setup
仮想マシンを修正したら、次のコマンドを実行してセキュアブートを再び有効にします:
varstore-sb-state user
セキュアブートはWindows仮想マシンで問題を引き起こしていますか
Windows仮想マシンの問題の原因が、仮想マシンに対して有効なセキュアブートであるかどうかを診断するには、セキュアブートを無効にして、問題の再現を試みます。
セキュアブートを無効にするには、仮想マシンをホストするCitrix Hypervisorサーバーで次のコマンドを実行します:
varstore-sb-state setup
問題をデバッグしたら、次のコマンドを実行してセキュアブートを再び有効にします:
varstore-sb-state user
セキュアブート仮想マシンでWindowsデバッグを実行するにはどうすればよいですか
セキュアブート仮想マシンでWindowsデバッグを実行することはできません。仮想マシンでWindowsデバッグを実行するには、次のいずれかを実行できます:
次のコマンドを実行して、仮想マシンをUEFIブートモードに切り替えます:
xe vm-param-set uuid=
platform:secureboot=false 仮想マシンを再起動します。
問題をデバッグしたら、次のコマンドを実行してセキュアブートを再び有効にします:
xe vm-param-set uuid=
platform:secureboot=auto 仮想マシンを再起動します。
仮想マシンをホストするCitrix Hypervisorサーバーで次のコマンドを実行し、セキュアブートを無効にします:
varstore-sb-state
setup 問題をデバッグしたら、次のコマンドを実行してセキュアブートを再び有効にします:
varstore-sb-state
user
UEFI仮想マシンに2つのNICしか表示されないのはなぜですか
UEFI対応の仮想マシンの作成時に3つ以上のNICをセットアップした場合でも、仮想マシンの初回起動時には、2つのNICしか表示されません。この情報は、Windows向けCitrix VM Toolsが仮想マシンにインストールされた後に正しく表示されます。
エミュレートされたデバイスが予想と異なるタイプとして表示されるのはなぜですか
UEFIセキュアブート仮想マシンはエミュレートされたデバイスにNVMEとE1000を使用します。ただし、仮想の初回起動時には、エミュレートされたデバイスが異なるタイプとして表示されます。この情報は、Windows向けCitrix VM Toolsが仮想マシンにインストールされた後に正しく表示されます。
テンプレートをBIOSモードからUEFIまたはUEFIセキュアブートモードに変換できないのはなぜですか
UEFI対応の仮想マシンテンプレートは、Citrix Hypervisorが提供するテンプレートのみから作成できます。
何かがインストールされているテンプレート、またはスナップショットから作成したテンプレートに対してはxe template-param-set
コマンドを実行しないでください。これらのスナップショットの起動モードは変更できません。また、起動モードを変更しようとすると、仮想マシンは起動に失敗します。
UEFIおよびUEFIセキュアブート変数を確認するにはどうすればよいですか
UEFIまたはUEFIセキュアブート仮想マシンがホストされているCitrix Hypervisorサーバーで、次のコマンドを実行します:
varstore-ls
このコマンドは、使用可能な変数のGUIDと名前を一覧表示します。次のコマンドでGUIDと名前を使用します:
varstore-get | hexdump -C
セキュアブート仮想マシンで「テスト」ドライバーを使用できないのはなぜですか
お客様がUEFIセキュアブート仮想マシンの問題をデバッグおよび修正するためにサードパーティと協力している場合、サードパーティはテストまたは検証の目的で署名されていないドライバーを提供する場合があります。これらのドライバーは、UEFIセキュアブート仮想マシンでは機能しません。
サードパーティに署名済みのドライバーをリクエストするようにお客様に伝えます。また、お客様はUEFIセキュアブート仮想マシンをセットアップモードに切り替えて、署名されていないドライバーで実行することもできます。