A work colleague recently had an issue trying to install a Windows Server 2012 VM. The host was running ESXi5 with pre-configured 64-bit Win2k8 VMs. When he tried to boot off a Windows 2012 ISO image. The VM loaded with the initial Windows Server logo followed by an error.
The junior colleague felt that it might be the BIOS of the physical server didn’t support Windows 2012. The blade server was a HP ProLiant BL460c. It was a long shot but the BIOS had never been updated so I allowed him to flash it. The blade was successfully flashed from a 2007 image to a 2011 image. He tried again to install Windows Server 2012 unsuccessfully.
I took the opportunity of the ESXi host being down to perform an upgrade from ESXi 5 to ESXi 5.1. Again another long shot but all our other Windows 2012 Servers were running on ESXi 5.1. Very quickly into the upgrade processes we received the following error.
No eXecute (NX) bit is not enabled on the host. New ESXi version requires a CPU with NX/XD bit supported and enabled.
I make sure this feature is always turned on in the BIOS of our DELL blades. On our older legacy HP blades they were all off by default and never turned on. Something that now needs to be taken into account if we every want to upgrade the HP blades.
We rebooted the HP blade back into the BIOS. Once in we went to Advanced settings / Processor Option / No-Execute Memory Protection. It was set to Disabled so we changed it to Enabled. No-Execute Memory Protection is how HP describe the No eXecute (NX).
We power cycled the blade and loaded the ESXi5 Hypervisor. This time we were able to successfully boot up the Windows Server 2012 ISO image and configure and installed. Again using the opportunity, I attempted to upgrade to ESXi 5.1 on the blade. With the NX Flag enabled in the BIOS I too was able to successfully install.
So if you plan on moving to Windows Server 2012 or ESXi 5.1 anytime soon you better start checking that NX flag on your physical servers.
Thank you: it DOES solve the problem. I have a proliant 360 g4 and was getting the exact same error. 😛