Event ID 20003 Hyper-V: Не удалось запустить виртуальную машину
Архитектура VMMS и симптомы сбоя (VM Failed to Start)
Событие 20003 логируется в журнале Microsoft-Windows-Hyper-V-VMMS/Admin. Сообщение: «Службе управления виртуальными машинами Hyper-V не удалось запустить виртуальную машину [Имя_ВМ]». Служба VMMS (Virtual Machine Management Service) отвечает за координацию действий. При попытке включить (Start) виртуальную машину, она не стартует. Кнопка "Подключиться" либо выдает ошибку, либо консоль зависает. Это событие-контейнер, которое всегда сопровождается более детальными событиями (например, 12010 или 15268), объясняющими суть отказа.
Основные причины отказа (Блокировка ресурсов)
- Файл VHDX заблокирован (File in Use): Другой процесс (чаще всего Антивирус или агент Бэкапа Veeam) держит файл диска ВМ (vmsd/vhdx) открытым.
- Нехватка физической памяти (RAM): Хосту не хватает свободной оперативной памяти для выделения стартового блока (Startup RAM) для этой ВМ.
- Потеря прав доступа (Permissions): Учетная запись
NT VIRTUAL MACHINE\{GUID}потеряла NTFS-права на папку с конфигурацией ВМ (XML/VMCX).
Пошаговое дерево решений (Отладка блокировок)
Сценарий 1: Снятие блокировки с файлов VHDX (Anti-Virus / Backup)
Самая частая причина. Служба VMMS пытается запустить рабочий процесс (vmwp.exe) и открыть диск ВМ, но получает 'Access Denied' или 'Sharing Violation'.
- Откройте утилиту Resource Monitor (resmon.exe) или Process Explorer от Sysinternals на хосте.
- В поиске Handle (Дескриптор) введите путь к вашему VHDX файлу или просто его имя (например, `srv-sql.vhdx`).
- Вы увидите, какой процесс держит файл (например,
avp.exeилиveeamagent.exe). - Решение: Добавьте папки с виртуальными машинами в жесткие Исключения (Exclusions) антивируса на хосте Hyper-V. Антивирус НЕ ДОЛЖЕН сканировать VHDX файлы на лету!
Сценарий 2: Зависший рабочий процесс (Deadlock vmwp.exe)
ВМ могла зависнуть при прошлом выключении (статус >Stopping / Starting), и ее старый процесс все еще сидит в памяти, не отдавая диск новому процессу.
# Узнаем GUID зависшей ВМ и убиваем ее старый процесс (Hard Kill)
$VM = Get-VM -Name "ВАШЕ_ИМЯ_ВМ"
$Process = Get-WmiObject Win32_Process -Filter "Name='vmwp.exe'" | Where-Object {$_.CommandLine -match $VM.Id}
taskkill /PID $Process.ProcessId /FПосле убийства старого процесса ВМ перейдет в статус 'Off', и вы сможете запустить ее штатно (событие 20003 исчезнет).
Сценарий 3: Сброс прав безопасности (ICACLS)
Если ВМ переносилась (Copy/Paste) между папками вручную, права SID могли слететь. Выдайте виртуальной машине полные права на её собственные файлы:
# Замените GUID на ID вашей ВМ из консоли
icacls "C:\Hyper-V\Virtual Machines\*" /grant "NT VIRTUAL MACHINE\ВАШ_GUID_ВМ:(F)" /TТиповые ошибки администраторов
- Отказ от чтения соседних логов: 20003 — это заголовок ошибки. Реальная причина лежит в событиях, которые произошли за секунду ДО него. Ищите в журнале Hyper-V-Worker события 12010 (Недопустимый путь к диску), 32000 (Сбой реплики) или 19510 (Сбой инициализации порта vSwitch).
Траблшутинг гипервизоров и VSS-провайдеров — это сложная инженерная задача. Возьмем хосты Hyper-V на 2-ю линию поддержки. Настроим стабильные Application-Aware бэкапы Veeam, оптимизируем MPIO, разберемся с блокировками антивирусов и обеспечим 100% аптайм баз данных.
Частые вопросы (FAQ)
Почему 20003 возникает при нехватке памяти, если в настройках ВМ стоит 'Динамическая память'?
При старте ВМ гипервизор обязан выделить ей строго фиксированный объем, указанный в параметре 'Startup RAM' (ОЗУ при запуске). Функция Dynamic Memory начинает работать только ПОСЛЕ загрузки гостевой ОС и старта Интеграционных служб.
Можно ли просто перезапустить службу vmms.exe?
Да, перезапуск 'Службы управления виртуальными машинами Hyper-V' (net stop vmms & net start vmms) безопасен. Это не прервет работу уже запущенных ВМ, но сбросит кэш консоли управления и часто решает фантомные 'залипания' статусов.
Что значит 'Не удалось восстановить ВМ из сохраненного состояния'?
Если хост выключался экстренно, файл сохраненного состояния (.vsv / .bin) мог повредиться. Удалите сохраненное состояние (Delete Saved State) в диспетчере Hyper-V. ВМ загрузится как при 'холодном' старте (Crash-consistent).
Влияет ли обновление Windows на запуск ВМ?
Да. Если хост установил патчи и ожидает перезагрузки (Pending Reboot), ядро может заблокировать инициализацию новых драйверов (например, vSwitch портов), из-за чего новые ВМ не смогут включиться до ребута сервера.
Что делать, если файл VMCX поврежден?
VMCX — это бинарный файл конфигурации ВМ (в новых версиях Hyper-V). Если он поврежден (размер 0 КБ), восстановить его вручную нельзя. Придется создать новую ВМ (New Virtual Machine) и подцепить к ней старый VHDX диск.