Page cover

linuxBootloaders in Linux

In this wiki, you will learn, what is bootloader, why is bootloader exists and what bootloaders exists and how to install bootloader in Linux.

1. 🚀 ~ What Is a Bootloader?

A bootloader is a low-level program responsible for starting the Linux operating system. It is executed immediately after the system firmware (BIOS or UEFI) finishes hardware initialization. The bootloader loads the Linux kernel into memory, passes boot parameters, and transfers control to the kernel.

Simply put: a bootloader is the bridge between firmware and the operating system.


2. ❓ ~ Why Do Bootloaders Exist?

Bootloaders exist because system firmware is intentionally minimal and generic. They solve several critical problems:

  • Firmware limitations – BIOS and UEFI cannot directly boot complex operating systems

  • Filesystem awareness – Bootloaders understand filesystems and can load kernels from disk

  • Multi-boot support – Selecting between multiple operating systems or kernels

  • Kernel flexibility – Booting different kernel versions or recovery modes

  • Hardware abstraction – Unified boot process across different hardware

  • Security – Support for Secure Boot and cryptographic verification

Without bootloaders, modern operating systems like Linux would not be practical.


3. ⚙️ ~ High-Level Linux Boot Process

  • Power on – CPU starts execution

  • Firmware (BIOS/UEFI) – Hardware initialization and boot device selection

  • Bootloader – Loads kernel and initramfs

  • Linux kernel – Initializes drivers and mounts root filesystem

  • Init system – Starts system services and user sessions


4. 🧩 ~ Major Linux Bootloaders

GRUB (GRand Unified Bootloader)

Created by: GNU Project

Overview: GRUB is the most widely used Linux bootloader and has been the default choice for most Linux distributions for many years.

Key features:

  • Supports both BIOS and UEFI systems

  • Can boot Linux, Windows, BSD, and other OSes

  • Modular design with filesystem drivers

  • Advanced scripting and configuration language

  • Graphical and text-based menus

Why distributions use GRUB:

  • Extremely flexible

  • Mature and well-documented

  • Ideal for dual-boot and multi-boot systems

Typical usage:

  • Desktop Linux

  • Servers

  • Dual-boot systems


systemd-boot

Created by: systemd developers (originally by Intel)

Overview: systemd-boot is a minimalist UEFI-only bootloader designed to be simple, fast, and tightly integrated with modern Linux systems.

Key features:

  • UEFI-only (no BIOS support)

  • Simple text-based configuration

  • Uses standard EFI boot entries

  • Integrates with systemd tools

Philosophy:

  • Do one thing well

  • Avoid complex scripting

  • Favor convention over configuration

Typical usage:

  • Modern laptops

  • Clean UEFI installations

  • Arch Linux–based systems


Syslinux

Created by: H. Peter Anvin

Overview: Syslinux is a family of lightweight bootloaders primarily designed for removable media and simple boot scenarios.

Variants include:

  • ISOLINUX (CD/DVD)

  • PXELINUX (network boot)

  • SYSLINUX (FAT filesystems)

Key features:

  • Very small and fast

  • Simple configuration

  • Limited features compared to GRUB

Typical usage:

  • Live USBs

  • Installers

  • Embedded systems


rEFInd

Created by: Rod Smith

Overview: rEFInd is a graphical UEFI boot manager focused on usability rather than low-level boot logic.

Key features:

  • Automatic detection of installed OSes

  • Graphical icons and themes

  • Works as a boot manager rather than a full bootloader

Typical usage:

  • Multi-boot UEFI systems

  • Linux + Windows + macOS setups


Limine

Created by: Limine Bootloader Developers

Overview: Limine is a modern, advanced bootloader designed with simplicity, correctness, and modern standards in mind. It is increasingly popular in custom kernels and OS development.

Key features:

  • Supports BIOS and UEFI

  • Clean and well-defined boot protocol

  • Strong focus on correctness and stability

  • Minimal configuration complexity

Typical usage:

  • Custom Linux setups

  • OS development

  • Advanced users


5. 🗂️ ~ Bootloader Categories

By Firmware Type

  • BIOS bootloaders – Legacy systems

  • UEFI bootloaders – Modern systems

By Purpose

  • General-purpose – GRUB

  • Minimalist – systemd-boot

  • Removable media – Syslinux

  • Boot managers – rEFInd

  • Developer-focused – Limine


6. 🛠️ ~ Installing Bootloaders on Linux Distributions

Installing GRUB

Debian / Ubuntu / Linux Mint

Fedora

Arch Linux


Installing systemd-boot

systemd-boot is UEFI-only and requires:

  • A system booted in UEFI mode

  • A properly mounted EFI System Partition (ESP)

  • systemd version 233 or newer


Step 1: Verify UEFI mode

If the directory exists, the system is running in UEFI mode.


Step 2: Mount the EFI System Partition

The ESP is usually formatted as FAT32.

Example:

(Replace /dev/sdX1 with your actual EFI partition.)

On some distributions, the ESP may be mounted at /boot/efi instead.

circle-exclamation

Step 3: Install systemd-boot

This installs systemd-boot into the EFI System Partition and creates a UEFI boot entry.


Step 4: Create loader configuration

Create the main loader configuration file:

Example configuration:


Step 5: Create a boot entry

Create a boot entry for Linux:

Example:

Replace UUID=XXXX with your actual root filesystem UUID. You can find your UUID using the command sudo blkid .


Distribution notes

  • Arch Linux – Fully supported and commonly used

  • Ubuntu – Possible but considered advanced/manual

  • Fedora – Not officially recommended (uses GRUB by default)


Installing rEFInd

Debian / Ubuntu

Fedora

Arch Linux


7. 🔐 ~ Secure Boot

Secure Boot is a UEFI feature that ensures only cryptographically signed bootloaders and kernels are executed. Many Linux distributions provide signed versions of GRUB or systemd-boot to support Secure Boot out of the box.


8. 🧯 ~ Common Bootloader Issues

  • System boots directly into firmware

  • Missing boot menu

  • Kernel not found

Typical recovery steps:

  • Boot from a live USB

  • Mount the installed system

  • Reinstall the bootloader


🎯 ~ Conclusion

Bootloaders are a foundational component of Linux systems. They exist to overcome firmware limitations, enable flexible boot configurations, support multiple operating systems, and provide a secure startup process. Understanding different bootloaders, their design goals, creators, and installation methods gives Linux users deeper insight into how their systems truly start.

Last updated