我可以在32位计算机上运行64位VMware映像吗?


89

我可以在32位计算机上运行64位VMware映像吗?

我已经用谷歌搜索了,但是似乎没有一个确定的答案。

我知道它必须被完全模拟并像狗一样运行-但性能降低并不一定是问题,因为我只想在64位平台上测试我的某些后台服务代码。


我可以给你一个方法来安装一个64位的基于虚拟机,甚至无需安装诸如VMware或超V管理程序。
user2050269

Answers:


123

检查工作站的最简单方法是从VMware网站下载VMware Processor Check for 64-Bit Compatibility工具。

您不能在32位处理器上运行64位VM会话。但是,如果您具有64位处理器但已安装32位主机OS,并且您的处理器支持正确的扩展,则可以运行64位VM会话。上面链接的工具会告诉您是否这样做。


3
太棒了!从来不知道这个工具的存在!
saschabeaumont 2009年

5
上面的链接不再将您带到引用处理器检查工具的页面。这里有一个直接链接:downloads.vmware.com/d/details/...
菲尔·罗斯

3
@Phil Ross-谢谢!我已经用您发布的URL更新了答案中的链接。
Dave Webb

2
因此,您说的是VMWare本身无法做到。但是您可以按照dbr的说明将图像转换为qemu图像。或者(如果有足够的RAM)从64位主机VM(又是在qemu中运行的VM或另一个模拟64位处理器的VM实用程序)中运行VMWare。很复杂,但是要说不可能,这是不正确的。
直觉

1
这也是Windows和Linux版本的链接:my.vmware.com/web/vmware/details/processor_check_5_5_dt/…–
jrace

30

如果您具有32位硬件,否,则不能运行64位来宾OS。 “ VMware软件不会为物理上不存在的其他硬件模拟指令集”

但是,QEMU 可以仿真64位处理器,因此您可以转换VMWare计算机并以此运行它

这个2008年代的博客文章(由archive.org反映)

$ cd /path/to/vmware/guestos
$ for i in \`ls *[0-9].vmdk\`; do qemu-img convert -f vmdk $i -O raw {i/vmdk/raw};done
$ cat *.raw >> guestos.img

要运行它

qemu -m 256 -hda guestos.img

不足之处?我们大多数人在没有为虚拟磁盘预分配空间的情况下运行VMware。因此,当我们从VMware转换为QEMU时,原始文件将是具有预分配空间的总空间。我仍在测试-f qcow格式是否可以解决问题。如:

for i in `ls *[0-9].vmdk`; do qemu-img convert -f vmdk $i -O qcow ${i/vmdk/qcow}; done && cat *.qcow >> debian.img

10

是的,如果您具有64位处理器,则可以从32位OS中在VMWare中运行64位OS。

我有运行Windows XP Professional 2002 的旧版Intel Core 2 Duo,并且可以正常使用。

首先,查看您的CPU是否能够运行64位OS。在VMware网站上搜索“处理器检查64位兼容性”。运行程序。

如果显示处理器能力,请重新启动计算机并进入BIOS,查看您是否具有“虚拟化”功能并能够启用它。我能够在旧笔记本电脑上的VMware环境下运行Windows Server 2008 R2。

我希望这个对你有用!


2
Core 2 Duo是64位处理器。有趣的是,它可以在Windows XP的32位版本的VMWare中运行。
约翰·西伯里

1
首先,您说可以在32位处理器上运行64位操作系统,然后说应该检查处理器是否为64位?
kyrias 2012年

我正在使用32位,2GB RAM,Windows7。嘿,我的VM正在给出此错误drive.google.com/file/d/0B9LzXNh-gDLNVml5bHl0clZIdUk/…–
感觉不错,正在编程


4

归结为您机器中的CPU是否具有VT位(虚拟化),并且BIOS使您可以将其打开。例如,我的笔记本电脑是Core 2 Duo是能够使用此功能的。但是,我的BIOS无法使我打开它。

请注意,我已经读到,启用此功能会使正常操作速度降低10-12%,这就是通常将其关闭的原因。


3

老实说,出于多种原因,我对此表示怀疑,但最重要的是,有些指令在32位模式下是允许的,但在64位模式下是不允许的。具体来说,用于在64位模式下对某些指令和寄存器进行编码的REX前缀是格式为0x4f:0x40的字节,但是在32位模式下,同一字节是具有固定操作数的INC或DEC。
因此,任何以REX为前缀的64位指令都将被解释为INC或DEC,并且不会给VMM提供模拟64位指令的机会(例如,通过发信号通知未定义的操作码异常)。

唯一可行的方法是在每条指令之后使用陷阱异常返回到VMM,以便它可以查看是否需要特殊的64位处理。我根本看不到这种情况。


1
VMWare不需要这样的陷阱系统。当他们不使用硬件虚拟化支持时,他们会检查每个基本块中是否有特权指令,并将其替换为对处理程序的调用。他们/可以/对x64指令做同样的事情,但是那会使它成为模拟器-而不是他们的事。
科迪·布罗维奇

3

VMware?不可以。但是,QEMU具有可以使用的x86_64系统目标。您可能将无法直接使用VMware映像(IIRC,没有转换工具),但是您可以自己安装OS等,然后在其中运行。QEMU可以用作启动和运行的PITA,但是它通常可以很好地工作。


3

VMware不允许您在32位主机上运行64位来宾。您只需要阅读文档即可找到答案。

如果您确实想执行此操作,则可以使用QEMU,并且我建议使用Linux主机,但是它将非常缓慢(我的意思是缓慢)。


2

是的你可以。我有一个在Windows XP 32位上的VMware中运行的64位Debian。只要将Guest设置为使用两个处理器,它就可以正常工作。


1

如果处理器是64位并且启用了虚拟化技术(VT)扩展(可以在BIOS中关闭),则可以。您不能在32位处理器上执行此操作。

要在Linux下进行检查,您只需查看/ proc / cpuinfo文件。只需查找适当的标志(用于Intel处理器的vmx或用于AMD处理器的svm

egrep '(vmx|svm)' /proc/cpuinfo

要在Windows下检查此情况,您需要使用CPU-Z之类的程序,该程序将显示您的处理器体系结构和受支持的扩展。


1
据我了解约翰想在32位处理器上运行的虚拟机
的GaborLipták
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.