我正在尝试使用 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)。
我的硬件是华硕 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提供的 vt.iso ,报告如下:
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 位来宾使用模式我的主机在启动 VM 后立即重置,即在 VM BIOS POST 之前和来宾甚至开始启动之前。但是使用Intel VT-x/EPT or AMD-V/RVI
VM BIOS 运行正常,然后 64 位客户机开始启动(Windows7 完成“加载文件”进度条),并且只有在主机重置之后。
编辑:我不再相信我在下面的回复是有用的。我会鼓励其他人提供替代答案。
在 32 位主机上运行 64 位客户机一开始是一件狡猾的事情。令人惊讶的是,VMware Workstation 显然可以在有限的情况下完成此任务,但我认为使用 64 位主机操作系统会更好。
以下是我的建议:
P2V 您现有的 32 位 Gentoo 主机,并确保它在 VMware Workstation 中启动。根据您是使用固定 IP 寻址还是可以预见其他潜在冲突,您可能需要谨慎对待虚拟网络适配器设置以进行此测试。
备份盒子上的所有东西,包括你的新 Gentoo 虚拟机。
使用它并安装任何完全支持的 64 位主机操作系统。
在 VM 中启动现有的 32 位机器。当然,您可以在全屏模式下运行它,给它一个桥接网络适配器,并将它用作您的“主要”操作系统。如果您有足够的 RAM 并给它自己的物理磁盘,您应该不会注意到性能有任何显着变化。
随心所欲地运行 32 位和 64 位来宾操作系统。
可能有原因使您无法做到这一点,但如果您没有阻塞问题,它可以为您提供完全支持的前进道路。
最后,在当前内核中(经过测试的 2.6.32-hardened-r22 和 2.6.35-hardened-r5)可以通过关闭 CONFIG_PAX_MEMORY_UDEREF 来解决这个问题!