![Hyper-V 的用途](https://linux22.com/image/1402502/Hyper-V%20%E7%9A%84%E7%94%A8%E9%80%94.png)
我只是想在 VirtualBox 虚拟机上安装 Ubuntu。VirtualBox 响应我一个错误:
VT-x 未启用
我谷歌了一下,发现这可能是由于我的 Windows 8.1 上启用了 Hyper-V 造成的。
我禁用了它,问题就解决了。然后我开始阅读有关 Hyper-V 的文章,结果发现它是 Microsoft 的一款超级出色的虚拟化工具。
虚拟化工具禁用虚拟化似乎有点奇怪。
- Hyper-V 到底是用来做什么的?
- 禁用它会有什么后果?
- 为什么它不能与 VirtualBox 一起工作?
答案1
虚拟化工具禁用虚拟化似乎有点奇怪。
要理解这一点,您需要知道使用虚拟化时系统发生的情况。
当您没有启用虚拟化时,您的系统将如下所示:
[ 硬件 ] -> [ 操作系统 ] -> [ 应用程序 ] -> [ 您 ]
当你使用 Hyper-V 时,其中会有一个额外的层:
[ 硬件 ] -> [ 虚拟化管理程序 ] -> [ 可能的多个操作系统之一 ] -> [ 该操作系统下的应用程序 ] -> [ 您 ]
通过启用 Hyper-V,您将拥有一个虚拟机管理程序,尽管您没有注意到任何差异。现在,请注意,虚拟机管理程序直接位于硬件之上使用 Hyper-V。VMWare 服务器产品也是这样。
因此,当启用 Hyper-V 时,您就“处于”虚拟机管理程序中,即使您当前仅运行 1 个“客户”操作系统(您的 Hyper-V 之前的操作系统)。
x86 硬件不支持“嵌套”虚拟机管理程序。如果启用了硬件虚拟化,则设置它的 VMXON 指令将导致“VM 退出”。因此,当虚拟机管理程序处于活动状态时,如果该虚拟机管理程序中的操作系统尝试设置虚拟化,通常虚拟机管理程序只会告诉客户操作系统不支持虚拟化。
如果虚拟机管理程序确实想允许客户操作系统使用虚拟化功能,那么它可以“模拟”硬件虚拟化,但正如您所见,Hyper-V 选择不这样做(无论如何,这很复杂)。
现在,如果您以这种方式使用 VMWare Player 或 Virtual PC:
[ 硬件 ] -> [ 操作系统 ] -> [ 在其中运行操作系统的 VM 应用程序 ] -> [ 您 ]
VMWare 播放器能够直接保持其自身的多个实例(它会安装多个驱动程序),因此您可以毫无问题地运行多个 VMWare 播放器。不过,我不确定您是否尝试过运行 VMWare 播放器和 Virtual PC - 它可能不起作用。
答案2
Hyper-V
是 Microsoft 版本的虚拟机管理程序(如 VirtualBox)。VT-x
代表英特尔在 x86 平台上的虚拟化技术。在某些主板上,可以在 BIOS 设置中启用此功能。如果不在 BIOS 中启用此功能,您的虚拟环境将不会通过底层硬件加速。
要回答您关于禁用Hyper-V
然后允许 VirtualBox 访问的问题VT-x
,请参阅此论坛http://social.technet.microsoft.com/Forums/windows/en-US/118561b9-7155-46e3-a874-6a38b35c67fd/hyperv-disables-vtx-for-other-hypervisors?forum=w8itprogeneral
因为当在 Windows 8 Pro 上安装 hyper-V 时,虚拟机管理程序会一直在主机操作系统下运行,并且为了保证稳定性,每次只有一个程序可以控制 VT 硬件。虚拟机管理程序会阻止对 VT 硬件的所有其他调用。
以下是 MS Technet 的几点建议。就我个人而言,我不会使用 Hyper-V,因为我喜欢 VirtualBox 的配置布局。如果我想要一个无头 VM,我会将实例放在我的 Proxmox 集群上。
Hyper-V 是直接在硬件上运行的无头虚拟化,而 Virtualbox 需要操作系统并且是在桌面上运行的虚拟化应用程序。
VirtualBox 是您用来直接操作虚拟机的工具,特别是当您需要声音、USB 以及非常广泛的受支持的操作系统时。
Hyper-V 旨在托管不需要大量额外桌面硬件(例如 USB)的服务器。在许多情况下,Hyper-V 应该比 VirtualBox 更快。您可以获得您期望从服务器产品中获得的集群、NIC 组合、实时迁移等功能。
答案3
Hyper-V 确实会阻止 VT-x 覆盖操作系统。但有一点对我有帮助,就是在必要时打开和关闭 Hyper-V(而不是安装/卸载,这相当困难),如所述这里使用以下命令
bcdedit /set hypervisorlaunchtype off
bcdedit /set hypervisorlaunchtype auto start
现在,您将能够在必要时使用 Heper-V 和 VirtualBox(当然不是同时使用,而是通过“单次重启”步骤)。