Boot Manager Configuration
systemd-boot
systemd-boot has two kinds of configuration files, one for systemd-boot itself in /boot/loader/loader.conf
and one for each
individual kernel entry in /boot/loader/entry
.
Loader configuration
In this configuration file, you can change the default entry and the timeout of systemd-boot
default @savedtimeout 5#console-mode keep # This option configures the resolution of the console.
Kernel Commandline Configuration
We provide a tool for easier configuration of systemd-boot sdboot-manage
.
One of the perks of this tool is global kernel commandline configuration. The configuration file for sdboot-manage
is located in /etc/sdboot-manage.conf
.
Edit the LINUX_OPTIONS=
line in /etc/sdboot-manage.conf
to change kernel parameters.
LINUX_OPTIONS="zswap.enabled=0 nowatchdog quiet splash"
After making changes, regenerate all systemd-boot entries with the following command
❯ sudo sdboot-manage gen
rEFInd
Like systemd-boot, rEFInd has two configuration files. refind.conf
located in
boot/efi/EFI/refind
is mainly for changing how rEFind behaves while /boot/refind_linux.conf
is for managing your boot options.
refind.conf
contains extensive comments explaining all its options.
Kernel Commandline Configuration
To pass kernel parameters to the commandline, modify “Boot using default options” in /boot/refind_linux.conf
"Boot using default options" "root=PARTUUID=1cb353ec-7f03-4820-8b4b-03baf53a208f rw zswap.enabled=0 nowatchdog quiet splash"
Changes to both configuration files will immediately take effect. Running a command to “save” changes is unnecessary.
GRUB
Unlike systemd-boot and rEFInd,
GRUB only has one configuration file located in /etc/default/grub
. There is pretty good documentation in this file that explains what
each option does.
Hiding the GRUB Boot Menu
To hide the GRUB menu, simply set these following options accordingly.
GRUB_TIMEOUT='0'GRUB_TIMEOUT_STYLE=hidden
Press ESC to get access to the GRUB prompt. From here run normal
or exit
to get back to the familiar GRUB boot menu.
Kernel Commandline Configuration
To pass kernel parameters to the commandline with GRUB, we need to edit GRUB_CMDLINE_LINUX_DEFAULT
within /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT='nowatchdog zswap.enabled=0 quiet splash'
Every time we modify the GRUB configuration file, we need to remake the config with the following command
❯ sudo grub-mkconfig -o /boot/grub/grub.cfg
Limine
Limine is a modern bootloader known for its simple configuration. This guide covers the basics to get you started.
Configuration primarily happens in /boot/limine.conf
(or sometimes in the EFI system partition) for menu settings and /etc/default/limine
for kernel parameters.
Boot Menu Configuration
This file controls the boot menu’s behavior and appearance. Changes made here take effect immediately after saving – no extra commands are needed.
- Timeout: Sets how many seconds Limine waits before automatically booting the default entry.
/boot/limine.conf timeout: 5 - Default Entry: Specifies which menu entry boots by default. Entries are numbered starting from 1. If not set, the default value is 1.
/boot/limine.conf default_entry: 2 # Boot the second entry by default
Example (/boot/limine.conf
):
timeout: 5default_entry: 2 # Points directly to the 'linux-cachyos' entry below
/+CachyOS # Entry 1: A directory (use /+ to expand by default)//linux-cachyos # Entry 2: The actual bootable entry protocol: linux kernel_path: boot():/vmlinuz-linux-cachyos cmdline: quiet splash root=UUID=... rw # Basic kernel parameters module_path: boot():/initramfs-linux-cachyos.img
Theming
You can customize the visual appearance of the Limine boot menu:
- Wallpaper: Set a background image. Supported formats include BMP, PNG, and JPEG.
/boot/limine.conf wallpaper: boot():/splash.pngwallpaper_style: stretched # Options: 'stretched', 'tiled', 'centered'backdrop: 000000 # Background color (RRGGBB hex) if style is 'centered' - Fonts: Use a custom font file and adjust its size.
/boot/limine.conf term_font: boot():/custom_font.F16term_font_scale: 2x2 # Scales font size, useful for high-resolution displays - Colors: Modify terminal text and background colors.
/boot/limine.conf term_background: 80000000 # Example: Semi-transparent black (AARRGGBB)# Other color options like term_foreground, etc., are available.
Kernel Command Configuration
On CachyOS, kernel entries in the Limine boot menu are automatically managed. When you install or remove kernels, the limine-mkinitcpio-hook
uses the limine-entry-tool
utility in the background to update the boot entries.
While entries are handled automatically, you can configure the kernel parameters (also known as the kernel command line) that are passed to the kernel when it boots.
- Edit the configuration file: Modify the
KERNEL_CMDLINE
variables in/etc/default/limine
. You can set default parameters for all kernels or specific parameters for certain kernel names (e.g.,linux-cachyos
)./etc/default/limine # Default parameters for most kernelsKERNEL_CMDLINE[default]="quiet splash rd.udev.log_priority=3"# Specific parameters for the 'linux-cachyos' kernelKERNEL_CMDLINE["linux-cachyos"]="quiet splash mitigations=off"# Parameters for fallback entries (if generated)# KERNEL_CMDLINE[fallback]="..." - Apply the changes: After saving
/etc/default/limine
, you need to regenerate your initramfs images and update the Limine entries to apply the new kernel parameters. Run the following command:This command triggers theTerminal window sudo limine-mkinitcpiomkinitcpio
process, which includes thelimine-mkinitcpio-hook
, ensuring your changes in/etc/default/limine
are incorporated into the boot entries at/boot/limine.conf
.