Why can't I load an EFI shell anywhere?

0

So I recently found out I had EFI instead of BIOS and went to experiment with different .efi programs to see which one I would want for full functionality. From 3 bootloaders I have used, I get the error ASSERT_EFI_ERROR (Status = Device Error) and have tried everything to get into a shell. I can get into a UEFI shell using Clover from a flash drive but that is inconvenient. With Clover still one of my options on my Hard Drive it shows that I have EFI Revision 2.0 and Firmware Phoenix Technologies rev 3354. I then loaded Clover from the flash drive and in the info I have EFI Revision 2.50 and my Firmware is CLOVER Rev 3354. The USB is formatted as MBR and my hard drive is is GPT.

I'm just trying to find out how to get into a not-too-outdated EFI shell. Every download I've used has given me the ASSERT_EFI_ERROR (Status = Device Error) .

ToastHouse

Posted 2016-03-10T01:47:53.263

Reputation: 127

Answers

0

A version-2.0 EFI is unlikely to work well with an EFI shell version 2; you're likely to need a version-1 EFI shell. This could be the source of your problem, but I can't be sure of that. The Arch Linux wiki has some handy download links for several EFI shell variants:

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Obtaining_UEFI_Shell

Depending on what boot manager you're using, the ideal location and filename for an EFI shell binary varies. You may also need to explicitly create an entry for an EFI shell much like you'd need for an OS. If Clover remains like its rEFIt ancestor, it will look in EFI/tools on the ESP for an EFI shell binary. My own rEFInd (another rEFIt fork) also looks there. With rEFInd, it should be called shellx64.efi or shell.efi (on x86-64/AMD64/x64 systems). I don't recall offhand if rEFIt used both of those names or just shell.efi.

Rod Smith

Posted 2016-03-10T01:47:53.263

Reputation: 18 427

Yes, an older EFI shell worked. Using that shell how might I be able to add boot entries to my EFI, as I don't have that option in Setup. – ToastHouse – 2016-03-11T22:52:19.957

Unfortunately, older shells lack the bcfg command, so you can't manipulate the boot order with them -- at least, not by themselves. (I've always meant to figure out if bcfg could be built as a standalone application, but I've never gotten around to it.) – Rod Smith – 2016-03-11T23:25:32.213

Yes, that is also true, there is no bcfg command in the shell I am using. The Windows Boot Manager somehow makes it's way into my Multi-Boot list so I know that it's possible to manipulate that list in some way. I don't want to have be dependent on Microsoft's boot program though, as loading EFI programs like your rEFInd require the EFI/Microsoft/Boot folder to exist, and their files. – ToastHouse – 2016-03-12T00:13:47.443

rEFInd does not rely on EFI/Microsoft/Boot/bootmgfw.efi -- at least, not on a working system. (Some EFIs are very buggy and require using that filename to boot anything, but they're pretty rare.) You can use efibootmgr in Linux to manipulate the EFI boot order list. In Windows, bcdedit can do the job, as can the third-party EasyUEFI

– Rod Smith – 2016-03-12T00:31:35.290