我已经使用 VirtualBox 在虚拟机中成功安装了 Windows Vista 32 位。现在我试图对 Windows Vista 64 位进行同样的操作,但就是不行。我已经创建了虚拟机,但似乎无法从 64 位 Vista ISO 映像启动。它弹出此启动管理器错误。
主机操作系统是 64 位 Intel Core 2 Duo 处理器上的 Windows 7 64 位。现在,我做了同样的事情,在另一台计算机上安装了相同的 VirtualBox 版本,也运行 Windows 7 64 位,创建了虚拟机,然后...在虚拟机设置过程中,我注意到当我选择客户操作系统时,它有其他选项可供选择。这是屏幕截图。
您可以在中间看到那些选项,上面写着 64 位,而我在另一台电脑上没有这些选项。现在,这台电脑运行的是 Intel Core 2 Quad,这是一种高端型号。它支持 Intel 虚拟化技术,而另一台电脑不支持。
这是 Core 2 Duo 计算机上的相同对话框。以下是屏幕截图。
这可能是原因吗?这是否意味着您无法模拟 64 位 Windows 客户操作系统根本使用 VirtualBox,除非您的处理器支持 Intel 虚拟化技术?我知道这项技术可以让速度更快,但根本不允许您模拟该操作系统...这有点极端,不是吗?
如果可以的话,您建议我使用什么来代替?
答案1
VirtualBox 手册第 3.1.2 节明确指出,您需要硬件虚拟化支持才能使用 64 位客户操作系统(重点添加):
VirtualBox 支持 64 位客户操作系统,即使在 32 位主机操作系统上也可以支持,只要满足以下条件:
您需要一个具有硬件虚拟化支持的 64 位处理器(请参见第 10.3 节“硬件与软件虚拟化”)。
您必须为需要 64 位支持的特定 VM 启用硬件虚拟化;64 位 VM 不支持软件虚拟化。
如果您想在 32 位主机操作系统上使用 64 位客户机支持,您还必须为特定 VM 选择 64 位操作系统。由于在 32 位主机上支持 64 位会产生额外开销,因此 VirtualBox 仅在明确请求时才启用此支持。
来源:https://www.virtualbox.org/manual/ch03.html#intro-64bitguests
第 10.3 节也指出了这一点(强调):
VirtualBox 的 64 位客户机支持(2.0 版新增)和多处理(SMP,3.0 版新增)都需要启用硬件虚拟化(这不是什么限制,因为当今绝大多数 64 位和多核 CPU 都带有硬件虚拟化功能;这条规则的例外是例如较旧的 Intel Celeron 和 AMD Opteron CPU。)
因此,您需要一个支持 VT-x 或 AMD-V 的处理器才能在 VirtualBox 中使用 64 位客户机。然而、QEMU、Bochs 和 VMWare Player 均支持 64 位客户机,且无需硬件虚拟化支持(至少根据这一页)。
答案2
没有虚拟机管理程序支持在没有虚拟化的情况下在 x86 CPU 上运行 64 位虚拟机,因为虚拟机的隔离是不可能的没有它。
原因在维基百科(重点是我的):
x86-64(AMD64)的初始版本不允许纯软件完全虚拟化,原因是长模式下缺乏分段支持,这使得无法保护虚拟机管理程序的内存,特别是在客户内核地址空间中运行的陷阱处理程序的保护。
修订版 D 及更高版本的 64 位 AMD 处理器(一般来说,采用 90 nm 或更低工艺制造的处理器)添加了对长模式下分段的基本支持,从而可以通过二进制转换在 64 位主机上运行 64 位客户机。英特尔没有在其 x86-64 实现(英特尔 64)中添加分段支持,因此无法在英特尔 CPU 上实现 64 位纯软件虚拟化,但英特尔 VT-x 支持使得在英特尔平台上实现 64 位硬件辅助虚拟化成为可能
虚拟机还表示,缺乏虚拟化使得保护虚拟机面临挑战
虚拟化 x86-64 的挑战
- 最初的 AMD64 架构不包括 64 位模式下的分段
- EM64T 也缺少分段
我们如何保护 VMM?
- 64 位客户机支持需要额外的硬件协助
- 在较新的 AMD 处理器上,64 位模式下可进行段限制检查
- VT-x 可用于保护 EM64T 上的 VMM
- 需要采用“诱捕与模拟”方法,而非 BT 方法
阅读更多:
Intel CPU 需要芯片和 BIOS 中的 EM64T 和 VT 支持才能运行 64 位虚拟机。本文可帮助您确保您的处理器支持 VT,并指导您如何启用此功能
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944