tags:

views:

23605

answers:

12

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.

A: 

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.

Nathan Fellman
VMWare wouldn't need such a trap system. When they aren't using hardware virtualization support, they check each basic block for privileged instructions and replace them with calls to their handlers. They /could/ do the same for x64 instructions, but that'd make it an emulator -- not their thing.
Cody Brocious
A: 

The short answer is - No.

Tnilsson
A: 

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.

Cody Brocious
+32  A: 

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.

Dave Webb
Awesome! Never knew this tool existed!!
sascha
The link above no longer takes you to a page that references the processor check tool. Here's a direct link: http://downloads.vmware.com/d/details/processor_check_for_64_bit_compatibility_6_0/JWpiQHBqYiVo
Phil Ross
@Phil Ross - Thanks! I have updated the link in the answer with the URL you posted.
Dave Webb
So you're saying that VMWare itself can't do it. But you could convert the image to a qemu image as explained by dbr. Or (given sufficient RAM) run VMWare from within a 64-bit host VM that was in turn a VM running in qemu or another VM utility that emulates a 64-bit processor. Complicated, but to say flat-out that it's not possible is incorrect.
intuited
A: 

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

Unkwntech
+4  A: 

If your hardware is 32 bit only, then no. If you have 64 bit hardware and a 32 bit operating system, then maybe. See:

http://kb.vmware.com/selfservice/dynamickc.do?externalId=1901&sliceId=1&command=show&forward=nonthreadedKC&kcId=1901

For details. It has nothing to do with 1 vs. multiple processors.

+10  A: 

Not with VMWare, but QEMU can emulate a 64bit processor.

From this blog post:

$ 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 downsite ? Most of us runs vmware with without preallocation space for 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
dbr
+1  A: 

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 its normally turned off.

Joel Lucsy
A: 

I am on a 32 bit XP machine (its a single core Intel 3.0ghz Pentium 4 - HP Media Center PC m7060n) and it DOES run 64 bit VM Images on this old machine. The only things I have added to this machine was extra 3gb ram chips, so now its using 4gb Ram and also changed the original 250GB HD to a 1TB Hard Drive.

I do not have any idea if that makes any changes to my machine to be capable of running 64bits, as of my Knowledge it does not make any difference. I do remember me having installed before a few Linux Distros that are 64bits and it does run well in this machine, dualbooting with XP (NOTE not through VM Images, actual OS Install on a HD Partition).

Honestly I have no clue how it does it.. but it does run 64bit on my 32bit machine.

Now as through VM Ware it runs about 30% slower the processes but It runs them. I simply want to confirm YES YOU CAN.

A: 

VMWare does not allow you to run 64-bit Guest on a 32-bit Host, you just have to read the documentation to find this out.

If you really want to to this, you can use qemu and I recommend a linux host, but its gonna be very slow. (I really mean slow).

A: 

Check this article it may help you 64 Bit Guest on 32 Bit Host and VMware

dinesh