Как остановить зависшую виртуальную машину на Hyper-V

В том случае, если ваша виртуальная машина, запущенная на Hyper-V по каким-то причинам зависла, перестала отвечать, и не реагирует на кнопки включения/выключения/перезагрузки  виртуальной машины в консоли Hyper-V, единственный быстрый способ принудительно остановить такую машину —  «пристрелить» процесс на хостовой ОС, отвечающий за данную ВМ. Покажем как это сделать на Hyper-V, работающем на Windows Server 2016.

Итак, предположим, что одна из ВМ на Hyper-V зависла, гостевая ОС перестала отвечать, а кнопки  «Turn Off», «Shut Down» и  «Reset» в консоли Hyper-V Manager стали недоступны либо при нажатии возвращают ошибку:

Failed to change state

The operation cannot be performed while the object is in its current state

The operation cannot be performed while the object is in its current state

Чтобы принудительно остановить / перезапустить такую ВМ без перезагруки всего хостового сервера, нужно завершить процесс этой ВМ. Для этого нужно узнать GUID виртуальной машины.

Определить GUID ВМ, можно открыв в консоли управления HyperV Manager настройки сервера (HyperV Settings). В разделе Server указано местоположение конфигурационных файлов ВМ (в нашем примере D:\VMStore). Настройки hyper v manager

Перейдите в данный каталог и найдите  каталог с именем вашей виртуальной машины. Нам требуется запомнить GUID, который указан в имени конфигурационных файлов ВМ.

hyper-v guid виртуальной машиныТеперь нужно запустить диспетчер задач (Task Manager) и переключится на вкладку Details. Все виртуальные машины запускаются в рамках собственного экземпляра процесса vmwp.exe. Чтобы определить какой процесс за какую ВМ отвечает, нам нужен полученный ранее GUID зависшей ВМ. Найдите процесс vmwp.exe, в столбце User name которого указан полученный GUID. Завершите данный процесс (End Task).

Завершить процесс зависшей вирулаьной машины Hyper-V
Виртуальная машина будет остановлена. Теперь вы сможете делать с ней все что угодно.
Но! Гораздо проще найти и завершить процесс зависшей виртуальной машины с помощью PowerShell. В это случае нам понадобится только ее имя.

Получим GUID для ВМ с именем SVM-GUARDEDHOST1:

Найдём идентификатор процесса ‘vmwp.exe’  для данного VMGUID:

И с помощью Stop-Process принудительно завершим этот процесс:

powershell остановить зависшую ВМ

Вот так несложно можно принудительно завершить рабочий процесс подвисшей виртуальной машины Hyper-V.

Совет. У нас также описана аналогичная процедура  по завершению процесса зависшей ВМ на хосте VMWare ESXi.
(Пока оценок нет)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x