Event ID 3324 Hyper-V-Worker: сбой вложенной виртуализации (Nested VM)
Симптомы сбоя вложенной виртуализации (Event ID 3324)
В журнале Hyper-V-Worker/Admin фиксируется ошибка: Event ID 3324: The virtual machine worker process failed to start because virtualization extensions (SLAT / VT-x / AMD-V) could not be initialized for nested virtual machine '[Имя_ВМ]'.
| Симптом | Причина |
|---|---|
| ВМ с ролью Hyper-V / Docker не стартует | На гостевую виртуальную машину не проброшены процессорные флаги виртуализации хоста |
| Сбой подсистемы WSL2 внутри виртуальной машины | WSL2 требует аппаратных инструкций виртуализации внутри ВМ |
| Конфликт Dynamic Memory с Nested Virtualization | Вложенная виртуализация не поддерживает динамическую память |
Пошаговое включение вложенной виртуализации (Event ID 3324)
Чтобы запустить гипервизор Hyper-V, Docker Desktop или WSL2 внутри виртуальной машины (Nested Virtualization), необходимо явно включить проброс инструкций процессора и отключить динамическую память.
- Выключите виртуальную машину:
# Остановка виртуальной машины:
Stop-VM -Name "ИмяВМ" -Force- Пробросьте расширения виртуализации процессора (VT-x / AMD-V) в гостевую ОС:
# Включение расширений вложенной виртуализации для процессора ВМ:
Set-VMProcessor -VMName "ИмяВМ" -ExposeVirtualizationExtensions $true- Отключите динамическую память (Dynamic Memory) для данной ВМ: вложенная виртуализация требует строго статического выделения памяти:
# Отключение Dynamic Memory и установка фиксированного объема RAM (например, 8 ГБ):
Set-VMMemory -VMName "ИмяВМ" -DynamicMemoryEnabled $false -StartupBytes 8192MB- Включите подмену MAC-адресов (MAC Spoofing) для сетевого адаптера:
# Разрешить подмену MAC-адресов для работы вложенных сетевых коммутаторов:
Get-VMNetworkAdapter -VMName "ИмяВМ" | Set-VMNetworkAdapter -MacAddressSpoofing On- Запустите виртуальную машину:
Start-VM -Name "ИмяВМ".
Требования: Вложенная виртуализация на процессорах AMD поддерживается начиная с Windows Server 2022 / Windows 10 build 19609. На процессорах Intel поддерживается в Windows Server 2016 и новее.
Частые вопросы (FAQ)
Что такое Nested Virtualization (Вложенная виртуализация)?
Это возможность запускать гипервизор Hyper-V, контейнеры Docker или эмуляторы Android внутри виртуальной машины Hyper-V.
Почему вложенная виртуализация не работает с Dynamic Memory?
Внутренний гипервизор гостевой ОС должен точно знать физические адреса страниц памяти для трансляции SLAT (EPT/NPT), что несовместимо с динамическим сжатием памяти.
Как проверить, включен ли проброс виртуализации для ВМ?
(Get-VMProcessor -VMName "ИмяВМ").ExposeVirtualizationExtensions должен вернуть True.
Зачем включать MAC Address Spoofing для вложенных ВМ?
Чтобы пакеты от виртуальных машин второго уровня вложенности могли проходить через виртуальный коммутатор хоста первого уровня.