Skip to content

Linux Bootloader Configuration

Mattscreative edited this page Dec 5, 2025 · 2 revisions

Linux Bootloader Configuration Guide

Complete beginner-friendly guide to configuring bootloaders on Linux, covering Arch Linux, CachyOS, and other distributions including GRUB, systemd-boot, rEFInd, and Limine.


Table of Contents

  1. Understanding Bootloaders
  2. GRUB Configuration
  3. systemd-boot Configuration
  4. rEFInd Configuration
  5. Limine Configuration
  6. CachyOS-Specific Notes
  7. Switching Bootloaders
  8. Troubleshooting

Understanding Bootloaders

What is a Bootloader?

Bootloader is software that loads the operating system when your computer starts.

Functions:

  • Loads kernel
  • Initializes hardware
  • Provides boot menu
  • Handles dual-boot

Boot Process

How booting works:

  1. BIOS/UEFI initializes hardware
  2. Bootloader loads from disk
  3. Kernel starts
  4. Init system (systemd) starts
  5. System ready

Bootloader Options

Available bootloaders:

  • GRUB: Most popular, feature-rich, works with BIOS and UEFI
  • systemd-boot: Simple, UEFI only, integrated with systemd
  • rEFInd: Beautiful, UEFI only, auto-detects OS
  • Limine: Modern, fast, supports Secure Boot (CachyOS default)

Which to use:

  • Most users: GRUB (most compatible)
  • UEFI only, want simplicity: systemd-boot
  • UEFI only, want beauty: rEFInd
  • CachyOS default, Secure Boot: Limine

GRUB Configuration

Installing GRUB

For UEFI systems:

# Install GRUB
sudo pacman -S grub efibootmgr

# Install to EFI partition
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

For BIOS systems:

# Install GRUB
sudo pacman -S grub

# Install to disk
sudo grub-install --target=i386-pc /dev/sda

Generate GRUB Configuration

Create boot menu:

# Generate GRUB config
sudo grub-mkconfig -o /boot/grub/grub.cfg

GRUB Configuration File

Edit GRUB settings:

# Edit main config
sudo vim /etc/default/grub

Common settings:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

After editing:

# Regenerate config
sudo grub-mkconfig -o /boot/grub/grub.cfg

systemd-boot Configuration

Installing systemd-boot

Install systemd-boot:

# Install systemd-boot
sudo bootctl install

# Check status
bootctl status

Configure systemd-boot

Edit loader config:

# Edit loader config
sudo vim /boot/loader/loader.conf

Example:

default arch
timeout 5
editor 0

Create Boot Entry

Create entry:

# Create entry
sudo vim /boot/loader/entries/arch.conf

Example:

title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=xxxx-xxxx rw

rEFInd Configuration

Installing rEFInd

Install rEFInd:

# Install rEFInd
sudo pacman -S refind-efi

# Install to EFI
sudo refind-install

Configure rEFInd

Edit config:

# Edit config
sudo vim /boot/efi/EFI/refind/refind.conf

Limine Configuration

Installing Limine

Install Limine:

# Install Limine
sudo pacman -S limine

# Install to EFI
sudo limine-install /dev/sda

Configure Limine

Edit config:

# Edit config
sudo vim /boot/limine/limine.cfg

Example:

:Arch Linux
    PROTOCOL  linux
    KERNEL_PATH boot:///vmlinuz-linux
    MODULE_PATH boot:///initramfs-linux.img
    KERNEL_CMDLINE root=UUID=xxxx-xxxx rw

CachyOS-Specific Notes

Limine on CachyOS

CachyOS uses Limine as default bootloader:

  • Secure Boot support: Limine works well with Secure Boot on CachyOS
  • Fast boot: Optimized for performance
  • Simple config: Easy to configure

CachyOS Limine setup:

# Limine is usually installed during CachyOS installation
# Check status
sudo limine-install --check

# Update Limine
sudo limine-install /dev/sda

Secure Boot with Limine on CachyOS:

# Use limine-enroll-config for Secure Boot
sudo limine-enroll-config

Switching Bootloaders

Switch to GRUB

Install GRUB:

# Install GRUB
sudo pacman -S grub efibootmgr
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi
sudo grub-mkconfig -o /boot/grub/grub.cfg

Switch to systemd-boot

Install systemd-boot:

# Install systemd-boot
sudo bootctl install
# Create entries as shown above

Troubleshooting

Bootloader Not Loading

Check installation:

# Check GRUB
ls /boot/grub/grub.cfg

# Check systemd-boot
bootctl status

# Check Limine
ls /boot/limine/

Regenerate Boot Menu

GRUB:

sudo grub-mkconfig -o /boot/grub/grub.cfg

systemd-boot:

# Recreate entries
sudo bootctl update

Summary

This guide covered bootloader configuration for Arch Linux, CachyOS, and other distributions, including GRUB, systemd-boot, rEFInd, and Limine.


Next Steps


This guide covers Arch Linux, CachyOS, and other Linux distributions. CachyOS-specific notes are highlighted where applicable.

Clone this wiki locally