Managing EFI Boot Loaders for Linux:

by Rod Smith,

Originally written: 6/30/2013; last update: 7/7/2018

This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

Donate $1.00 Donate $2.50 Donate $5.00 Donate $10.00 Donate another value
Donate with PayPal
Donate with PayPal
Donate with PayPal
Donate with PayPal
Donate with PayPal

This page is part of my Managing EFI Boot Loaders for Linux document. If a Web search has brought you to this page, you may want to start at the beginning.

SYSLINUX is a family of boot loaders for Linux. Often employed as a means to boot Linux installation discs, SYSLINUX can also be used on hard disks. Prior to version 6 (introduced in 2013), it did not include an EFI version; but more recent versions include this support.

When to Use SYSLINUX

SYSLINUX is reasonably reliable in my experience, although that experience is limited. As I write (summer, 2018), the latest version is 6.0.3, and has not been updated since 2014, so it's beginning to look like it's been abandoned. SYSLINUX is similar in capabilities to ELILO, but it's easier to create a conventional menu system with SYSLINUX than with ELILO.

Overall, conditions when you might want to consider using it include:

Conditions in which you should almost certainly not use SYSLINUX include:

Overall, I can't recommend SYSLINUX for general use, for much the same reasons I can't recommend ELILO—both are limited and seem to be unsupported. SYSLINUX's principle advantage—easy manual configuration—is shared by other programs, such as gummiboot/systemd-boot and, in a different way, rEFInd.

Installing SYSLINUX

SYSLINUX installation works just as described in EFI Boot Loader Installation. A major caveat is that SYSLINUX requires a number of support files be installed on your ESP, and it may not be obvious what files need to go there. To help simplify things, I've created an x86-64 binary tarball of SYSLINUX 6.03+dfsg-14, based on an Ubuntu Linux package. To use this binary, you should unpack it in your ESP's root directory—that is, normally in /boot/efi or sometimes in /boot. When unpacked, this package creates a directory called EFI/syslinux, which holds the syslinux.efi boot loader binary, syslinux.cfg configuration file, and several support files. Note that the configuration file works on my Ubuntu 16.10 installation with its 4.8.0-58-generic kernel, but will require changes to work on other systems.

Configuring SYSLINUX

Many of the SYSLINUX configuration features are similar to those of its BIOS counterpart. See the SYSLINUX wiki for detailed configuration instructions. The syslinux.cfg configuration file consists of a series of global options followed by one or more boot stanzas, each of which defines a single kernel or other tool to be launched. A simple example resembles the following:

UI menu.c32

LABEL arch
    MENU LABEL Arch Linux
    LINUX ../../vmlinuz-linux
    APPEND root=/dev/sda2 ro
    INITRD ../../initramfs-linux.img

LABEL archfallback
    MENU LABEL Arch Linux Fallback
    LINUX ../../vmlinuz-linux
    APPEND root=/dev/sda2 ro
    INITRD ../../initramfs-linux-fallback.img

This example defines two boot entries, arch and archfallback, which boot Arch Linux in two different ways—the entries vary in their INITRD lines, which specify the initial RAM disk files to be used.

The sample configuration file in the tarball I'm providing includes entries to launch various SYSLINUX tools for detecting hardware, rebooting, and powering off. These tools hang my computer, but you may have better luck.


When SYSLINUX is launched, you'll see a menu, whose appearance can vary depending on your configuration file options. The configuration file provided with my sample SYSLINUX binary produces a menu like this:

SYSLINUX presents a simple text-mode menu.

You interact with SYSLINUX in the same way you interact with most boot loaders: Press the arrow keys to select a boot option and then press Enter to boot the OS.

Maintaining SYSLINUX

I know of no distribution that ships with scripts to help automate SYSLINUX maintenance; thus, you should plan on editing its configuration file manually whenever you upgrade your kernel or make other changes to your configuration that might require SYSLINUX changes.

Go on to "Using GRUB Legacy"

Return to "Managing EFI Boot Loaders for Linux" main page

copyright © 2013–2018 by Roderick W. Smith

If you have problems with or comments about this web page, please e-mail me at Thanks.

Return to my main Web page.