ELILONG(8)

NAME
elilong - Simple UEFI Boot Manager for Slackware

SYNOPSIS
elilongsetup

DESCRIPTION
elilong is a lightweight EFI application designed to load Linux kernels using the EFI Stub. It provides a text-based boot menu with a configurable timeout. Control is handed off to the kernel via the UEFI StartImage service. If elilong.conf is not found, the bootloader will automatically search for elilo.conf in the same directory. If no configuration is found, it attempts to locate the default \EFI\BOOT\BOOTX64.EFI path.

DIAGNOSTICS
In the event of a failed boot (e.g. corrupt kernel or invalid path), elilong will display the UEFI error code and return to the selection menu rather than hanging the system. elilongsetup is the deployment script used to install the bootloader. It automates mounting the EFI System Partition (ESP), staging the kernel/initrd, and creating a NVRAM boot entry using efibootmgr(8).

OPERATION
Assuming elilong is installed and setup with eililongsetup, if there is a prompt entry, or a timeout or delay entry in the config file, elilong will show a menu of the boot options. you can press enter or wait for a timeout to complete to boot the default entry, or first entry if a default is not specified in the conf file. Otherwise you can use the up and down arrow keys and enter to select an entry to boot, or type in the index of the entry as shown on the menu, and press enter. a * will be displayed next to the currently selected entry. There will also be an indiator in the top border at the right if secure boot is on.

CONFIGURATION FILE
The configuration file is located on the ESP at /EFI/@@SUBDIR@@/elilong.conf The file uses a simple key-value format, although some items do not need a value, they are boolean. If there are conflicting values then the last one in the section will be used. This file should be ascii, not unicode. Any paths specified should be relative to the efi system partition mount point, as elilong can only read files in the system partition.

  Global Settings

delay = <value> | timeout = <value>
    Specifies the time to wait before booting the default image, in tenths of a second (0-1200). If both are present, the higher value is used. Use '

message = <path>
    path to an ascii file to display before the boot menu. only the first 2000 characters are displayed.

prompt
    Specifies showing the menu. The menu will also show if delay or timeout have been specified

default = <string>
    Specifies the label of the entry to be booted by default when the timer expires. If the label is not found or this keyword is omitted, the first image in the file is used.

  Boot Entry Options
A maximum of 18 boot entries (MAX_ENTRIES ) is supported by the menu system. Any images configured beyond this hard limit will be ignored to prevent running out of space on the screen for displaying the menu. There needs to be at least one boot entry consisting of a minimum of an image, a label and for linux systems, a root device, and often (but optional) and initrd.

image = <path>
    Path to the kernel or EFI application relative to the ESP root (e.g., \EFI\@@SUBDIR@@\vmlinuz). Each image entry starts a new boot choice in the menu.

label = <string>
    The text displayed in the boot menu for this entry. This should be less than 14 characters if you don't want the middle truncated

description = <string>
    The description displayed in the boot menu for this entry. This should be less than 59 characters to fit on the screen. if it is too long, it will be truncated in the middle when displayed.

root = <device>
    either the device partition the root file system is on eg., /dev/sda1, or PARTUUID= partid where partid can be obtained by running as root the command:

    lsblk -dno PARTUUID /dev/ partition_block_device

    for example: lsblk -dno PARTUUID /dev/nvme0n1p1 each has advantages and disadvantages. using the device name is easier to read, but could change, where-as using PARTUUID is unique to the partition so will always work even if extra drives/memory sticks are added to the system, but it is harder to visually recognise.

read-only
    If present, the bootloader will add the ro flag to the kernel command line, mounting the root filesystem as read-only for initial checks.

read-write
    If present, the bootloader will add the rw flag to the kernel command line, mounting the root filesystem as read and writable. read-write and read-only are mutually exclusive in a boot entry. elilong will use the last one defined in that boot entry section.

initrd = <path>
    (Optional) Path to the Linux initrd relative to the ESP root. Omit for huge kernel or non linux OS's.

append = <string>
    (Optional) Parameters passed to the image (e.g., "root=/dev/sda1 ro"). Quotes are supported and stripped during parsing. the root and read-only or read-write values are automatically added to the parameters by elilo.

  Comments and Formatting
Lines beginning with zero or more spaces followed by a # are ignored. Trailing comments on a line are also supported. Leading and trailing whitespace around values is automatically trimmed. Keywords are case sensitive, and are all lower case.

ELILONGSETUP OPERATIONS
When run, elilongsetup performs the following steps:

1.  Locates and mounts the EFI System Partition to @@DEF_MNT@@

2.  Creates the application directory (e.g., @@DEF_MNT@@/EFI/@@SUBDIR@@ ).

3.  Copies elilong.efi and the current kernel/initrd assets to the ESP.

4.  Generates a default elilong.conf if one does not exist.

5.  Uses efibootmgr(8) to ensure the firmware recognizes elilong as a valid boot option.

FILES
@@SBINDIR@@/elilongsetup - The ESP deployment script. @@STAGEDIR@@/elilong.efi - The staging binary before deployment. /etc/elilong.conf - System-wide template for the boot configuration.

SEE ALSO
efibootmgr(8), elilo(8)