Почему вложенная виртуализация не работает в VirtualBox как ожидалось?

Вопрос или проблема

Цель: Запуск Kubuntu внутри Windows 10 внутри Windows 11.

  • Гостевая система работает на Windows 11 24H2 Pro. Используется VirtualBox версии 7.1.4 r165100 (Qt6.5.3).
  • Хост-система работает на Windows 10 21H2 Pro. Используется VirtualBox версии 7.1.6 r167084 (Qt6.5.3).
  • Хост хоста пытается запустить Kubuntu 24.04.1 LTS

Диаграмма в ASCII-арт:

  Windows 11
  VirtualBox   >   Windows 10
                   VirtualBox  >  Kubuntu 

или другими словами:

+------------+
| Windows 11 |
+------------+
       │
       ▼
+------------+
| VirtualBox |
+------------+
       │
       ▼
+------------+
| Windows 10 |
+------------+
       │
       ▼
+------------+
| VirtualBox |
+------------+
       │
       ▼
+------------+
|  Kubuntu   |
+------------+

Я использую ноутбук MSI GS76 Stealth 11UH, в котором установлен процессор Intel Core i9-11900H.

Проблема: виртуальная машина в Windows 10 21H2 Pro, хостингующая Kubuntu, не запускается. Сообщение об ошибке:

VT-x недоступен

enter image description here

Скриншот во весь экран:

enter image description here


Что я пробовал и диагностировал:

Мой процессор (Intel Core i9-11900H CPU) поддерживает вложенную виртуализацию, так как HWiNFO показывает, что флаг VMX зеленый:

enter image description here

Технология виртуализации Intel включена в BIOS:

enter image description here

В Windows 11, в VirtualBox, Nested VT был отключен и неактивен:

enter image description here

Поэтому я включил его с помощью:

cd C:\Program Files\Oracle\VirtualBox
VBoxManage modifyvm "replace-with-actual-vm-name" --nested-hw-virt on

что позволило включить Nested VT в VirtualBox (и он больше не неактивен):

enter image description here

Но Kubuntu не запускается:

enter image description here

Я отключил целостность памяти в Windows 11, но это не помогло:

enter image description here

Чего я упустил? Почему вложенная виртуализация не работает? То есть почему Kubuntu не запускается нормально на Windows 10 (который, в свою очередь, уже работает нормально в Windows 11)?


Hyper-V отключен на Windows 11:

enter image description here

Hyper-V отключен на Windows 10:

enter image description here

Команда, используемая (должна быть запущена от имени администратора в PowerShell):

Get-WindowsOptionalFeature -Online | Where-Object { $_.FeatureName -like "*Hyper-V*" }

Я включил NX в VirtualBox как в Windows 11, так и в Windows 10, но ошибка “VT-x недоступен” все равно возникает:

Windows 11:

enter image description here

Windows 10:

enter image description here

HWiNFO на Windows 10:

enter image description here

Ответ или решение

Проблема использования вложенной виртуализации в вашем конкретном случае — запуск Kubuntu внутри Windows 10, который в свою очередь работает внутри Windows 11 — связана с настройками и ограничениями, которые в первую очередь относятся к VirtualBox и системным требованиям. Давайте рассмотрим, почему могут возникать ошибки и как с ними справляться.

Теория (T):

Виртуализация позволяет запускать несколько гостевых операционных систем на одном физическом оборудовании, используя гипервизор, такой как VirtualBox. Для этого критически важно, чтобы функция VT-x (виртуализация Intel) была поддержана и включена как на уровне оборудования, так и на уровне программного обеспечения, используемого гипервизором. Когда речь идет о вложенной виртуализации — когда одна виртуальная машина запускает другую, — это добавляет слой сложности, поскольку каждая из виртуальных машин должна поддерживать и правильно настраивать использование VT-x.

Пример (E):

В вашем случае структура следующая: Windows 11 (главная ОС) -> Windows 10 (первая гостевая ОС) -> Kubuntu (вторая гостевая ОС). Вот основные моменты, на которые стоит обратить внимание:

  1. HWiNFO и наличие поддержки VT-x: Вы проверили, что ваш процессор (Intel Core i9-11900H) поддерживает VT-x, и эта функция включена в BIOS. Это подтверждается наличием VMX-флага, который вы отметили в программе HWiNFO.

  2. Включение Nested VT в VirtualBox: Даже если VirtualBox первоначально не позволяет включить Nested VT напрямую через GUI, вы успешно активировали его используя команду VBoxManage modifyvm. Это критически важно для достижения вложенной виртуализации, необходимой для вашей второй гостевой ОС.

  3. Отключение Hyper-V и Memory Integrity: Вы правильно отключили Hyper-V на обеих уровнях (Windows 10 и Windows 11), так как включение Hyper-V может конфликтовать с VirtualBox, начиная с версии Windows 10 и выше, где Hyper-V может позаимствовать ресурсы VT-x, делая их недоступными для VirtualBox. Также отключение Memory Integrity может быть важно для устранения конфликтов.

Применение (A):

Учитывая вышеизложенные детали,
вот некоторые основные рекомендации для устранения проблемы:

  1. Перепроверка настроек VirtualBox на уровне Windows 11: Убедитесь, что все связанные параметры виртуализации, такие как аппаратное ускорение VT-x/AMD-V, включены не только для самой системы Windows 10, но и для VirtualBox, где запущена эта система.

  2. Обновление до последней версии VirtualBox: Хотя вы упомянули, что используете версии 7.1.4 и 7.1.6, имеет смысл убедиться, что у вас установлены самые последние обновления и исправления, так как поддержка Nested VT улучшалась в последних сборках.

  3. Проверка конфигурации BIOS: Подтвердите, что все настройки, связанные с виртуализацией в BIOS, правильно установлены. Иногда производитель BIOS продвигает обновления, которые могут улучшить поддержку виртуализации, особенно для новых процессоров или для добавления новых функций, таких как Nested VT.

  4. Диагностика системных ресурсов: Убедитесь, что ресурсы, выделенные виртуальным машинам, достаточны. Недостающие ресурсы, такие как ядра процессора или оперативная память, могут также влиять на возможность запуска вложенных виртуальных машин.

  5. Конфликты с другими программами: Имеет смысл проверить, нет ли других приложений, которые могут использовать VT-x, потенциально создавая конфликты.

Таким образом, правильная настройка всех слоев, включая BIOS, включение всех необходимых функций на уровне VirtualBox и обеспечение доступности всех системных ресурсов, являются ключом к успешной реализации вашей задачи по созданию и запуску вложенной виртуализации.

Если проблема не решается, рассматривайте возможность обращения к другим гипервизорам, таким как VMware, который может иметь другую реализацию Nested VT, или детальное обращение в поддержке Oracle для конкретных инструкций в случае, если проблема обусловлена внутренними ограничениями или ошибками в версии VirtualBox.

Оцените материал
Добавить комментарий

Капча загружается...