I’ve just spent a lot of time over the last four days troubleshooting an incredibly annoying issue with my main work laptop. The good news is that I’ve discovered the cause and a workaround, but what an incredible amount of hassle and timewasting!
Don’t get me wrong, Windows 8.1 is a great product. I’ve been really impressed with most of it and overall I find it a great improvement over Windows 7, particularly in terms of reliability. It's fast and the user experience is great. However, my particular experience has been tainted by two bugs which, in my opinion, are absolute shockers. At least the one this post's title refers to is unlikely to affect the vast majority of users.
If you install Hyper-V on this particular Windows 8.1 machine (Dell Precision M4800 mobile workstation), then remove it from the docking station, when you put it back into the dock, you’ll find it goes into Automatic Repair mode reporting a boot failure. I say “this particular machine” because I’ve not tested this configuration on anything else, it’s likely not an isolated case. Delving into the errors they were a combination of ntoskrnl and ntfs.sys errors, etc. basically suggesting that somehow it gets into a tangle where it has no access to the boot drive. This makes troubleshooting really difficult because most of the stuff never ends up in the event log, so you can’t even see the actual BSOD error. In most cases just shutting it down completely and then doing a cold reboot works. On a few occasions, it was necessary to boot into safe mode (which always worked) and then reboot to get back into Windows. Occasionally, it did it on the first boot after pulling it off the dock, too.
Not exactly confidence inspiring and it made me continually concerned that one day it would crash completely and I’d be stuck with a completely dead laptop. Murphy's Law says this catastrophic failure will happen when I'm out of Sydney (and without the tools to fix it), or just before a really important client meeting which requires me to run stuff off the laptop.
I really don’t like that I can’t explain what safe mode was doing in terms of the subsequent boot. I understand it won’t load most of the drivers and hence gets around the problem, but who knows was it changes by just going into safe mode that made it work? It wasn’t a coincidence, I probably did this more than 30 times testing it to find the issue.
This has been a really infuriating ongoing issue that makes me very suspicious of Hyper-V in Win 8. I will be opening a support case with Microsoft to see if they can shed any light on it, but I haven’t got my hopes up in light of past experience. For the moment I’ll have to live without Hyper-V on this machine – at least uninstalling it did a clean enough job to work around the boot issue.
It’s also got to have been the absolute most timewasting issue I’ve tried to troubleshoot with Windows. First the docking station was replaced at the suggestion of Dell, suspecting it was a hardware issue. Then I tried moving the OS onto a different solid state drive to rule that out. I also hacked around with the UEFI settings somewhat as it seemed to be a mess with duplicate entries, but still no-go. Finally I concluded it must be a software issue so I did a clean install of Windows 8 on another drive, and successfully tested un-docking and re-docking. At this point I thought it must be some weird corruption in my Windows install so I should do a fresh install on the SSD I wanted for the OS drive, and give up. Well, in the process of loading up the miscellaneous drivers and bits and pieces, I broke the new install. Great. So I went back to the fresh install on the other drive, and loaded up the drivers one by one to test it. Still, it wouldn’t break. Finally I did a folder compare of the C:\windows\system32\drivers folder and realised the working OS didn’t have Hyper-V installed. What do you know, as soon as it was installed I broke the test install.
And the other bug? KB2919355. This has been widely documented as causing more than a few issues, and Microsoft actually re-released it. But they’ve failed to fix at least one issue. I’m yet to see a single instance of it installing successfully via Windows Update, and this is over probably 20 installs including about a dozen virtual machines, two laptops, an Intel NUC PC, and five different Intel servers with Server 2012 R2. It basically creates a reboot loop with Windows update endlessly trying to install it. 20 failures in a row, which I’ve seen, would have to hold the record. As it blocks you from receiving any future Windows updates, I hate to think how many unpatched Windows 8.1 systems are floating around. The fix is to download KB2919355 manually, then force Windows Update to check for updates again, which will let you install the rest of the updates.