为什么 64 位主机上的 VirtualBox 需要为 64 位客户机启用 HT?

为什么 64 位主机上的 VirtualBox 需要为 64 位客户机启用 HT?
  • 上位机是win64bit。
  • 我想要运行 64 位 Linux 客户机。
  • CPU 是 AMD 64 位 2 核。
  • 我在 BIOS 中找不到超线程 (HyperThreading) 或 VT 或 HT 选项。
  • VirtualBox 版本为:4.18

但是,VirtualBox 告诉我必须为 64-on-64 场景启用 VT/HT。

为什么这是强制性的?

我还能怎样运行 64 位客户机?

编辑 AMD Athlon 64 X2 3800+ 代号 windsor 插槽 AM2 940 带有 AMD-v 指令!

这些评论可能是正确的:看来 CPU 支持 AMD-V,但 BIOS(奖项)却不支持!

编辑:分辨率

除了答案之外,@kobaltz 是正确的:

我必须升级 BIOS 才能看到更改虚拟化支持的选项。支持是存在的,但 BIOS 没有考虑到这一点。

答案1

强制执行的原因是,在 64 位模式(称为长模式)下,大多数 64 位 CPU 不支持虚拟化软件对无辅助虚拟化的要求。

维基百科 x86 虚拟化:

为了保护虚拟机管理程序 (ring 0) 的内存不受在 ring 1 上运行的客户操作系统的影响,必须使用分段。x86-64 (AMD64) 的初始版本由于缺乏长模式下的分段支持而无法实现纯软件完全虚拟化,这使得无法保护虚拟机管理程序的内存,尤其是无法保护在客户内核地址空间中运行的陷阱处理程序。修订版 D 和更高版本的 64 位 AMD 处理器(根据经验,那些以 90 nm 或更低工艺制造的处理器)增加了对长模式下分段的基本支持,从而可以通过二进制转换在 64 位主机中运行 64 位客户机。英特尔没有为其 x86-64 实现 (Intel 64) 增加分段支持,因此无法在英特尔 CPU 上实现 64 位纯软件虚拟化,但英特尔 VT-x 支持使得在英特尔平台上实现 64 位硬件辅助虚拟化成为可能。

相关内容