I bought a cheap laptop for myself last Christmas, just because I wanted a laptop. A Toshiba Satellite C55-A5310 on special. I'm also a big believer in OEM software for laptops, so I left Windows 8.1 on it, stuck GParted Live USB on it, split the NTFS partition on it, and stuck Ubuntu in the new partition. That's all gone fine...
I'm old school from the days of IDE drives and legacy BIOS's, but I consider my skills to be tech savvy (don't we all?). Out of shear laziness, I haven't messed with the EFI/ESP Boot Partition because the concept is new to me, and wrapping loading code in firmware seems crazy to me, but times change, so I must adapt. Granted, I should be reading up, but I have found better ways to waste my time as of late, until now. Issue:
- Grub2 loads a shim file.
- Grub2 lives happily with the Windows Loader.
- Windows Update Updates, and kindly doesn't tell anyone that KBXXXX updates the BCD/ESP Boot Area. Since Grub2 is a "dirty foreign object", the shim is erased when KBXXXX updates the Configuration Data.
- Since I hate going in circles, I finally got rid of my lazies by installing the Refind BootManager
In the process of installing the Boot Manager using the Installing from Windows directions, and reading further I decided to install the UEFI Shell following the directions in the Installing Additional Components section. After multiple attempts of:
mountvol s: /s
copy C:\shellx64.efi S:\
I discovered 2 things that are bothering me:
- Why does
shellx64.efihave to sit in the root of the EFI drive? I'm a neatfreak, so I'd like to organize my drive...
- After multiple attempts from multiple souurces, I discovered that I don't have UEFI v. 2.3+. The UEFI Firmware link from earlier leads to v2 of the shell, which is the most current, but everytime I tried installing v2, I got an ASSERT error, as described in this mailing list post. As such, I found v1 over at the ArchWiki on UEFI, which now works like a charm, but:
- How can I upgrade my UEFI to at least 2.3, so I can use v2? or
- How can I find out what version of UEFI I have, so that I can update the shell to the closest approximation of v2 I can get, if there are any?
If this will be of help my Setup Program/BIOS Look Alike is InsydeH2O version 3.7
Things I've Learned
On the upside, I'll never have to use clunky GUI's that I never could get working, as I now know how to edit the BCD/ESP by hand, using either Linux or Windows. I've also learned I cannot get lazy when it comes to technical advances.
While this is not the answer I'm looking for, and therefore will leave the question open, I was able to get the beta version of the 2.0 shell from the Installing rEFInd Manually Using an EFI Shell, linked as Alternate x86-64 (64-bit) shell 2 for older EFIs. This is a DropBox link, so it may not last, but issuing the
ver command yields:
UEFI Interactive Shell v2.0
Copyright 2009 - 2011 Intel(r) Corporation. All rights reserved. Beta build 1.0
UEFI v2.31 (INSYDE Corp., 0x10000001)
I'd still like to know how to update to the official version.
Added 6/17/2015: Should the Dropbox Link ever rot, the beta shell can be found on the Refind CDR Image in 2 Versions, a signed version and an unsigned version. If on Linux, one can mount the image and copy/rename either version to the root of your EFI partition. Please note that even this method results in a beta build of v.2.0. I'm still leaving this question open for future suggestions, and other possibilities, such as an Answer on how to organize the EFI partition or update the beta builds...