Can I run a 64-bit VMware image on a 32-bit machine?

64 BitVmwareVirtualizationVirtual Machine

64 Bit Problem Overview


Can I run a 64-bit VMware image on a 32-bit machine?

I've googled this, but there doesn't seem to be a conclusive answer.

I know that it would have to be completely emulated and would run like a dog - but slow performance isn't necessarily an issue as I'm just interested in testing some of my background services code on 64-bit platforms.

64 Bit Solutions


Solution 1 - 64 Bit

The easiest way to check your workstation is to download the VMware Processor Check for 64-Bit Compatibility tool from the VMware website.

You can't run a 64-bit VM session on a 32-bit processor. However, you can run a 64-bit VM session if you have a 64-bit processor but have installed a 32-bit host OS and your processor supports the right extensions. The tool linked above will tell you if yours does.

Solution 2 - 64 Bit

If you have 32-bit hardware, no, you cannot run a 64-bit guest OS. "VMware software does not emulate an instruction set for different hardware not physically present".

However, QEMU can emulate a 64-bit processor, so you could convert the VMWare machine and run it with this

From this 2008-era blog post (mirrored by 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 > > To run it, > qemu -m 256 -hda guestos.img > > The downside? Most of us runs VMware without preallocation space for the virtual disk. So, when we make a conversion from VMware to QEMU, the raw file will be the total space WITH preallocation. I am still testing with -f qcow format will it solve the problem or not. Such as: > for i in ls *[0-9].vmdk; do qemu-img convert -f vmdk $i -O qcow ${i/vmdk/qcow}; done && cat *.qcow >> debian.img

Solution 3 - 64 Bit

Yes, running a 64-bit OS in VMWare is possible from a 32-bit OS if you have a 64 bit processor.

I have an old Intel Core 2 Duo with Windows XP Professional 2002 running on it, and I got it to work.

First of all, see if your CPU is capable of running a 64-bit OS. Search for 'Processor check for 64-bit compatibility' on the VMware site. Run the program.

If it says your processor is capable, restart your computer and go into the BIOS and see if you have 'Virtualization' and are able to enable it. I was able to and got Windows Server 2008 R2 running under VMware on this old laptop.

I hope it works for you!

Solution 4 - 64 Bit

If your hardware is 32-bit only, then no. If you have 64 bit hardware and a 32-bit operating system, then maybe. See Hardware and Firmware Requirements for 64-Bit Guest Operating Systems for details. It has nothing to do with one vs. multiple processors.

Solution 5 - 64 Bit

It boils down to whether the CPU in your machine has the the VT bit (Virtualization), and the BIOS enables you to turn it on. For instance, my laptop is a Core 2 Duo which is capable of using this. However, my BIOS doesn't enable me to turn it on.

Note that I've read that turning on this feature can slow normal operations down by 10-12%, which is why it's normally turned off.

Solution 6 - 64 Bit

I honestly doubt it, for a number of reasons, but the most important one is that there are some instructions that are allowed in 32-bit mode, but not in 64-bit mode. Specifically, the REX prefix that is used to encode some instructions and registers in 64-bit mode is a byte of the form 0x4f:0x40, but in 32 bit mode the same byte is either INC or DEC with a fixed operand.
Because of this, any 64-bit instruction that is prefixed by REX will be interpreted as either INC or DEC, and won't give the VMM the chance to emulate the 64-bit instruction (for instance by signaling an undefined opcode exception).

The only way it might be done is to use a trap exception to return to the VMM after each and every instruction so that it can see if it needs special 64-bit handling. I simply can't see that happening.

Solution 7 - 64 Bit

VMware? No. However, QEMU has an x86_64 system target that you can use. You likely won't be able to use a VMware image directly (IIRC, there's no conversion tool), but you can install the OS and such yourself and work inside it. QEMU can be a bit of a PITA to get up and running, but it tends to work quite nicely.

Solution 8 - 64 Bit

VMware does not allow you to run a 64-bit guest on a 32-bit host. You just have to read the documentation to find this out.

If you really want to do this, you can use QEMU, and I recommend a Linux host, but it's going to be very slow (I really mean slow).

Solution 9 - 64 Bit

Yes, you can. I have a 64-bit Debian running in VMware on Windows XP 32-Bit. As long as you set the Guest to use two processors, it will work just fine.

Solution 10 - 64 Bit

You can if your processor is 64-bit and Virtualization Technology (VT) extension is enabled (it can be switched off in BIOS). You can't do it on 32-bit processor.

To check this under Linux you just need to look into /proc/cpuinfo file. Just look for the appropriate flag (vmx for Intel processor or svm for AMD processor)

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

To check this under Windows you need to use a program like CPU-Z which will display your processor architecture and supported extensions.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJohn SiblyView Question on Stackoverflow
Solution 1 - 64 BitDave WebbView Answer on Stackoverflow
Solution 2 - 64 BitdbrView Answer on Stackoverflow
Solution 3 - 64 BitKevinView Answer on Stackoverflow
Solution 4 - 64 BitwhatsitView Answer on Stackoverflow
Solution 5 - 64 BitJoel LucsyView Answer on Stackoverflow
Solution 6 - 64 BitNathan FellmanView Answer on Stackoverflow
Solution 7 - 64 BitSerafina BrociousView Answer on Stackoverflow
Solution 8 - 64 BitFischerView Answer on Stackoverflow
Solution 9 - 64 BitUnkwnTechView Answer on Stackoverflow
Solution 10 - 64 BitKnapsuView Answer on Stackoverflow