为什么 VirtualBox 或 VMware 无法在 Windows 10 上启用 Hyper-V 的情况下运行

Bis*_*iyo 114 vmware virtualbox virtualization virtual-machine windows-10

我正在运行 Windows 10 Pro 64 位,启用了 Hyper-V 和 Intel VT-x 虚拟化技术。当我尝试运行 VirtualBox 64 位时,Windows 进入蓝屏。当我运行 VMware 时,它​​显示一个错误。

为什么 VirtualBox 和 VMware 不能在启用 Hyper-V 的情况下运行?请解释您拥有的所有详细信息,包括硬件和软件。我想知道这个错误的内部原因。

以下是我的一些发现。大多数站点建议使用 BCDedit 添加启动项或使用 BCDedit 禁用 Hyper-V。例如,创建一个“无管理程序”启动项在同一台机器上运行 Hyper-V 和 VirtualBox。但是我可以使用 Hyper-V运行QEMU。Qemu 没有显示任何 Hyper-V 错误并且运行流畅。

Veo*_*vis 127

VirtualBox 和 VMware Workstation(和 VMware Player)是“2 级管理程序”。Hyper-V 和 VMware ESXi 是“1 级管理程序”。

主要区别在于,2 级管理程序是在现有操作系统中运行的应用程序,而 1 级管理程序是操作系统本身。

这意味着当您启用 Hyper-V 时,您的 Windows 10“主机”将成为虚拟机。一个特殊的,但仍然是一个虚拟机。

所以你的问题更恰当地是:“为什么 VirtualBox 和 VMware Workstation 不能在 Hyper-V 虚拟机中工作?” 可以回答,因为作为 VM,Intel VT-X 指令无法再从您的虚拟机访问,只有主机可以访问它。

QEMU 之所以有效,是因为它不进行虚拟化,而是进行仿真,这是完全不同的,并且解释了 QEMU 运行缓慢的原因。虚拟化是在处理器的帮助下在另一个内部运行完整的隔离机器的过程。这要求虚拟机和主机指令兼容。

仿真是在正在运行的操作系统中运行任何机器的过程,没有平台限制,这也是 QEMU 可以在 amd64 平台上运行 ARM 机器的原因。

注意:QEMU 有 2 种操作模式:

  • 它可以作为模拟器工作,这是上面解释的模式
  • 如果来宾架构与主机兼容并且当然存在 VT 指令,则它可以在 KVM 的帮助下作为虚拟化软件工作。

  • @ user643011 - 这个答案很好地描述了这个问题,但是“作为一个虚拟机,英特尔 VT-X 指令不能再从你的虚拟机访问,只有主机可以访问它”的一部分并不完全准确。Microsoft 的 Hyper-V 选择不向客户系统公开这些指令,但使用正确的软件完全可以实现嵌套加速虚拟化。例如,VMWare 有一个选项可以将 AMD-V/Intel-vtx 暴露给称为“虚拟化 Intel-vtx/AMD-V”的来宾。这种不兼容性是由 Microsoft Hyper-V 引起的,而不是一般的嵌套虚拟化。 (6认同)
  • 为什么 VirtualBox 不能利用“Nested VT-x/AMD-V”?这是硬件的限制吗?Hyper-V? (3认同)
  • 虚拟化创建了一个完整的“假”系统,除了处理器,管理程序只会限制虚拟机可以使用的处理器时间量。因此,您只能在 arm 主机上虚拟化 arm,在 x86/amd64 主机上虚拟化 x86,在 amd64 主机上虚拟化 amd64 等等……模拟器将为为特定平台编译的二进制文件重新编译每条指令,以便在另一个平台上运行。例如,QEMU 与控制台模拟器属于同一家族(psx、dolphin、virtualboy、project64、MAME...) (2认同)

nke*_*kef 39

从 Windows Redstone 4 build 开始,QEMU 将能够通过使用Windows Hypervisor Platform API在 Hyper-V 下运行。

Windows 虚拟机管理程序平台加速器 (WHPX) 正在集成到 QEMU补丁中以进行合并

Windows 管理程序平台 API 将包含在Redstone 4 版本中

QEMU 2.12 中包含对 WHPX 的实验支持

更新:Virtualbox 6.0 添加了对 WHPX Virtualbox 6.0 Changelog 的支持。

更新 2:VMWare 将在即将发布的 VMWare Workstation 和 fusion 版本中添加对 WHPX 的支持。 VMware Workstation 和 Hyper-V – 协同工作

更新 3:具有 WHPX 支持的初始 VMWare 工作站版本。软件要求是 Windows Insiders 最低内部版本号 19041。硬件要求是 Intel Haswell 或更新的 CPU、AMD Bulldozer 或更新的 CPU。VMware Workstation Tech Preview 20H1 — Hyper-V/Host VBS 支持

  • 这个 API 理论上也可以被 VMWare 和 VirtualBox 使用。 (4认同)
  • Virtualbox 6.0' WHPX 支持非常具有 alpha 质量。它现在几乎不起作用。 (2认同)