Windows VM の休止機能に関するトラブルシューティング
仮想マシンを休止状態にすると、VM の状態を OS ディスクに保持できます。 この記事では、Windows の休止機能に関する問題、休止機能を使用できる Windows VM の作成に関する問題、Windows VM の休止機能の使用に関する問題のトラブルシューティング方法を説明します。
休止機能に関する一般的なトラブルシューティング ガイドについては、「Azure で休止状態のトラブルシューティングを行う」を参照してください。
Windows VM を休止状態にできない
VM を休止状態にできない場合は、まず、その VM で休止状態が有効になっているかどうかを確認します。
VM で休止状態が有効になっている場合は、ゲスト OS で休止状態が正常に有効になっているかどうかを確認します。 休止拡張機能の状態を確認すると、ゲスト OS で休止機能を使用する構成が拡張機能によって正常に設定されたかどうかを確認できます。
VM インスタンス ビューには、この拡張機能の最終的な出力が表示されます。
"extensions": [
{
"name": "AzureHibernateExtension",
"type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
"typeHandlerVersion": "1.0.2",
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"message": "Enabling hibernate succeeded. Response from the powercfg command: \tThe hiberfile size has been set to: 17178693632 bytes.\r\n"
}
]
},
さらに、休止状態が、ゲスト内でスリーブ状態として有効になっていることを確認します。 ゲストの予想される出力は、次のようになります。
C:\Users\vmadmin>powercfg /a
The following sleep states are available on this system:
Hibernate
Fast Startup
The following sleep states are not available on this system:
Standby (S1)
The system firmware does not support this standby state.
Standby (S2)
The system firmware does not support this standby state.
Standby (S3)
The system firmware does not support this standby state.
Standby (S0 Low Power Idle)
The system firmware does not support this standby state.
Hybrid Sleep
Standby (S3) isn't available.
サポートされているスリープ状態の一覧に 'Hibernate' が表示されない場合は、その状況になっている理由を検討すると、休止状態がサポートされない理由を判断するのに役立ちます。 これは、その VM でゲストの休止機能が構成されていない場合に発生します。
C:\Users\vmadmin>powercfg /a
The following sleep states are not available on this system:
Standby (S1)
The system firmware does not support this standby state.
Standby (S2)
The system firmware does not support this standby state.
Standby (S3)
The system firmware does not support this standby state.
Hibernate
Hibernation hasn't been enabled.
Standby (S0 Low Power Idle)
The system firmware does not support this standby state.
Hybrid Sleep
Standby (S3) is not available.
Hibernation is not available.
Fast Startup
Hibernation is not available.
拡張機能またはゲストのスリープ状態でエラーが報告された場合、問題を解決するには、エラーの説明に従ってゲストの構成を更新する必要があります。 すべての問題を修正した後、'powercfg /a' コマンドを実行すると、ゲスト内で休止状態が正常に有効になったことを検証できます。これにより、Hibernate がスリープ状態の 1 つとして返されるはずです。 さらに、AzureHibernateExtension が Succeeded 状態に戻っていることも確認します。 拡張機能が依然として失敗状態の場合は、reapply VM API をトリガーして拡張機能の状態を更新します
Note
この拡張機能がエラー状態のままになっている場合、VM を休止状態にすることはできません。
拡張機能がエラーになった場合によく発生する問題です。
問題点 | アクション |
---|---|
ページ ファイルが一時ディスク内にあります。 休止状態を有効にするには、それを OS ディスクに移動します。 | ページ ファイルを C: ドライブに移動し、VM で再適用をトリガーして拡張機能を再実行します |
休止ファイル用の領域が不足しているため、Windows で休止状態を構成できなかった | C: ドライブに十分な領域があることを確認します。 この問題を解決するには、OS ディスク、C: パーティションのサイズを拡張してみてください。 十分な領域が確保できたら、Reapply 操作をトリガーして、拡張機能で、ゲストでの休止状態の有効化を再試行して成功できるようにします。 |
拡張機能のエラー メッセージ: "システムに接続されているデバイスが機能していません" | C: ドライブに十分な領域があることを確認します。 この問題を解決するには、OS ディスク、C: パーティションのサイズを拡張してみてください。 十分な領域が確保できたら、Reapply 操作をトリガーして、拡張機能で、ゲストでの休止状態の有効化を再試行して成功できるようにします。 |
ゲスト内で仮想化ベースのセキュリティ (VBS) を有効にした後、休止状態がサポートされなくなる | VBS 機能と、ゲストを休止状態にする機能を共に取得するには、ゲスト内で仮想化を有効にします (ゲスト OS で仮想化を有効にする)。 |
休止状態の有効化に失敗しました。 powercfg コマンドからの応答。 終了コード: 1。 エラー メッセージ: 次のエラー コードで休止状態が失敗しました: 要求はサポートされていません。 以下の項目が、このシステムでの休止状態を妨げています。 現在の Device Guard 構成では、休止状態が無効になっています。 内部システム コンポーネントによって休止状態が無効になりました。 ハイパーバイザー | VBS 機能と、ゲストを休止状態にする機能を共に取得するには、ゲスト内で仮想化を有効にします ゲストで仮想化を有効にするには、こちらのドキュメントを参照してください |
ゲスト VM を休止状態にできない
休止状態の操作が成功すると、ゲストで次のイベントが発生します。
Guest responds to the hibernate operation (note that the following event is logged on the guest on resume)
Log Name: System
Source: Kernel-Power
Event ID: 42
Level: Information
Description:
The system is entering sleep
ゲストを休止状態にできなかった場合、これらのイベントのすべてまたは一部が発生しません。 一般的に見られる問題:
問題点 | アクション |
---|---|
Hyper-V ゲスト シャットダウン サービスが無効になっているため、ゲストを休止状態にできません。 これは、sc query vmicshutdown を実行することで確認できます。 | Hyper-V ゲスト シャットダウン サービスが無効になっていないことを確認します。 このサービスを有効にすると、問題が解決されます。 |
Power Service が無効になっているため、ゲストを休止状態にできません。 これは、sc query power を実行することで確認できます。 | Power Service が無効になっていないことを確認します。 このサービスを有効にすると、問題が解決されます。 |
HVCI (メモリ整合性) が有効になっているため、ゲストを休止状態にできません。 | ゲストのメモリ整合性が有効になっている場合、VM の休止機能を使用するには、ゲストで実行されている OS ビルドが、メモリ整合性が有効な環境で休止機能をサポートするための最小要件を満たしていることを確認します。 Win 11 22H2 – 最小 OS ビルド - 22621.2134 Win 11 21H1 - 最小 OS ビルド - 22000.2295 Win 10 22H2 - 最小 OS ビルド - 19045.3324 |
トラブルシューティングに必要なログ:
これらの既知のシナリオ以外で問題が発生した場合は、次のログが Azure での問題のトラブルシューティングに役立ちます。
- ゲストの関連イベント ログ: Microsoft-Windows-Kernel-Power、Microsoft-Windows-Kernel-General、Microsoft-Windows-Kernel-Boot。
- バグ チェック時には、ゲスト クラッシュ ダンプが役立ちます。
Windows VM を再開できない
VM を休止状態から起動した後、VM インスタンス ビューを使用して詳細情報を確認すると、ゲストが休止状態になる前の状態で正常に再開されたか、再開に失敗してコールド ブートが実行されたかを知ることができます。
ゲストが正常に再開された場合、VM インスタンス ビューには次のような出力が表示されます。
{
"computerName": "myVM",
"osName": "Windows 11 Enterprise",
"osVersion": "10.0.22000.1817",
"vmAgent": {
"vmAgentVersion": "2.7.41491.1083",
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Ready",
"message": "GuestAgent is running and processing the extensions.",
"time": "2023-04-25T04:41:17.296+00:00"
}
],
"extensionHandlers": [
{
"type": "Microsoft.CPlat.Core.RunCommandWindows",
"typeHandlerVersion": "1.1.15",
"status": {
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Ready"
}
},
{
"type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
"typeHandlerVersion": "1.0.3",
"status": {
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Ready"
}
}
]
},
"extensions": [
{
"name": "AzureHibernateExtension",
"type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
"typeHandlerVersion": "1.0.3",
"substatuses": [
{
"code": "ComponentStatus/VMBootState/Resume/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"message": "Last guest resume was successful."
}
],
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"message": "Enabling hibernate succeeded. Response from the powercfg command: \tThe hiberfile size has been set to: XX bytes.\r\n"
}
]
}
],
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"time": "2023-04-25T04:41:17.8996086+00:00"
},
{
"code": "PowerState/running",
"level": "Info",
"displayStatus": "VM running"
}
]
}
Windows ゲストが以前の状態から再開できず、コールド ブートに失敗すると、VM インスタンス ビューには、次のような応答が表示されます。
"extensions": [
{
"name": "AzureHibernateExtension",
"type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
"typeHandlerVersion": "1.0.3",
"substatuses": [
{
"code": "ComponentStatus/VMBootState/Start/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"message": "VM booted."
}
],
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"message": "Enabling hibernate succeeded. Response from the powercfg command: \tThe hiberfile size has been set to: XX bytes.\r\n"
}
]
}
],
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"time": "2023-04-19T17:18:18.7774088+00:00"
},
{
"code": "PowerState/running",
"level": "Info",
"displayStatus": "VM running"
}
]
}
再開中の Windows ゲストのイベント
ゲストが正常に再開された場合、次のゲスト イベントを実行できるようになります。
Log Name: System
Source: Kernel-Power
Event ID: 107
Level: Information
Description:
The system has resumed from sleep.
ゲストが再開できなかった場合、これらのイベントのすべてまたは一部が実行されません。 ゲストが再開できなかった原因のトラブルシューティングを行うには、次のログが必要です。
- ゲストのイベント ログ: Microsoft-Windows-Kernel-Power、Microsoft-Windows-Kernel-General、Microsoft-Windows-Kernel-Boot。
- バグ チェックでは、ゲスト クラッシュ ダンプが必要です。