You are not logged in.

#1 2013-05-10 07:30:29

rkreis
Member
Registered: 2011-06-14
Posts: 5

[Solved] efibootmgr doesn't work at all, broken NVRAM?

Hi!

The problem started with the recent systemd update requiring me to change the init= kernel option from /bin/systemd to /usr/lib/systemd/systemd.  Since I use EFISTUB, I used efibootmgr to first remove all boot entries and create a new one.  Instead of creating a boot entry, efibootmgr simply returned with an exit code of 1, and after meditating at the arguments and strace'ing efibootmgr, the error was a "ENOSPC" while creating the new EFI variable.  I eventually tried using bcfg form the EFI shell, which could create a boot entry, but I was unable to add the kernel command line which I need for EFISTUB to that boot entry.

At this point, bcfg shows two boot entries (EFISTUB without the command line and some entry automatically created by my firmware).  Simply running 'efibootmgr -v' after booting Arch from the EFI shell reports a timeout and boot order, but no boot entries at all.  It also makes the kernel report 'efivars: get_variable() failed 0x8000000000000005!' which leaves me puzzled.  I do get a list of variables when I run 'ls /sys/firmware/efi/vars'.

What I'd like to know:

  1. How do I use bcfg to create a boot entry suitable for booting EFISTUB?

  2. Why does bcfg show boot entries while efibootmgr doesn't?

  3. How can I completely reset my NVRAM?

The mainboard is an ASRock Z77 Pro3 with the latest (1.90) firmware, and setting up the boot entries worked just fine when I first installed Arch.

Last edited by rkreis (2013-05-10 10:29:16)

Offline

#2 2013-05-10 10:28:45

rkreis
Member
Registered: 2011-06-14
Posts: 5

Re: [Solved] efibootmgr doesn't work at all, broken NVRAM?

Somehow, I was able to use efibootmgr to create an entry to directly boot EFISTUB.  I lost track of what exactly I tried, but it was along the lines of:

  1. Load default settings in the UEFI setup (did not affect boot entries).

  2. Install Refind and add an entry for Refind using bcfg (works and can boot Linux).

  3. After booting Arch with Refind, running efibootmgr -v would show boot entries again.

  4. Without deleting any entry, run the efibootmgr command to add an EFISTUB entry.

I have no idea what actually caused efibootmgr to start working again.  I guess that either it somehow makes a difference whether Arch is bootet from Refind or the EFI shell (unlikely) or you are not allowed to touch the boot entries generated by the firmware or that something (bcfg?) changed the boot config in such a way that efibootmgr could work with it again.

I'll still mark this thread as solved because I have a working setup for now.  It certainly would be great to know what was really going on.

Offline

#3 2013-05-10 16:37:28

srs5694
Member
From: Woonsocket, RI
Registered: 2012-11-06
Posts: 719
Website

Re: [Solved] efibootmgr doesn't work at all, broken NVRAM?

There have been some recent posts about problems with the latest version of efibootmgr (0.6.0, IIRC). I haven't been following it all that closely, but I get the impression that there have been changes to both efibootmgr and the kernel, and if the two versions aren't properly matched, efibootmgr won't work. I'm not sure why it failed for you temporarily, unless perhaps you changed kernel versions somewhere in this procedure, thus getting your kernel temporarily out of sync with your efibootmgr.

Offline

#4 2013-05-10 18:41:47

KairiTech
Member
From: Toronto, Canada
Registered: 2011-06-04
Posts: 275

Re: [Solved] efibootmgr doesn't work at all, broken NVRAM?

KairiTech wrote:

Offline

Board footer

Powered by FluxBB