Hyper-V turning a 64-bit Windows into a 32-bit OS

So, basically, the problem: When I enable Hyper-V, it turns my 64-bit Windows 8.1 PC into one running in 32-bit (or I think). Both Virtualbox and Adobe Photoshop's Design Space Preview both don't work for me. Virtualbox only displays 32-bit operating systems, and Photoshop's Options greys out the one for Design Space Preview (which is 64-bit only). That would be fine normally with Hyper-V off, but I need to use Visual Studio Emulator for Android, which (I think) requires Hyper-V. Is there any way to enable 64-bit things on my OS and make Visual Studio Emulator run? I don't really care if Hyper-V is on or not.

2

1 Answer

TL;DR:

Toggling the Hyper-V role status from any Windows edition that comes with it should not, and simply cannot, change the Host OS to 64-bit or the other way around. Your system is still the same as before.

Why?

32-bit and 64-bit are both [hardware] platform architectures, which the OS kernel must support natively. To do so, the vast majority of its components are compiled to take advantage of one architecture or the other, but never both, by explicitly targetting them.

The OS vendor - in this case, Microsoft - must then package all these components and release/sell them as separate products. That's why they come as two separated DVDs if you buy from any retail store, and you cannot seamlessly switch between them. A clean install is required.

As an exercise, you can copy any .exe file from C:\Windows\System32 (like cmd.exe or notepad.exe) to an USB drive and try loading them on a proven 32-bit system. They won't work.
If you don't have any, just load C:\Windows\SysWOW64\notepad.exe. This Notepad instance will be marked as "32 bit) if you check the Task Manager.

The SysWOW64 folder does not exist on 32-bit Windows. The name is short for "Windows On Windows64", a compatibility layer which enables 32-bit user applications to function normally. Inside this folder resides the 32-bit versions of most Windows components, in order to provide this compatibility.

So, what happened then?

Hyper-V is a Type 1 Hypervisor (Ring -1), and thus cannot co-exist with other solutions that use native hardware virtualization. Because the host OS itself runs on top of it (see here), the VMX instructions won't be available to VirtualBox and similar software:

The VT-X x86 virtualization feature is used by the Hyper-V and not available for other solutions as long as Hyper-V is installed.

If for instance the Android Studio or Microsoft Visual Studio Community HAXM Android device emulator virtual machine is needed then Hyper-V must be removed as a Windows feature in order to work. Hyper-V can be installed by default, in which case the user must remove the Hyper-V feature before using another application which requires VT-x.

Hyper-V - VT-x handles Hyper-V exclusively

(Note that you can disable Hyper-V instead of removing it completely by resourcing to the bcdedit /set hypervisorlaunchtype off command as described here).

VirtualBox is a Type 2 Hypervisor (Ring 3, with Ring 0 assistance which is provided by kernel drivers). It's capable of virtualizing the x86 (32 bits) architecture without using VT-x/AMD-V instructions, by resourcing to "Software Virtualization":

Through sophisticated techniques, VirtualBox virtualizes many guest operating systems entirely in software. This means that you can run virtual machines even on older processors which do not support hardware virtualization.
(...)
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.

10.3. Hardware vs. software virtualization - VirtualBox Technical Background

Note: Though it's not strictly emulation, performance will be lower in this scenario. Read sections 10.5 and 10.6 of the above document, and answers to this question for details.

That's why it won't show 64-bit VMs or create new ones as long as Hyper-V is enabled.


On my system, Photoshop's Design Space Preview works with Hyper-V enabled. This option is not available on the 32-bit version of Photoshop - yes, it's possible to have both versions installed at the same time - so maybe that's why it's disabled for you. Just make sure you are launching the correct Photoshop (64-bit version).

Finally...

Visual Studio Emulator for Android indeed requires Hyper-V.
In any case, you can always download Android-x86 (either 32-bit or 64-bit) and install it manually to any other hypervisor you like. This process is usually pretty straightforward. Though I personally don't use VirtualBox, it's most likely doable, I guess, since Linux and FreeBSD are both supported. You can even connect to it and debug apps from Visual Studio via ADB. See here - at the ending of the article.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like