[syslinux] Fail to set up UEFI syslinux on ArchLinux USB Flash Drive

alex lupu alupu01 at gmail.com
Mon Mar 16 14:03:31 PDT 2015

On Mon, Mar 16, 2015 at 1:41 PM, Ady via Syslinux <syslinux at zytor.com>

> Hmm... AFAIK, efibootmgr currently accepts slash and automatically
> converts it into backslash. So for a current version of efibootmgr, a
> path like:
>  /EFI/syslinux/syslinux.efi
> (including the initial slash) should be OK as command-line argument.

​Right​.  I just used the "traditional" syntax.

> But, for the sake of clarity
> ​​
> (at least for other
> ​ ​
> readers), I should repeat: for menu.c32 to work, you also need the
> ​ ​
> corresponding "libutil.c32", which you have not listed before. So,
> ​ ​
> either you forgot to list it here, or you have added it later and
> ​ ​
> didn't tell us.

​Sneaky me :)
I didn't forget.
​Based on space limitations, ​
I just
​presented a small sample of​
​ files residing
 in the 'syslinux'
​ as indication of a sane subdirectory with _all_ the expected files​
Little did I know at a time that by _randomly_ excluding 'libutil.c32'
(among others) from the limited sample that action might jeopardize our
beautiful friendship:)

Anyway, to eliminate this point of contention once and for all
(at least for other
​ ​
readers :), here we go:
alex:[~]$ sudo mount /dev/sdd1 /mnt
alex:[~]$ ls /mnt
alex:[~]$ ls /mnt/EFI
alex:[~]$ ls /mnt/EFI/syslinux
cat.c32     cpuid.c32      elf.c32       ifcpu64.c32      lfs.c32
ls.c32       pmload.c32    sanboot.c32   vesainfo.c32
chain.c32   cpuidtest.c32  ethersel.c32  ifcpu.c32        libcom32.c32
 lua.c32      poweroff.c32  sdi.c32       vesamenu.c32
cmd.c32     debug.c32      gfxboot.c32   ifmemdsk.c32     libgpl.c32
 mboot.c32    prdhcp.c32    sysdump.c32   vpdtest.c32
cmenu.c32   dhcp.c32       gpxecmd.c32   ifplop.c32       liblua.c32
 meminfo.c32  pwd.c32       syslinux.c32  whichsys.c32
config.c32  disk.c32       hdt.c32       kbdmap.c32       libmenu.c32
menu.c32     pxechn.c32    syslinux.cfg  zzjson.c32
cptime.c32  dmi.c32        hexdump.c32   kontron_wdt.c32  libutil.c32
pci.c32      reboot.c32    syslinux.efi
cpu.c32     dmitest.c32    host.c32      ldlinux.e64      linux.c32
pcitest.c32  rosh.c32      vesa.c32

> ​ 'syslinux.cfg'​
> >  LABEL arch
> >          MENU LABEL Arch Linux
> >          LINUX ../vmlinuz-linux
> >          APPEND root=/dev/sdd2 rw
> >          INITRD ../initramfs-linux.img
> >
> > and unfortunately, 'vmlinuz-linux' and 'initramfs-linux*.img' reside in
> the
> > root=/dev/sdd2 !)
> That LABEL, "translated" to absolute paths for your particular case,
> would be equivalent to:
>   LABEL arch
>           MENU LABEL Arch Linux
>           LINUX /EFI/vmlinuz-linux
>           APPEND root=/dev/sdd2 rw
>           INITRD /EFI/initramfs-linux.img
> So, your "root" can still be pointing to sdd2; as long as the
> "vmlinuz-linux" and "initramfs-linux.img" files are located in sdd1
> directly under the "EFI" directory.
> ​I thought about that.  Obviously it would work IF I moved the vmlinuz and

​files from /dev/sdd2 to /dev/sdd1.
I figured that would probably be considered non-standard Arch and would
generate a new set of enemies.
OTOH, I agree with you - who cares?
So full steam ahead.

Thanks again for your great help, patience and trust in me,
-- Alex

More information about the Syslinux mailing list