You are not logged in.

#1 2015-05-23 11:29:20

AlgoJerViA
Member
Registered: 2014-08-06
Posts: 24

Kernel .efi file ending problem

I have been booting my system using efistub directly for some time now. However since the last motherboard firmware update the kernel need to have the .efi file ending. I did find other post describing similar problems but most if not all of them obscure the root of the problem with different boot loaders/managers.

I'm planing on adding some text about this to the wiki but I have a couple of questions I would like to have some feedback on first.

What is the best solution? Currently I made a copy of the kernel and added the .efi ending. This works and might be a viable solution but... is it better to rename the file or are anything expecting to find a vmlinuz-linux file? Also how should this be automated?

Who's fault is it? Should I file a bug report to MSI (motherboard vendor), Intel TianoCore (UEFI Shell) or Arch Linux? Is there a standard mandating .efi ending that is ignored?

Offline

#2 2015-05-23 14:11:38

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,564
Website

Re: Kernel .efi file ending problem

AlgoJerViA wrote:

Who's fault is it?

It sounds like the fault of your motherboard vendor to me.

Post the `efibootmgr` command you are using to genrate the NVRAM entry.

The ".efi" suffix is used by the bootable binaries for GRUB, gummiboot, Windows (bootmgfw.efi), etc -- perhaps your motherboard vendor is not aware of the Linux kernel's ability to boot itself without the assistance of a bootloader.


Jin, Jiyan, Azadî

Offline

#3 2015-05-23 17:40:38

AlgoJerViA
Member
Registered: 2014-08-06
Posts: 24

Re: Kernel .efi file ending problem

Once this bug showed up I have use the UEFI shell but now when I tried to add an entry with

# sudo efibootmgr -d /dev/sda -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 initrd=/intel-ucode.img initrd=/initramfs-linux.img nomodeset"

it does show up in BIOS setup but not in the F11 boot menu. Also tried adding a second entry with different label where I replace vmlinuz-linux with vmlinuz.efi and it gives the same result. The boot menu only shows the UEFI shell as an option, not even windows show up anymore, but that might be a feature I guess. smile

BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0000,0001,0002,0004
Boot0000  Windows Boot ManagerHD(1,800,100000,ed33ee23-7189-4baf-95ff-965495fdbb6e)File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...5...............
Boot0001  Arch LinuxHD(1,800,100000,ed33ee23-7189-4baf-95ff-965495fdbb6e)File(\VMLINUZ-LINUX)r.o.o.t.=./.d.e.v./.s.d.a.2. .i.n.i.t.r.d.=./.i.n.t.e.l.-.u.c.o.d.e...i.m.g. .i.n.i.t.r.d.=./.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x...i.m.g. .n.o.m.o.d.e.s.e.t.
Boot0002  Arch Linux EfiHD(1,800,100000,ed33ee23-7189-4baf-95ff-965495fdbb6e)File(\VMLINUZ.EFI)r.o.o.t.=./.d.e.v./.s.d.a.2. .i.n.i.t.r.d.=./.i.n.t.e.l.-.u.c.o.d.e...i.m.g. .i.n.i.t.r.d.=./.i.n.i.t.r.a.m.f.s.-.l.i.n.u.x...i.m.g. .n.o.m.o.d.e.s.e.t.
Boot0003* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)..BO
Boot0004  Hard Drive BIOS(2,0,00)..GO..NO........o.C.o.r.s.a.i.r. .F.o.r.c.e. .G.S...................A..........................>..Gd-.;.A..MQ..L.4.1.9.2.9.7.4.0.0.0.1.0.0.0.8.5.0.0.0.6.......BO..NO........o.W.D.C. .W.D.6.4.0.0.A.A.K.S.-.6.5.A.7.B.2...................A..........................>..Gd-.;.A..MQ..L. . . . .W. .-.D.C.W.S.A.7.Y.7.8.5.7.1.5.......BO

I have at least informed MSI about the problem booting from the shell when no .efi was added to the kernel. Guess I should ask them about this to.

Offline

#4 2015-05-23 17:59:23

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,564
Website

Re: Kernel .efi file ending problem

Try adding "rw" to the options:

# efibootmgr -d /dev/sda -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 rw initrd=/intel-ucode.img initrd=/initramfs-linux.img nomodeset"

Any new entries made using `efibootmgr` get added as first in the boot order list so you should be able to just reboot into this entry with no further changes.

If the Windows entry no longer shows up in your "boot menu" then there is something seriously wrong with your firmware.

How did you update the firmware?

Are there any new updates available?

Perhaps this is a known bug.


Jin, Jiyan, Azadî

Offline

Board footer

Powered by FluxBB