My less than a year old, Thinkpad x230 just got back from repairs – a dead motherboard. Thinkpads maybe tough but not tough enough for “The Mehul Test” :-P, this is the 2nd Thinkpad that’s suffered the same fate in my hands.
That’s the backstory, now getting back to the problem at hand. So, I got the motherboard changed, for free as it’s within warranty. The Lenovo repaircenter called and said they can’t boot Windows off the hard disk. I told them to hold back as it has Linux and would require some BIOS change. Fiddled around with BIOS settings, upgraded the BIOS to the latest version, still no go. Tried booting from the USB drive which I installed arch from, it showed blank screen. After fiddling around and browsing forums and trying IRC channel in vain, I decided to try the UEFI Shell. Thus, I went to the archlinux wiki and read up on it.
So, the bcfg command is the way to go. At first, I blindly copy pasted it from the wiki page and failed a couple of times.
bcfg boot add 3 fs0:\EFI\refind\refind_x64.efi "rEFInd"
The above did add a boot entry which took me to the USB drive boot menu only. After a couple of minutes, it struck me that there were fs0 and fs1 among the entries when UEFI shell was launched. fs1 is what pointed to the my SSD drive. So, I went ahead and typed
bcfg boot add 3 fs1:\EFI\arch-grub\grubx64.efi "rEFInd"
And voila! That worked. Just before that, I typed
and then did ls to see the contents. I could see that the contents were what was on the SSD in EFI partition and then gave the bcfg command.
This UEFI is super duper confusing. And I must admit, I barely understand it. I just managed to solve this issue by bruteforcing everything I could lay my eye upon. Unfortunately, it wasn’t documented anywhere nor could I find it via Google search. Hope this blog post helps someone who gets stuck with similar issue.