[syslinux] Boot Loop in efi

Steve Rikli sr at genyosha.net
Mon Jun 22 12:07:53 PDT 2020

While I don't have a lot of experience with EFI systems, I've done a
few and can say that I use the same pxelinux.cfg files for BIOS and EFI
without needing to change anything inside the .cfg files themselves.

It seems like if the kernel and initrd are being loaded, then there's
a chance SYSLINUX has done its job and the problem happens afterwards.

You mentioned version 6.03 earlier -- I'd suggest trying the 6.04-pre1
SYSLINUX precompiled distribution.  That helped with my PXELINUX installs
where 6.03 wouldn't always handle some EFI's -- you might find it helps
with your SYSLINUX attempt too.

Your kernel is 32bit, but you're using 64bit EFI?  Is your PC system
hardware natively 64bit?  Which syslinux.efi loader from the SYSLINUX
distribution are you using?

FYI for my PXELINUX EFI installs I use the syslinux.efi binary from the
./efi64/efi/ subdirectory of the SYSLINUX 6.04-pre1 bundle.

Changing "APPEND initrd=..." to separate APPEND and INITRD lines is
semantically equivalent according to the docs, and my experience agrees.
I do like having the separate INITRD line these days, as it can help
with automating changes over a set of *.cfg files.


On Mon, Jun 22, 2020 at 08:38:03PM +0200, Erik Rull via Syslinux wrote:
> Thanks for the hints - I have NOT CONFIG_EFI enabled - do I need this
> actually?
> I do not know which variables I need to boot... The kernel APPEND
> parameters are sufficient for me...
> And the relocatable config is set already.
> .. I enabled the EFI kernel config parts - no change... the console prints:
> Booting System...
> Loading linux... ok
> Loading iramfs.gz...ok
> [then reboot]
> My syslinux.cfg is pretty simple:
> DEFAULT linux
> LABEL linux
>   SAY Booting System...
>   KERNEL linux
>   APPEND initrd=iramfs.gz apic=debug lapic acpi=ht consoleblank=0 vga=1
> I didn't find any documentation on the syslinux page for "linuxefi"
> command - where is this documented?
> Or is there a "default" syslinux.cfg for efi that I could use as a template?
> I also moved the iramfs.gz to the separate INITRD command - still no change.
> Any further hints? How can I debug this?
> I also change the vga=1 to vga=0 - without and effect...
> Best regards,
> Erik
> Gregory Bartholomew wrote:
> > On Mon, Jun 22, 2020 at 11:36 AM Erik Rull via Syslinux <syslinux at syslinux.org
> > <mailto:syslinux at syslinux.org>> wrote:
> > 
> >     ...
> >     The system starts booting, loads kernel and initrd (I see the
> >     loading output on the screen), but then the system resets and
> >     the loop restarts (infinitely).
> > 
> >     I took the same syslinux.cfg, linux and initrd as for the BIOS
> >     boot.
> > 
> >     Am I missing something? It does not look as if the kernel
> >     actually starts (no output after the load-lines).
> > 
> >     One thing that I'm confused of - maybe this is related?  I can
> >     only get the 64 bit efi files running, but my kernel is 32 bit.
> >     No way getting the 32 bit efi files to start, even when trying
> >     it over the UEFI shell, it complains that the file is not in the
> >     right format.
> > 
> > ??
> > ...
> > 
> > Did you find the following troubleshooting page?:
> > 
> > https://wiki.syslinux.org/wiki/index.php?title=Common_Problems
> > 
> > In particular, there is a section at the end that looks similar to
> > your problem.
> > 
> > I'm not familiar with the problem. You might try some variations on
> > the command you are using to load the kernel (e.g. try using
> > "linuxefi" instead of the "linux" or "kernel" command).??

More information about the Syslinux mailing list