Почему VirtualBox или VMware не могут работать с Windows 10 с поддержкой Hyper-V

Я использую Windows 10 Pro 64bit с поддержкой Hyper-V, а также с технологией виртуализации Intel VT-x. Но когда я пытаюсь запустить VirtualBox, 64-битная Windows переходит в BSOD. Когда я запускаю VMware, он показывает ошибку.

У меня вопрос: почему VirtualBox и VMware не могут работать с включенным Hyper-V? Пожалуйста, объясните все детали, которые у вас есть, включая аппаратное и программное обеспечение. Я хочу знать внутреннюю причину этой ошибки.

Вот некоторые мои выводы. Большинство сайтов предлагают добавить загрузочную запись с BCDedit или отключить Hyper-V с BCDedit. например, создать загрузочную запись "без гипервизора", запустить Hyper-V и VirtualBox на одном компьютере. Но я могу запустить QEMU с Hyper-V. Qemu не показывает никаких ошибок с Hyper-V и работает без сбоев.

4 ответа

Решение

VirtualBox и VMware Workstation (или VMware Player) - это то, что мы назвали гипервизором 2-го уровня. Однако Hyper-V или VMware ESXi относятся к гипервизору 1-го уровня. Одним из основных отличий между двумя типами гипервизора является то, что первое - это приложение, работающее внутри существующая ОС, тогда как последняя является самой ОС.

Это означает, что когда вы включили Hyper-V, ваш "хост"Windows 10 стал виртуальной машиной. Особый, но тем не менее виртуальная машина.

Таким образом, ваш вопрос может быть изменен на: "Почему VirtualBox и VMware Workstation не работают внутри виртуальной машины Hyper-V?". Можно ответить, потому что как виртуальная машина инструкция Intel VT-X больше не доступна с вашей виртуальной машины, ее может иметь только хост.

QEMU работает, потому что он не выполняет виртуализацию, а эмулирует, что совершенно отличается и объясняет, почему QEMU ужасно медленный. Виртуализация - это процесс запуска полностью изолированной машины внутри другой, но с помощью процессора. Это требует, чтобы виртуальная машина и хост были совместимы с инструкциями. Эмуляция - это процесс запуска любой машины в работающей ОС, ограничения платформы нет, поэтому QEMU может запускать машину ARM на платформе amd64.

Примечание: QEMU имеет 2 режима работы:

  • он может работать как эмулятор, этот режим я объяснил выше
  • он может работать как программное обеспечение для виртуализации с помощью KVM, если гостевая архитектура совместима с хостом и, если, конечно, присутствует команда VT.

Начиная со сборки Windows Redstone 4, QEMU сможет работать под Hyper-V, используя API-интерфейс платформы Windows Hypervisor.

Ускоритель платформы Windows Hypervisor Platform (WHPX) интегрируется в QEMU, исправления передаются для слияния.

API платформы гипервизора Windows будет включен в сборку Redstone 4

Экспериментальная поддержка WHPX включена в QEMU 2.12

Обновление: Virtualbox 6.0 добавлена ​​поддержка журнала изменений WHPX Virtualbox 6.0.

Vmware 15.5+ будет работать, даже если Hyper-v включен.

С выпуском VMware Workstation/Player 15.5.5 мы очень рады и горды сообщить о поддержке хостов Windows с включенным режимом Hyper-V! Как вы, возможно, знаете, это совместный проект Microsoft и VMware.

Вот что сработало для меня.

Вам необходимо убедиться, что Hyper-V не запущен.

Контрольный тест запускает «systeminfo» из командной строки, и если вы видите «Обнаружен гипервизор». Функции, необходимые для Hyper-V, отображаться не будут», — значит, он все равно не отключен.

Действия по отключению

  1. Зайдите в BIOS вашего компьютера (обычно сегодня UEFI) и отключите TPM! В противном случае ни один из приведенных ниже шагов не сработает!

Загрузите компьютер с помощью клавиши F2 в режим настройки BIOS (альтернативные клавиши включают «Ввод» или «Удалить»). Альтернативно используйте метод Windows, чтобы попасть туда с помощью приложения «Настройки» (ссылка: https://www.maketecheasier.com/boot-uefi-from-windows10/ ) .

Зайдя в UEFIBIOS: найдите параметр «Безопасность» и разверните его. Найдите параметр «TPM», вложенный в параметр «Безопасность». Чтобы очистить TPM, вы должны установить флажок: «Очистить», чтобы очистить TPM, или «Отключить». в зависимости от производителя вашего оборудования

Сохраните эти настройки в интерфейсе UEFI, BIOS, скорее всего, попросит вас перезагрузиться (выполните следующие действия).

Загрузитесь нормально... разницы вы скорее всего не увидите.

Проверьте: systeminfo Он ​​все равно должен жаловаться на Hyper-V.

  1. Откройте Powershell в режиме администратора и введите:Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor -All

подождите, пока оно завершится... это скажет вам, что действие завершено, а не что действие было успешным.

  1. В powershell также введите:DISM/Online/Disable-Feature:Microsoft-Hyper-V.

подождите, пока оно завершится... это скажет вам, что действие завершено, а не что действие было успешным.

проверьте системную информацию еще раз — Hyper-V, вероятно, все еще в пути. Продолжайте.

  1. Отключить Windows Credential Guard. Похоже, что Hyper-V запускается независимо от настроек.

Действия для этого приведены в предоставленной ссылке, но я выделю наиболее важные:

https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage

Откройте приложение «Редактор локальной групповой политики» от Microsoft, оно уже является частью ОС.

В консоли управления групповыми политиками перейдите в Конфигурация компьютера -> Административные шаблоны -> Система -> Device Guard.

Измените «Включить безопасность на основе виртуализации» и установите для этого параметра значение «Отключено».

  1. Теперь перезапустите компьютер, выполнив обычный процесс завершения работы Windows.

  2. После повторного входа в систему запустите systeminfo, он ДОЛЖЕН показать вам

Сейчас что-то вроде этого:

Требования Hyper-V: Расширения режима монитора виртуальной машины: Да Виртуализация, включенная во встроенном ПО: Да Трансляция адресов второго уровня: Да Доступно предотвращение выполнения данных: Да

Это означает, что расширения ЦП VT-x не перехватываются Hyper-V, а механизмы виртуализации типа 2, такие как VirtualBox, могут напрямую использовать VT-x для значительного ускорения работы.

Я ожидаю, что другие технологии виртуальных машин также выиграют от этого: Hyper-V, укравший интерфейс VT-x у других технологий виртуальных машин, почти гарантирует, что платформы Windows НЕ будут использоваться в качестве хост-ОС с течением времени.

Обычному пользователю невероятно сложно отключить это, и, к сожалению, это действительно отпугивает любого, кто использует технологию VM в Windows, поскольку любая виртуализация работает довольно медленно.

Удачи. Добавьте инструкции, если считаете, что это требует более подробной информации.

Другие вопросы по тегам