Debian – How to configure syslinux to boot immediately

boot-loaderdebianlive-usbsyslinux

I'm tweaking a Debian live system (built with live-build), and I want it to boot straight into the system from syslinux — no menu, no timeout. According to the syslinux documentation, a timeout value of 0 means that the timeout is disabled, ie. it won't boot at all without user intervention, which is the opposite of what I want.

It might be nice to be able to hold down a key for those rare occasions where I do need to tweak the kernel line, but that's not essential. Really I just want an immediate boot. How do I get it?

The current syslinux configuration is this:

syslinux.cfg:

include menu.cfg
default vesamenu.c32
prompt 0
timeout 0

menu.cfg:

menu hshift 0
menu width 82

menu title Boot menu
include stdmenu.cfg
include live.cfg
include install.cfg
menu end

stdmenu.cfg:

menu background splash.png
menu color title    * #FFFFFFFF *
menu color border   * #00000000 #00000000 none
menu color sel      * #ffffffff #76a1d0ff *
menu color hotsel   1;7;37;40 #ffffffff #76a1d0ff *
menu color tabmsg   * #ffffffff #00000000 *
menu color help     37;40 #ffdddd00 #00000000 none
menu vshift 17
menu rows 10
menu helpmsgrow 15
# The command line must be at least one line from the bottom.
menu cmdlinerow 16
menu timeoutrow 16
menu tabmsgrow 18
menu tabmsg Press ENTER to boot or TAB to edit a menu entry

live.cfg:

label live-
    menu label ^Live ()
    menu default
    kernel /live/vmlinuz
    append initrd=/live/initrd.img boot=live config quiet ipv6.disable=1 console=tty0 console=ttyS0,115200n8

install.cfg: empty

Best Answer

Remove the line default vesamenu.c32 (or comment it out) and replace it with default live-.

From the SYSLINUX docs (emphasis mine):

Selects a specific user interface module (typically menu.c32 or vesamenu.c32). The command-line interface treats this as a directive that overrides the DEFAULT and PROMPT directives.

Related Question