10

I have successfully installed Windows Vista 32-bit in a VM with VirtualBox. Now I'm trying to do the same with Windows Vista 64-bit and it just isn't working. I have created the VM but it seems that it won't boot off of the 64-bit Vista ISO image. It spits out this boot manager error.

a

The host OS is Windows 7 64-bit on a 64-bit Intel Core 2 Duo processor. Now, I have done the same thing and installed the same VirtualBox version on another computer, also running Windows 7 64-bit, created the VM, and then... during the VM setup process I noticed that it had additional options to choose from when I pick the guest Os. Here's a screenshot.

b

You can see those options in-between where it says 64-bit, I don't have those options on that other computer. Now, this one runs an Intel Core 2 Quad, a higher end model. It supports Intel virtualization technology, while the other one does not.

This is what the same dialog looks like on the Core 2 Duo computer. Here's a screenshot.

c

Could this be the reason why? Does that mean that you can't emulate a 64-bit Windows guest OS at all with VirtualBox, unless your processor supports Intel virtualization technology? I understand that this technology makes things much faster, but not letting you emulate that OS at all... that's a bit extreme, no?

If so, what do you suggest I use instead?

4
  • @Ramhound Did you just ask if I'm sure I'm running a 64-bit operating system and then changed your mind? I got the comment in my inbox. Well, for whatever it's worth, yes, I'm sure both computers are running 64-bit version of Windows 7.
    – Samir
    May 3, 2014 at 16:14
  • @Ramhound Limitation of the hardware? So you concur, this has to do with VT-x support, or rather the lack thereof?
    – Samir
    May 3, 2014 at 16:15
  • Regardless of hardware limitations, you should always be able to do things in software. That's one of the benefits of virtualization, because it allows you to completely replace physical hardware in software. I know Intel VT-x is good to have, but why should you not be able to emulate 64-bit OS in VirtualBox all in software, even if it's extremely slow? Why don't they allow you to do that? This is rather a limitation in VirtualBox.
    – Samir
    May 3, 2014 at 16:25
  • Emm... don't you mean "you can't do something in software if the hardware does not support it"?
    – Samir
    May 3, 2014 at 16:51

2 Answers 2

20

Section 3.1.2 of the VirtualBox manual explicitly states that you need hardware virtualization support to use 64-bit guest operating systems (emphasis added):

VirtualBox supports 64-bit guest operating systems, even on 32-bit host operating systems, provided that the following conditions are met:

  1. You need a 64-bit processor with hardware virtualization support (see Section 10.3, “Hardware vs. software virtualization”).

  2. You must enable hardware virtualization for the particular VM for which you want 64-bit support; software virtualization is not supported for 64-bit VMs.

  3. If you want to use 64-bit guest support on a 32-bit host operating system, you must also select a 64-bit operating system for the particular VM. Since supporting 64 bits on 32-bit hosts incurs additional overhead, VirtualBox only enables this support upon explicit request.

Source: https://www.virtualbox.org/manual/ch03.html#intro-64bitguests

Section 10.3 also states this (emphasis added):

VirtualBox's 64-bit guest support (added with version 2.0) and multiprocessing (SMP, added with version 3.0) both require hardware virtualization to be enabled. (This is not much of a limitation since the vast majority of today's 64-bit and multicore CPUs ship with hardware virtualization anyway; the exceptions to this rule are e.g. older Intel Celeron and AMD Opteron CPUs.)

Source: https://www.virtualbox.org/manual/ch10.html#hwvirt

Thus, you need a processor that supports VT-x or AMD-V to use 64-bit guests with VirtualBox. However, QEMU, Bochs and VMWare Player all support 64-bit guests without hardware virtualization support (at least according to this page).

7
  • Yeah... and that's unfortunate. I thought that referred only to 64-bit guests on 32-bit hosts. But from chapter 10 they specifically say that hardware virtualization is a requirement. I wonder though, how come that this is not a requirement for 32-bit guests? Why only 64-bit?
    – Samir
    May 3, 2014 at 16:40
  • I have given you an up-vote even though I have already posted this exact text in my own answer. Thanks for the effort! I will merge my answer with yours if that's OK.
    – Samir
    May 3, 2014 at 16:44
  • Do you know any other virtualization software (preferably free and open source) that can emulate a 64-bit Windows without the hardware virtualization support?
    – Samir
    May 3, 2014 at 16:46
  • @sammyg it looks like QEMU, Bochs and VMWare Player all support it, see my latest revision.
    – nc4pk
    May 3, 2014 at 16:52
  • Not true. VMware player also requires virtualization to run 64-bit guess and so are other hypervisors. You can only run 64-bit guess without virtualizations on an emulator such as Bochs or qemu or a paravirtualization software such as Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
    – phuclv
    Jun 5, 2014 at 8:42
1

No virtual machine hypervisors support 64-bit virtual machines in an x86 CPU without virtualization, because isolation of the virtual machine would be impossible without it.

The reason was mentioned in Wikipedia (emphasis mine):

The initial version of x86-64 (AMD64) did not allow for a software-only full virtualization due to the lack of segmentation support in long mode, which made the protection of the hypervisor's memory impossible, in particular, the protection of the trap handler that runs in the guest kernel address space.

Revision D and later 64-bit AMD processors (as a rule of thumb, those manufactured in 90 nm or less) added basic support for segmentation in long mode, making it possible to run 64-bit guests in 64-bit hosts via binary translation. Intel did not add segmentation support to its x86-64 implementation (Intel 64), making 64-bit software-only virtualization impossible on Intel CPUs, but Intel VT-x support makes 64-bit hardware assisted virtualization possible on the Intel platform

VMWare also said that the lack of virtualization makes it challenges the protection the VM

Challenges of Virtualizing x86-64

  • Initial AMD64 architecture did not include segmentation in 64-bit mode
    • Segmentation also missing from EM64T

How do we protect the VMM?

  • 64-bit guest support requires additional hardware assistance
    • Segment limit checks available in 64-bit mode on newer AMD processors
    • VT-x can be used to protect the VMM on EM64T
      • Requires trap-and-emulate approach instead of BT

Read more:

Intel CPUs require EM64T and VT support in the chip and in the BIOS to run 64-bit virtual machines. This article helps you ensure your processor is VT-capable, and it also instructs you on how to enable this feature
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944


The only way in this case is using an emulator like QEMU or Bochs, or a paravirtualization software like Xen.

Read more: Running x86-64 ASM on a x86-32 processor

Not the answer you're looking for? Browse other questions tagged .