Linux Bootloader Configuration - ryzendew/Linux-Tips-and-Tricks GitHub Wiki
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
- Understanding Bootloaders
- GRUB Configuration
- systemd-boot Configuration
- rEFInd Configuration
- Limine Configuration
- CachyOS-Specific Notes
- Switching Bootloaders
- 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:
- BIOS/UEFI initializes hardware
- Bootloader loads from disk
- Kernel starts
- Init system (systemd) starts
- 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
- Boot Process - Understanding boot process
- UEFI and Secure Boot - Secure Boot setup
- ArchWiki GRUB: https://wiki.archlinux.org/title/GRUB
- ArchWiki systemd-boot: https://wiki.archlinux.org/title/Systemd-boot
This guide covers Arch Linux, CachyOS, and other Linux distributions. CachyOS-specific notes are highlighted where applicable.