Anyway, the options available to me were 'Keep personal files only' and 'Nothing'. There is supposed to be an option 'Keep Windows settings, personal files and applications' but it was missing. I'm supposed to see this:
But the top option in the graphic ('Keep Windows settings, personal files and applications') was missing. Damn it, I really don't have time for a clean install. I decided to do some digging and found that the Windows 8 installer does some logging.
One important install log is: C:\$WINDOWS.~BT\Sources\Panther\setupact.log
In this file I saw these interesting 3 lines:
2012-09-18 16:49:17, Info DetectedEdition = Ultimate
2012-09-18 16:49:17, Info DetectedArch = x86
2012-09-18 16:49:17, Info DetectedVersion = 6.0.6000.0
The Ultimate above is good since it's Windows 7 Ultimate, but the detected version 6.0.6000.0 correlates to Windows Vista Enterprise not Windows 7! What sort of evil witchcraft is this? This laptop has never run Vista and I resent Microsoft accusing me of such.
Virus or trojan perhaps?
I dug deeper into the log and just after "Install choices after being filtered by compatibility scan" in the log I saw this:
CONX Install choices defined by Install Matrix are: CleanInstall | DataOnly
Yep, indeed it's saying only CleanInstall ('Nothing') or Data Only ('Keep personal files'). Well that sucks.
Another line also points to Vista:
2012-09-18 16:49:17, Info CONX Host OS version: 6.0.6000.1130 (0.0) Platform 0x2, SuiteMask 0x100, ProdType 0x1
Time to get to the bottom of this. I launched Firefox and did a Google search on this issue. I clicked the result and the browser was redirected to gethotresults.com domain and avast! anti-virus gave me a red popup window telling me it blocked a virus. Sweet mother of... What now? Can't upgrade to Windows 8 and now my laptop has a virus? Browser hijacking of Google search results to other domains including gethotresults.com is pretty common, but I never get infected, so now I was pretty annoyed. I suspect a Java exploit -- that or I'm blaming my kids or wife who often borrow my laptop.
I ran a full avast! anti-virus scan, ComboFix, Malwarebytes, TDSSKiller, and a few other malware utilities. It did fine one virus which was removed. But how would a virus make the Windows 8 installer think I'm running Windows Vista? I know the Registry contains a key showing what operating system is running.
I checked it and here's the key:
"ProductName"="Windows 7 Ultimate"
"CSDVersion"="Service Pack 1"
All of the bolded parts correctly identify the operating system as Windows 7 Ultimate and not Vista. 6.1 (Windows 7) vs. 6.0 (Vista) for instance. I searched the Registry for '6.0.6000' but nothing was returned. Come to find out from a Microsoft employee that the Windows 8 installer doesn't use the Registry but rather it uses the GetVersionEx API, which can act rather funky. I was also told GetVersionEx doesn't pull from the Registry, but from a non-modifiable system file. Yeah, well somehow the virus modified this file!
After a couple hours of using various scanning utilities and the Windows 8 installer still refused to allow an in-place upgrade I thought I'd give System Restore a shot since that has a backup of the Registry and critical operating system files. I restored back to the oldest restore snapshot - May 5 2012, ironically "Cinco de Mayo", a day of celebration. Well, after the restore was complete I launched the Windows 8 installer and success! The option 'Keep Windows settings, personal files and applications appeared! Time to celebrate indeed - I might have to have some Mexican food for lunch. System Restore FTW!