Если ваша виртуальная машина, запущенная на хосте Hyper-V зависла по каким-то причинам, перестала отвечать, и не реагирует на кнопки включения, выключения, перезагрузки в консоли Hyper-V Manager, единственный быстрый способ принудительно остановить такую машину — завершить процесс этой ВМ в хостовой ОС. Вы можете принудительно перезапустить конкретную ВМ в Hyper-V на Windows Server 2022/2019/2016 (или бесплатного Hyper-V Server ) без перезагрузки всего сервера и запущенных на нем виртуальных машин (полезно, если у вас нет HA кластера Hyper-V и Live-Migration ).
Администраторы Hyper-V периодически сталкиваются с ситуациями, когда что одна из ВМ на хосте Hyper-V зависает в состоянии Stopping (Stopping-Critical), Starting (Starting 10%) или Backing up .
При этом гостевая ОС перестаёт отвечать, и кнопки “Turn Off”,” Shut Down” и” Reset” вв консоли Hyper-V Manager становиться недоступны или при нажатии возвращают ошибку:
Failed to change state_x000D_The operation cannot be performed while the object is in its current state_x000D_
Если ваш хост Hyper-V не показывает список зарегистрированных виртуальных машин в консоли Hyper-V Manager и возвращает ошибку “ Connecting to Virtual Machine Management service ”, вам нужно перезапустить процесс vmms. exe (служба Hyper- V Virtual Machine Management) . Это безопасная операция, которая не прервет работу запушенных виртуальных машин. Проще всего перезапустить процесс службы vmms через консоль services.msc
или PowerShell командой:
Get-Service vmms | Restart-Service
Чтобы принудительно выключить/ перезапустить зависшую виртуальную машину без перезагрузки всего хостового сервера Hyper-V, нужно завершить ее рабочий процесс на гостевой ОС. Все ВМ на хосте Hyper-V запускаются с помощью процесса vmwp.exe (Virtual Machine Worker Process) . Для поиска конкретного PID процесса нужно узнать GUID виртуальной машины.
Вы можете найти GUID ВМ в консоли управления Hyper-V Manager . Откройте настройки сервера ( Hyper-V Settings ). В разделе Server указан каталог, в котором хранятся конфигурационные файлов ВМ (в нашем примере D:VMStore).
Откройте этот каталог в File Explorer и найдите каталог с именем зависшей виртуальной машины. Скопируйте GUID, который указан в имени конфигурационного файла ВМ с расширением *.vmcx.
По аналогии вы можете найти и завершить процесс подвисшей виртуальной машины на хосте Hyper-V с помощью утилиты Process Explorer .
Виртуальная машина будет принудительно остановлена. Теперь вы сможете делать с ней все что угодно.
Гораздо проще найти и завершить процесс зависшей виртуальной машины с помощью PowerShell. Запустите консоль PowerShell с правами администратора (учетная запись должна состоять в локальной группе Hyper-V administrators).
Stop-VM –Force
, она также зависает. Очевидно ожидает ответа от ВМ. Вы также можете завершить процесс ВМ по ее VM ID. Можно получить GUID ВМ по ее имени. Например, для ВМ с именем SVM-GUARDEDHOST1, выполните команду:
$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID
Get-VM | Select VMName, VMId, Parh
Скопируйте VMID нужной вам ВМ из полученного списка.
Теперь нужно найти идентификатор процесса (PID) ‘vmwp.exe’ для вашего VMGUID:
$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})
Затем нужно принудительно завершить рабочий процесс подвисшей виртуальной машины Hyper-V с помощью команды Stop-Process :
Stop-Process ($VMWMProc.ProcessId) –Force
При выполнении резервного копирования ВМ на хосте Hyper-V вы можете столкнуться с зависанием виртуальной машины Hyper-V в состоянии Running и статусом Backing up . При этом вы не можете остановить или запустить ВМ через Hyper-V Manager.
Если вы не хотите перезагружать хост Hyper-V, проверьте сначала состояние службу «Microsoft Hyper-V VSS Writer»:
vssadmin list writers
Убедитесь, что команда не вернула ошибку. Значит нужно перезапустить службу «Hyper-V Virtual Machine Management» с помощью команды PowerShell:
Get-service vmms | stop-process
Убедитесь, что процесс vmms.exe завершен. Если нет, завершите его принудительно:
Get-Process | Where-Object { $_.ProcessName -eq 'vmms' } | Stop-Process
Теперь можно запустить службу Hyper-V:
Start-Service vmms
Перезапуск службы Virtual Machine Management должно сбросить состояние VSS Writer для Hyper-V.
Иногда бывает, что даже после завершения зависшего процесса вы не можете включить ВМ и она зависает в статусе Starting с ошибкой:
Virtual Machine Connection_x000D_Не удалось изменить состояние._x000D_Failed to Change State.
В этом случае проверьте следующие варианты:
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Если методы, описанные выше, не помогли, похоже, что вам придется перезагрузить весь хост Hyper-V.
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…