Oh F@$% No, or How I Learned to Let Go and Accept the Windows Updates

Stephen Kennedy - Lead Web Developer

Illinois, May 2018

Let's set the scene. I have just dropped my fiance off at the airport early in the morning and won't see her again for three months. I get home after the drive to O'Hare, and I pull up my laptop to start off my weekend with a game or maybe just some social media and I see it:

"Working on updates. Don't turn off your computer, this will take a while."

To the message's credit, it wasn't wrong. It did take a while. It sat like that for 12 hours. When I saw the message I was disappointed, and even a little frustrated, but to this point, Windows Updates have been relatively smooth in my Windows 10 experience, minus the occasional frustrations. For those of you who keep an eye on things like this, I should probably tell you this was the April Creators Update, or "Redstone 4," which was special for two reasons.

  1. It was less of an "update" and more of a "new version of the underlying operating system." From a user's perspective outside of some pretty nice new features and some UI changes here and there, not a lot was different, but as I discovered later, the update was not unlike migrating from Windows 8 to Windows 10 in the way that it needed to interact with your files.
  2. It was part of a worldwide effort on the part of Microsoft to deliver this update to users faster than they have ever rolled out a major update.

We Have A Problem

As my job title says in the by-line, I am a web developer by trade, but I've been a computer tinkerer since I got my first hand-me-down box in grade school. At home, I have three computers (my main relatively new laptop, my last laptop which is approaching six years old and has had no fewer than four operating systems on it, and a Rasberry Pi) in addition to my smartphone and pieces of old machines that tend to get recycled into new projects. Which is to say that I'm not new to things not working exactly as intended, and I almost always have the methods and the technology to hack some solution to the problem together.

Computer components haphazardly placed into a box, but connected so that they create a functional device.Oh, don't worry, a case is really just a luxury

So, it should be doubly funny when I tell you that not only did the update fail and leave my windows unrecoverable without an external boot drive, but I didn't have any USB drives on hand to turn into a bootable drive. Now, this wasn't a new problem for me. I have previously turned a number of devices never intended to function as bootable storage into bootable storage. My favorite was an old phone that I turned into a specialty live media version of Linux to help a friend remove some viruses on their computer. There's nothing quite as ridiculous as seeing a 20 dollar blackberry knockoff plugged into a $1,000 computer, being the only thing that is going to save it from one of the worst trojans of 2014, and one of the four-horsemen of WannaCry.

To complicate the situation even further, I didn't have another computer in the house that ran Windows, and if you've ever tried to make a bootable Windows device in Linux, you know that is just short of nightmare material. It can be done, but most people don't do it, so the support for it isn't really there, and the tools that facilitate it aren't well documented, meaning fewer people do it, meaning the support doesn't improve over time.

Several computers, a tablet, and a cellphone placed on a relatively small desk.Computers, computers everywhere, but not a drop to drink.

Getting Down to Brass Tacks

So to summarize this cluster f@$%, I had three problems I needed to solve:

  1. I needed something I could turn into a bootable Windows Recovery Drive.
  2. I needed to create that drive on a Linux-based system.
  3. I needed a copy of Windows with the update already installed (because I didn't want to solve this just to have it happen again).

The first problem was the easiest, so it was the one I solved first. While I didn't have a traditional USB drive, I did have a number of old hard drives sitting around doing nothing and a USB drive dock. Using the old Linux Laptop, I migrated what files were there to a ridiculously large MicroSD card I had lying around from some project or another, and as far as any computer is concerned, once a drive is in the dock and powered up, it's just another USB Drive.

An external mounting dock for a hard-drive.These things save more lives every day...

I then skipped ahead and grabbed a copy of Windows to install to the drive and use for recovery, and luckily since I didn't get the update until May, Microsoft had already updated the version of Windows they offer for these kinds of situations to include the April 2018 update, and while there were a few minor security updates I'd have to install afterward, nothing nearly as major.

So then we had the big problem. And let me explain this a little further. Every operating system understands its relationship to the physical hardware a little differently. There are some standards, a .txt file on one operating system is still a .txt file on another, but the way these files are stored and indexed on the hard drives can vary greatly depending on what you are doing. Simply put, I had a problem where Linux could easily understand a drive formatted in all of the ways that Windows will organize a hard drive, but Windows may not exactly understand a hard drive formatted and organized by Linux unless some very specific steps are taken, or special software is installed. Long story short, because this isn't something people on Linux do regularly, there wasn't much in the way of a reliable choose-some-options-and-go application that was 100% compatible, so I ended up doing a lot of work in the Linux Terminal first formatting the drive to be bootable via the BIOS and then mirroring the Windows ISO over in a format where it could understand itself. No individual step was overly complicated once I got into it, but finding which steps were needed and assembling that research into a functional process was a process that took several hours (and one failed attempt) to achieve.

In the end, I was able to boot. But to my horror, I was unable to repair my existing Windows installation and had to re-install completely. Luckily, the installer recognized that the Hard Disk was already formatted for Windows, and it did not have to wipe out my existing files (which, in addition to losing everything saved on the computer, would have meant that there was a possibility that my Windows License may have to be replaced if the Authentication servers could not recognize my computer).

So, what happened?

Let me preface this with a little context. While I consider myself an advanced user of computers, I am not a Windows Expert, and I don't have intimate knowledge with the way Microsoft rolls out its updates, and how Windows decides when and when not to install those updates, but from what I found on my hard drive and what I do know, I do have a theory I am fairly confident in. It looks like my laptop was in the process of preparing to install the update. In this case, it seems that process involved downloading all the necessary files and building out a second Windows Directory that could be installed over the existing one during the actual installation process, but something happened. I don't know if it was a network connectivity issue, if my laptop powered down while it was doing this, or if the download just came over slightly corrupted, but these files were broken when the update attempted to install itself, but by the time the installer got to that portion of the install and locked up, enough of my existing windows installation had been replaced that it was unable to boot or recover. Practically, what this meant is that my files and documents were okay, but I had to delete two unusable copies of Windows and reinstall all of my programs (the registry and other data Windows uses to determine if a program is installed was not recovered).

In short, it was not ultimately a travesty, but it was an overly complicated process, compounded by the fact that I was not aware that it was downloading or attempting to install an update when I had last used my computer, and from what I have read online, I'm far from the only person to have an experience like this.

For your sake, I strongly recommend not going through the hassle of this. Updates are a necessary part of life, and while I don't agree with all of Microsoft's implemented policies regarding them, I do agree that security is too important to leave up to a user (by default, but it should be something that can be turned off by the end user if they desire). Which means we all have to learn to accept Windows Update, and that situations like this are a necessary evil of Windows growing as a platform, but that doesn't mean you have to bend over backwards to handle bad updates like I did. If you don't have the time or the knowledge, don't worry, Armor Techs provides full support for Windows Update recovery and re-installation of Windows. So if you've got an update that can't seem to install, we'll be happy to take the frustration off your hands.

Let us know what you think, or share your update horror stories below. We use all of them for training purposes, and we might be tempted to share the best ones on social media.

[Editor's note: it appears that Microsoft has messed up again with the release of Redstone 5. Fortunately, they are changing the way bugs are submitted during testing to help prevent this from happening again.]




Thursday October 11th, 2018#Windows Update #Microsoft #tech tales