Synopsis:
The host is Debian amd64, 4.3.0 kernel at the moment, running on an Intel Atom D525[1] CPU (no VT-x/d, but does run 64-bit and has NX). I'm running Virtualbox 5.0.14 from the Virtualbox-issued apt repository.
I have Windows 7 (32-bit) installed in a VM currently, and am trying to either upgrade it to Win10 or do a fresh install of Win10. I have Win10_1511_SingleLang_English_x32.iso , which I've tried to boot the VM from (hangs at the blue Win10 logo--waited over 24 hours) and upgrade from within the Windows VM. When attempting to upgrade inside Windows, I get the standard message that everyone's gotten: "This PC's processor doesn't support a critical feature (NX)."
I've read that the CPU must support NX, CMPXCHG16b, PrefetchW and LAHF/SAHF, and according to Sysinternals Coreinfo[2] run inside the VM, all of these things are present. Windows advanced system properties also reports "Your computer's hardware supports DEP" (Data Execution Prevention), which relies on NX[3].
I'm a bit confused by some of the messages I'm seeing in the VBox.log file regarding the decoded CPUID flags. Under the 'Ext Features' for 'Raw Hypervisor CPUID Leaves' there's an entry:
Mnemonic - Description = guest (host) NX - No-Execute/Execute-Disable = 0 (1)(The only instances of 'NX' in the file are the one above and "PGM: Host paging mode: AMD64+PGE+NX".) I went so far as to try to override the CPUID string for the appropriate leaf:
vboxmanage modifyvm win7 --cpuidset 80000001 00000000 00000000 00000001 00100000This did show up in the VBox.log as follow, but made no change to the later table of 'Ext Features' noted above, nor the failure to upgrade.
[/CPUM/HostCPUID/80000001/] (level 3) eax <integer> = 0x0000000000000000 (0) ebx <integer> = 0x0000000000000000 (0) ecx <integer> = 0x0000000000000001 (1) edx <integer> = 0x0000000000100000 (1 048 576)...
Raw Extended CPUID Leaves
Leaf/sub-leaf eax ebx ecx edx
Gst: 80000001/0000 00000000 00000000 00000001 00000000
Hst: 00000000 00000000 00000001 20100800
So, am I missing something? What else can I try? Am I doing something that isn't actually possible due to hardware limitations? (e.g. I understand that I can't run a 64-bit guest because the CPU lacks VT-x, but it seems like this should work.) In what I consider to be the least likely option, have I discovered a bug?Thanks! (VBox.log and showvminfo should be attached. Screenshot is here[4], if you care.)
Fake-edit: I'm not allowed to post URLs yet, so I'm doing Wikipedia-style references with oh-so-cleverly disguised links. Replace the space with a period.
[1] ark.intel com/products/49490/Intel-Atom-Processor-D525-1M-Cache-1_80-GHz
[2] technet.microsoft com/en-us/sysinternals/cc835722.aspx
[3] en.wikipedia org/wiki/Data_Execution_Prevention#Mode_of_enforcement
[4] imgur com/OCQYslG