我正在尝试使用 VMware Workstation(6.5.3.185404 和 7.0.1.227600)在 32 位主机(Hardened Gentoo Linux,内核 2.6.28-hardened-r9)上启动 64 位客户机(MacOSX 和 Windows7)。
如果在 BIOS 中禁用 VT-X,VMware 会拒绝启动 64 位客户机(正如预期的那样)。如果在 BIOS 中启用 VT-X,VMware 会毫无怨言地启动客户机,但是,大约一秒钟后(我想只要客户机尝试切换到 64 位),我的主持人重新启动(实际上,它更像是重置 - 跳过正常重启程序并立即启动 BIOS POST)。
我的硬件是 ASUS P5B-Deluxe 上的 Core 2 Duo 6600,带有最新的稳定 BIOS 1101。我关闭了系统电源,然后在 BIOS 中启用了 Vanderpool。我的 CPU 不支持可信执行技术,而且无法在 BIOS 中禁用它。此后我重启了几次,有时需要关闭电源,并确保 BIOS 中启用了 Vandertool。
我还运行了 VMware-guest64check-5.5.0-18463 工具,它报告“此主机能够在此 VMware 产品下运行 64 位客户操作系统。”。
大约一年前,我尝试禁用内核中的强化功能以确保这不是由 PaX/GrSecurity 引起的,但这没有帮助。我还没有检查启用了 VT-X 的 32 位客户机,但如果没有 VT-X,它们也可以正常工作。华硕提供了“测试版”BIOS 更新,但根据他们的描述,这些更新并不能解决这个问题,所以我不确定尝试一下是否是个好主意。
我现在猜测是主板/BIOS 出了问题。有什么想法吗?
更新 1:我尝试启动http://communities.vmware.com/docs/DOC-8978报告如下:
CPU 0: VT is enabled on this core
CPU 1: VT is enabled on this core
更新 2:我刚刚尝试使用所有可能的虚拟化模式启动 32 位客户机(Windows7、Ubuntu9.04 和 Gentoo)。在 中Automatic
,Automatic with Replay
一切Binary translation
正常,在 中,Intel VT-x/EPT or AMD-V/RVI
我收到消息“此主机不支持 EPT。使用软件虚拟化和软件 MMU。”一切正常。但在Intel VT-x or AMD-V
模式下,所有 32 位客户机都像 64 位客户机一样重置主机!所以,此问题并非仅存在于 64 位客户机中。
还有一件事。使用Intel VT-x or AMD-V
32/64 位客户机模式时,我的主机在启动虚拟机后立即重置,即在虚拟机 BIOS POST 之前和客户机开始启动之前。但使用Intel VT-x/EPT or AMD-V/RVI
虚拟机 BIOS 运行正常,然后 64 位客户机开始启动(Windows7 完成“加载文件”进度条),并且仅在主机重置之后。
答案1
编辑:我不再认为我的以下回答有用。我鼓励其他人提供其他答案。
在 32 位主机上运行 64 位客户机本来就是一件很棘手的事情。令人惊讶的是,VMware Workstation 似乎可以在有限的情况下实现这一点,但我认为使用 64 位主机操作系统会更好。
以下是我的建议:
P2V 您现有的 32 位 Gentoo 主机并确保它在 VMware Workstation 中启动。根据您是否使用固定 IP 寻址或是否可以预见其他潜在冲突,您可能需要谨慎设置虚拟网络适配器以进行此测试。
备份盒子上的所有内容,包括新的 Gentoo 虚拟机。
将其滑过并安装任何完全支持的 64 位主机操作系统。
在虚拟机中启动您现有的 32 位机器。当然,您可以在全屏模式下运行它,给它一个桥接网络适配器,并将其用作您的“主”操作系统。如果您有足够的 RAM 并给它一个自己的物理磁盘,您不应该注意到性能有任何显著的变化。
随心所欲地运行 32 位和 64 位客户操作系统。
可能存在一些原因导致您无法实现这一点,但如果您没有遇到任何阻塞问题,它可以为您提供完全支持的前进之路。
答案2
大约一年前,我尝试禁用内核强化以确保这不是由于 PaX/GrSecurity 引起的,但这没有帮助。
最后,在当前内核(测试了 2.6.32-hardened-r22 和 2.6.35-hardened-r5)中,可以通过关闭 CONFIG_PAX_MEMORY_UDEREF 来解决此问题!