Rozwiązywanie problemów z hibernacji na maszynach wirtualnych z systemem Windows
Hibernacji maszyny wirtualnej umożliwia utrwalanie stanu maszyny wirtualnej na dysku systemu operacyjnego. W tym artykule opisano sposób rozwiązywania problemów z funkcją hibernacji w systemie Windows, problemy z tworzeniem maszyn wirtualnych z systemem Windows z włączoną hibernacji i problemy z hibernacji maszyny wirtualnej z systemem Windows.
Aby wyświetlić ogólny przewodnik rozwiązywania problemów z hibernacji, zapoznaj się z artykułem Rozwiązywanie problemów z hibernacji na platformie Azure.
Nie można hibernacji maszyny wirtualnej z systemem Windows
Jeśli nie możesz hibernacji maszyny wirtualnej, najpierw sprawdź, czy hibernacji jest włączona na maszynie wirtualnej.
Jeśli hibernacji jest włączona na maszynie wirtualnej, sprawdź, czy hibernacji została pomyślnie włączona w systemie operacyjnym gościa. Możesz sprawdzić stan rozszerzenia hibernacji, aby sprawdzić, czy rozszerzenie było w stanie pomyślnie skonfigurować system operacyjny gościa pod kątem hibernacji.
Widok wystąpienia maszyny wirtualnej będzie miał końcowe dane wyjściowe rozszerzenia:
"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"
}
]
},
Ponadto upewnij się, że hibernacji jest włączona jako stan uśpienia wewnątrz gościa. Oczekiwane dane wyjściowe gościa powinny wyglądać następująco.
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.
Jeśli hibernacji nie jest wymieniony jako obsługiwany stan uśpienia, powinien istnieć przyczyna, która powinna pomóc określić, dlaczego hibernacji nie jest obsługiwana. Dzieje się tak, jeśli hibernacji gościa nie skonfigurowano dla maszyny wirtualnej.
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.
Jeśli rozszerzenie lub stan uśpienia gościa zgłasza błąd, należy zaktualizować konfiguracje gościa zgodnie z opisami błędów, aby rozwiązać ten problem. Po rozwiązaniu wszystkich problemów można sprawdzić, czy hibernacji została pomyślnie włączona wewnątrz gościa, uruchamiając polecenie "powercfg /a", które powinno zwrócić hibernacji jako jeden ze stanów uśpienia. Sprawdź również, czy rozszerzenie AzureHibernateExtension powraca do stanu Powodzenie. Jeśli rozszerzenie jest nadal w stanie niepowodzenia, zaktualizuj stan rozszerzenia, wyzwalając ponownie interfejs API maszyny wirtualnej
Uwaga
Jeśli rozszerzenie pozostanie w stanie niepowodzenia, nie można hibernacji maszyny wirtualnej.
Często występujące problemy polegające na tym, że rozszerzenie kończy się niepowodzeniem.
Problem | Akcja |
---|---|
Plik stronicowy znajduje się na dysku tymczasowym. Przenieś go na dysk systemu operacyjnego, aby włączyć hibernacji. | Przenieś plik stronicowania do dysku C: i wyzwól ponowne stosowanie na maszynie wirtualnej, aby ponownie uruchomić rozszerzenie |
Nie można skonfigurować hibernacji systemu Windows z powodu niewystarczającej ilości miejsca dla hiberfile | Upewnij się, że dysk C: ma wystarczającą ilość miejsca. Aby rozwiązać ten problem, możesz spróbować rozszerzyć dysk systemu operacyjnego, czyli rozmiar partycji C: . Po uzyskaniu wystarczającej ilości miejsca wyzwól operację Ponowne stosowanie, aby rozszerzenie mogło ponowić próbę włączenia hibernacji w gościu i zakończy się powodzeniem. |
Komunikat o błędzie rozszerzenia: "Urządzenie dołączone do systemu nie działa" | Upewnij się, że dysk C: ma wystarczającą ilość miejsca. Aby rozwiązać ten problem, możesz spróbować rozszerzyć dysk systemu operacyjnego, czyli rozmiar partycji C: . Po uzyskaniu wystarczającej ilości miejsca wyzwól operację Ponowne stosowanie, aby rozszerzenie mogło ponowić próbę włączenia hibernacji w gościu i zakończy się powodzeniem. |
Hibernacji nie jest już obsługiwana po włączeniu zabezpieczeń opartych na wirtualizacji (VBS) wewnątrz gościa | Włącz wirtualizację w gościu, aby uzyskać funkcje VBS wraz z możliwością hibernacji gościa. Włącz wirtualizację w systemie operacyjnym gościa. |
Włączanie hibernacji nie powiodło się. Odpowiedź z polecenia powercfg. Kod zakończenia: 1. Komunikat o błędzie: Hibernacja nie powiodła się z powodu następującego błędu: Żądanie nie jest obsługiwane. Następujące elementy uniemożliwiają hibernacji w tym systemie. Bieżąca konfiguracja funkcji Device Guard wyłącza hibernacji. Składnik systemu wewnętrznego wyłączył hibernacji. Funkcja hypervisor | Włącz wirtualizację w gościu, aby uzyskać funkcje VBS wraz z możliwością hibernacji gościa. Aby włączyć wirtualizację gościa, zapoznaj się z tym dokumentem |
Maszyny wirtualne gościa z systemem Windows nie mogą przeprowadzić hibernacji
Jeśli operacja hibernacji powiedzie się, w gościu są widoczne następujące zdarzenia:
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
Jeśli gość nie może przeprowadzić hibernacji, brakuje wszystkich lub niektórych z tych zdarzeń. Często występujące problemy:
Problem | Akcja |
---|---|
Nie można hibernować gościa, ponieważ usługa zamykania gościa funkcji Hyper-V jest wyłączona. Możesz to sprawdzić, uruchamiając zapytanie sc vmicshutdown. | Upewnij się, że usługa zamykania gościa funkcji Hyper-V nie jest wyłączona. Włączenie tej usługi powinno rozwiązać problem. |
Nie można przeprowadzić hibernacji gościa, ponieważ usługa Power Service jest wyłączona. Możesz to sprawdzić, uruchamiając funkcję sc query power. | Upewnij się, że usługa Power Service nie jest wyłączona. Włączenie tej usługi powinno rozwiązać problem. |
Nie można hibernować gościa, ponieważ włączono funkcję HVCI (integralność pamięci). | Jeśli integralność pamięci jest włączona na gościu i próbujesz hibernacji maszyny wirtualnej, upewnij się, że gość korzysta z minimalnej kompilacji systemu operacyjnego wymaganej do obsługi hibernacji z integralnością pamięci. Win 11 22H2 — minimalna kompilacja systemu operacyjnego — 22621.2134 Win 11 21H1 — minimalna kompilacja systemu operacyjnego — 22000.2295 Win 10 22H2 — minimalna kompilacja systemu operacyjnego — 19045.3324 |
Dzienniki potrzebne do rozwiązywania problemów:
Jeśli wystąpi problem poza tymi znanymi scenariuszami, następujące dzienniki mogą pomóc platformie Azure rozwiązać ten problem:
- Odpowiednie dzienniki zdarzeń na gościu: Microsoft-Windows-Kernel-Power, Microsoft-Windows-Kernel-General, Microsoft-Windows-Kernel-Boot.
- Podczas sprawdzania błędów pomocne jest zrzuty awaryjne gościa.
Nie można wznowić maszyny wirtualnej z systemem Windows
Po uruchomieniu maszyny wirtualnej ze stanu hibernacji można użyć widoku wystąpienia maszyny wirtualnej, aby uzyskać więcej informacji na temat tego, czy gość został pomyślnie wznowiony z poprzedniego stanu hibernacji, czy też nie wznowił pracy, a zamiast tego zrobił zimny rozruch.
Wyświetlanie danych wyjściowych wystąpienia maszyny wirtualnej po pomyślnym wznowieniu gościa:
{
"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"
}
]
}
Jeśli gość systemu Windows nie wznowi działania z poprzedniego stanu i zimnych rozruchów, odpowiedź na widok wystąpienia maszyny wirtualnej to:
"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"
}
]
}
Zdarzenia gościa systemu Windows podczas wznawiania
Jeśli gość zostanie pomyślnie wznowione, dostępne są następujące zdarzenia gościa:
Log Name: System
Source: Kernel-Power
Event ID: 107
Level: Information
Description:
The system has resumed from sleep.
Jeśli gość nie może wznowić działania, brakuje wszystkich lub niektórych z tych zdarzeń. Aby rozwiązać problemy z tym, dlaczego gość nie może wznowić działania, potrzebne są następujące dzienniki:
- Dzienniki zdarzeń gościa: Microsoft-Windows-Kernel-Power, Microsoft-Windows-Kernel-General, Microsoft-Windows-Kernel-Boot.
- W przypadku usterki wymagany jest zrzut awaryjny gościa.