64-bit Windows guest in VirtualBox impossible without VT-x support? [duplicate]
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:
You need a 64-bit processor with hardware virtualization support (see Section 10.3, “Hardware vs. software virtualization”).
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.
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).
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