The Windows 8.1 update and linux

The news from the Windows front has been that there is a new update to Windows 8.1, which is supposed to cure all of the failings of Windows 8/Windows 8.1.  From the reports that I have seen, many folk are disappointed.  Apparently, the update doesn’t provide what they had been hoping for.

Apart from the disappointment, it does seem that this is a required update.  Future updates to Windows 8.1 are expected to build on this update.

Initial failure

So I went ahead and installed the update.  Or, at least, I attempted to install the update.  It’s a large update, with something like a 750M download.  There were several other updates in this weeks collection, so I told Windows to install them all.

After the download (around 850M in all), it started updating.  Then, after a while, it said that a reboot was needed.  On the reboot, it gave information about what percent was completed.  And then it told me that the update had failed, and it was restoring the status quo ante.  In total, that was around 40 minutes wasted.

That was enough of Windows for one day.  So I booted into my preferred opensuse 13.1, and got on with my day’s work.

Second time — success

My Windows 8.1 should be pretty close to a vanilla system.  So there should not have been a problem — unless …

My memory recalled a similar situation with Vista.  There, when I applied the first service pack, it installed, then was backed out after the reboot.  Using hints from the net, I discovered this was because I had set my computer to boot with grub.  So I set the system back to automatically booting into Windows Vista, and the service pack went through.

My best guess was that something similar was happening here.  Of course, a lot was different because I am now booting with UEFI.  To make UEFI booting work well, I had made some changes.  One of those — probably the important one — was to set grub as the boot manager for Windows.  I did that with:

bcdedit /set {bootmgr} path \EFI\opensuse\shim.efi

This command was run from an Administrator command prompt in Windows.

This Windows change was a workaround for the deficiencies of the Dell implementation of UEFI.  After installing opensuse, the Dell firmware would delete the Windows boot entry on the next boot.  That, by itself, was not a problem.  I could still boot Windows using the grub2-efi menu entry.  But when I did boot to Windows, that system noticed that its boot entry was missing.  So it put it back as highest priority for booting.  On the next boot, the Dell firmware deleted the opensuse boot entry, locking the system out of booting linux.

The change given above with “bcdedit” was a workaround.  It told Windows to call grub as its boot manager.  The grub2-efi menu could still boot Windows, so everything worked.

My best guess was that this change I had made was what caused me problems installing that Windows 8.1 update.  So I undid that change with:

bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi

again, run from an Administrator command prompt within Windows.

For good measure, I also made sure that Windows was the first boot choice.  I did that from linux, using the “-o” option to the “efibootmgr” command, though I could have also done that in the BIOS settings for the computer.

With those changes, I retried the Windows 8.1 update.  And it worked without problems.

In conclusion

Once I had Windows 8.1 up and running with the update, I reapplied my change to the booting setup (the first “bcdedit” command shown above).  With that, I was again presented with the familiar grub2-efi menu on boot, and could get back into opensuse.

With only my own test case, I cannot be sure that what I did made all the difference.  However it seems likely.

My advice:  prior to installing the Windows 8.1 update, restore the boot setup to what it was immediately after Windows was installed.  You do not need to delete the linux boot code from the EFI partition.  But you should make sure that Windows is the first in the boot order.  After the update is installed, you can switch things back to the way that you prefer.



Tags: , ,

About Neil Rickert

Retired mathematician and computer scientist who dabbles in cognitive science.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: