Wednesday, October 16, 2013

Upgrading Windows Server 2008 R2 to Windows Server 2012 - UPDATED!

I recently decided to upgrade one of my virtual machines that I use to develop and write code as I figured it would be a pretty straight forward process. Boy was I wrong!

What started as a typical upgrade; validating the HCL (hardware compatibility list) for both Windows Server 2012 and VMware. Then  mounting the iso within the VM, and proceeding to do the upgrade. Turned out to be one of the biggest nightmares within the last few months.

The upgrade completed without any issues and the VM rebooted to complete the upgrade process. Usually at the point you can consider yourself "home free" as the dangerous stuff has been completed and you can sit back and relax and Windows Server does its "thing" and finishes the upgrade. However upon the "successful" upgrade an the VM rebooting I was greeted with this error!


I was immediately perplexed by this error as I have completed many "net new" installs of Windows Server 2012 and have never seen this error previously though this was my first in place upgrade.

Some digging around online lead to multiple articles all referencing to enable the No Execute Memory Protection options in the BIOS. So, I fired up UCSM to take a look at the default BIOS values. Which were in fact correct (see below)



I attempted to troubleshoot the issue and was never able to get resolution to the problem. I engaged VMware Support who reviewed the configurations and validated everything was setup correctly. Cisco TAC also reviewed the hardware configurations and validated everything was setup correctly as well. Then it was time to head to Microsoft for them to take a look. The Microsoft engineer looked at a few service settings, reviewed some logs, and then had me disable everything not essential from msconfig and we tried a reboot.

Same result! UGH!

We then ran a Microsoft Sysinternals tool called Coreinfo - http://technet.microsoft.com/en-us/sysinternals/cc835722

With this tool we could tell that the no execute disable bit was not set, but where was it not being set? We reviewed the BIOS again and that all looked correct so we determined through process of elimination it must be inside VMware somewhere!

The ESXi Host values all checked out correctly so we elected to spin up a new new Server 2012 install and compare the VMX files.

Behold! There it was! Right in front of our faces! Someone had set the "Hide CPU NX flag" value in the VM advanced settings when it should be set to "Expose"!



A quick change, a reboot, and the Server 2012 upgrade was completed with the hour! Thank God!

1 comment:

  1. This blog presented itself in a very easy and clear way. Owner of this blog found a very simple way to express its view but when you read this blog completely, you would get to know about how hard it could be to express such in a easy way. SQL Server Standard Edition

    ReplyDelete