Не удалось запустить виртуальную машину (Hyper-V) / Failed to start the virtual machine
#Основные причины
ВМ не запускается, когда на хосте не хватает оперативной памяти для её запуска, виртуальный диск занят другим процессом или повреждён цепочкой снимков, у службы виртуальных машин нет прав на файлы, отключена аппаратная виртуализация в BIOS, включена несовместимая вложенная виртуализация или конфликтуют версии конфигурации. Точную причину показывает журнал событий Hyper-V, поэтому начните с него.
#Причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не хватает памятиМало ОЗУ на хосте. | Ошибка 0x8007000E. | Уменьшите стартовую память или остановите ВМ. |
| Диск занятДругой процесс держит VHDX. | Ошибка 0x80070020. | Остановите процесс, закройте резервное копирование. |
| Нет правНе выданы права службе. | Ошибка 0x80070005. | Выдайте права. |
| Повреждены снимкиЦепочка AVHDX нарушена. | Test-VHD ошибка. | Восстановите из резервной копии. |
| Виртуализация отключенаBIOS. | Ошибка 0xC035001E. | Включите VT-x/AMD-V. |
| Несовместимая версия конфигурацииИмпорт со старого хоста. | Не запускается после переноса. | Update-VMVersion. |
#Порядок
- Прочитайте журнал событий Hyper-VНа узле Hyper-V с правами администратора откройте «Просмотр событий»: Win+R →
eventvwr.msc→ «Журналы приложений и служб → Microsoft → Windows → Hyper-V-VMMS → Admin» и «Hyper-V-Worker → Admin». Найдите событие по времени неудачного запуска и запишите ID и полный текст. Эти журналы точнее общей вкладки «Приложение»; по ним можно отличить нехватку памяти, недоступный VHDX и ошибки прав. - Проверьте свободную память хоста и запасОткройте «Диспетчер Hyper-V» и выберите узел, затем ВМ → «Параметры → Память»; сравните стартовую память с доступной на хосте. В PowerShell администратора
Get-VM | Select Name,State,MemoryAssigned,MemoryStartupиGet-CimInstance Win32_OperatingSystemпомогут оценить ресурсы. Не останавливайте другие рабочие ВМ без согласования, и не ставьте для проблемной ВМ минимум ниже требований гостевой ОС. - Проверьте пути и права на VHDXВыберите проблемную виртуальную машину и откройте «Параметры → Контроллер SCSI/IDE → Жёсткий диск», запишите путь к VHDX. Через PowerShell администратора проверьте
Get-VMHardDiskDrive -VMName "РЕАЛЬНОЕ_ИМЯ"иTest-VHD -Path "РЕАЛЬНЫЙ_ПУТЬ". Путь и имя замените; проверка чтения не исправляет диск. При ошибкеAccess deniedизучите ACL файла и конфигурацию службы, не выдавайте Full Control неизвестному идентификатору. - Проверьте цепочку снимковЕсли к виртуальной машине подключены контрольные точки, в «Диспетчере Hyper-V» откройте дерево контрольных точек и проверьте, что все диски AVHDX и их родительские VHDX доступны. Не удаляйте файлы AVHDX вручную — они могут содержать изменения после снимка. Перед объединением цепочки создайте согласованную резервную копию и сверяйтесь с официальной процедурой Hyper-V; при повреждении остановитесь и привлеките администратора хранилища.
- Убедитесь, что служба виртуализации работаетНа хосте откройте PowerShell с повышенными правами и выполните
Get-Service vmms,vmcompute. ОжидаетсяRunningдля нужных служб. Если они остановлены, сначала проверьте журнал Hyper-V и состояние зависимостей, затем запускайте службу штатными средствами только в предусмотренном окне обслуживания. Перезапуск VMMS на работающем узле не является первым диагностическим действием. - Проверьте виртуализацию в BIOS/UEFIЕсли роль Hyper-V не работает после установки, проверьте
Get-WindowsFeature Hyper-Vиsysteminfo; наличие аппаратной виртуализации и её включение должны соответствовать требованиям версии Windows Server. Не меняйте BIOS/UEFI удалённо без доступа к консоли управления и плана восстановления: неправильная настройка может остановить весь хост. Изменения BIOS выполняет администратор оборудования. - Проверьте ВМ на кластерном хранилищеЕсли ВМ хранится на CSV в отказоустойчивом кластере, откройте «Диспетчер отказоустойчивости кластеров» и найдите роль ВМ и диск общего тома. Проверьте состояние узлов, путь к VHDX и права согласно журналу; любые операции с общим хранилищем согласуйте с администратором кластера. После исправления запустите одну ВМ и наблюдайте за событиями, не перемещайте все роли одновременно.
- Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
Если нужно запустить ВМ немедленно, а память на хосте исчерпана, остановите малозначимые ВМ командой Stop-VM -Name ИмяВМ и повторите запуск. После запуска установите динамическую память с разумным максимумом, чтобы не повторять проблему.
#Вложенная виртуализация и процессор
Если Hyper-V запущен внутри виртуальной машины, для вложенной виртуализации необходимо включить расширения на хосте. Для VMware отметьте «Expose hardware-assisted virtualization», для Hyper-V выполните команду на внешнем хосте. Также ВМ второго поколения требует поддержки UEFI: образ с загрузчиком BIOS не запустится как Generation 2.
Get-VM -Name "ИмяВМ" | Select-Object Name,State,Version# Изменение вложенной виртуализации и MAC-спуфинга не относится к типовой ошибке запуска.Get-VM "ИмяВМ" | Select Name, Generation, VersionGet-VMFirmware "ИмяВМ" | Select SecureBoot, SecureBootTemplateДля Linux-ВМ второго поколения измените шаблон безопасной загрузки: Set-VMFirmware "ИмяВМ" -SecureBootTemplate MicrosoftUEFICertificateAuthority.