Syslinux

Syslinux is a simple bootloader for fat, ext2/3/4, and brtfs.

Syslinux works in the following way (in a nutshell):

  1. MBR looks for the active partition (the one tagged as bootable)
  2. The MBR loads the code found on the partition’s boot sector and executes it
  3. This code then loads the rest of the boot loader code from /boot partition (file: ldlinux.sys)
  4. COM32 modules are loaded to provide extra functionality such as a graphical menu or chain loading

For a more detailed explanation: https://wiki.archlinux.org/index.php/Syslinux#Syslinux_Boot_Process

Sample configuration:

UI vesamenu.c32
DEFAULT arch
PROMPT 0
MENU TITLE Boot Menu
MENU BACKGROUND splash.png
TIMEOUT 100

MENU WIDTH 78
MENU MARGIN 4
MENU ROWS 5
MENU VSHIFT 10
MENU TIMEOUTROW 13
MENU TABMSGROW 11
MENU CMDLINEROW 11
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29

# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu

MENU COLOR border       30;44   #40ffffff #a0000000 std
MENU COLOR title        1;36;44 #9033ccff #a0000000 std
MENU COLOR sel          7;37;40 #e0ffffff #20ffffff all
MENU COLOR unsel        37;44   #50ffffff #a0000000 std
MENU COLOR help         37;40   #c0ffffff #a0000000 std
MENU COLOR timeout_msg  37;40   #80ffffff #00000000 std
MENU COLOR timeout      1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07        37;40   #90ffffff #a0000000 std
MENU COLOR tabmsg       31;40   #30ffffff #00000000 std

LABEL arch
	MENU LABEL Arch Linux
	LINUX /vmlinuz26
	APPEND root=/dev/sda2 ro nomodeset
	INITRD /kernel26.img

LABEL archfallback
	MENU LABEL Arch Linux Fallback
	LINUX /vmlinuz26
	APPEND root=/dev/sda2 ro nomodeset
	INITRD /kernel26-fallback.img

As you can see, the majority of the config contains MENU statements declaring colors and positing for the menu. If you removed all the MENU statements, the config would be less than 20 lines.

Screenshot:

Syslinux Graphical Boot Menu

I was lazy and took a screenshot of the Arch Linux installer menu. The configuration above generates the same menu, except there are only two boot choices, Arch Linux and Arch Linux Fallback.

The arch wiki has a whole lot of good information on configuring Syslinux. https://wiki.archlinux.org/index.php/Syslinux