#31 efibootmgr call makes bad entries

Erik Jacobson

Hi there.

systemconfigurator, when called with --runboot, runs
efibootmgr in a way that creates bad entries that won't
boot, at least on my one test machine.

I was looking at how to fix it but I'm a bit confused
about what the efibootmgr command that is run is trying
to do. I don't want to break anything.

The following command, for example, works fine for me
and is what I'll do manually for now in the
systemimager autoinstall scripts.

efibootmgr -c -L "erikj-SuSE" -d /dev/sdb -p 1 -l
\\efi\\SuSE\\elilo.efi -w

In this case, I wanted to add an entry for elilo on the
2nd root drive, first partition.

If you'd like me to investigate a fix and can explain a
bit why the efibootmgr command that was produced is
used, I'd be happy to look in to this.


  • dann frazier
    dann frazier

    Logged In: YES

    systemconfigurator works for redhat systems, and i don't
    think suse is much different.
    you can see exactly what it is trying to run by running
    systemconfigurator in verbose mode, but it should end up
    calling something like this:
    efibootmgr -c -d /dev/sda -p 1 -w -l
    \\efi\\redhat\\elilo.efi -u -- elilo -C

    the only real difference i see is the part after the "--",
    which shows
    efibootmgr how to call elilo.efi.

    i'd suggest that you:
    - verify the efibootmgr command that sc will try to use by
    running it in verbose mode
    - verify that the -- bit is what's breaking you
    - see what's different - does the elilo.conf file
    referenced exist on suse where SC is looking? are you using
    a new enough efibootmgr, etc, etc

  • Logged In: NO

    Thanks Dan. I'll check on this and do a bit more research.

    BTW - SuSE and SGI ProPack (and RedHat AS 2.1) seem to all use
    efibootmgr 0.4.0.

  • Erik Jacobson
    Erik Jacobson

    Logged In: YES

    Hi Dan.

    With my SuSE config, efibootmgr as called by
    systemconfigurator did

    /usr/sbin/efibootmgr -c -w -l \\SuSE\\elilo.efi -u -- elilo
    -C \\SuSE\\elilo.conf

    I tried some other things to try to get it working when I
    realized this machine has multiple root drives and the above
    is not specifying the drive and partition. fs0: is not SuSE
    on this machine.

    I ran this by hand:

    efibootmgr -c -w -l \\efi\\SuSE\\elilo.efi -d /dev/sdb -p 1
    -u -- \\efi\\SuSE\\elilo -C \\efi\\SuSE\\elilo.conf

    The system could then boot.

    Also note that, on SuSE, the EFI partition is mounted as
    So, in the root of the EFI partition is "/". SuSE puts its
    kernels there
    but stores elilo.conf and elilo.efi in efi/SuSE (or
    /boot/efi/SuSE on the
    running linux system).

    I'll see how my stock AS 2.1 system performs and compare it
    to this.
    Then I'll see what the code is doing.