1. Overview

A bootloader is a program written in machine code that loads the operating system into RAM during the boot process.

In this tutorial, we’ll learn how to install and use a few popular Linux bootloaders.

2. rEFInd

rEFInd is a boot manager for UEFI-based machines. It’s highly customizable and has a wide variety of themes that are easy to install. rEFind supports x86, x86-64, and ARM64 architecture. However, it does not support older BIOS-based computers, which is not a problem if we have a relatively new machine.

2.1. Installing rEFInd

To install rEFInd, we should run these commands:

$ sudo apt-add-repository ppa:rodsmith/refind
$ sudo apt-get update
$ sudo apt-get install refind

After that, we should run the rEFInd installation script:

$ sudo refind-install
ShimSource is none
Installing rEFInd on Linux....
ESP was found at /boot/efi using vfat
Installing driver for ext4 (ext4_x64.efi)
Copied rEFInd binary files

Copying sample configuration file as refind.conf; edit this file to configure
rEFInd.

Keeping existing NVRAM entry
rEFInd is set as the default boot manager.
Existing //boot/refind_linux.conf found; not overwriting.

Installation has completed successfully.

The script has successfully installed the program. We can usually find its files at /boot/efi/EFI/refind.

2.2. Booting Into Refind

After we restart the machine, we can see the rEFInd boot manager:

rEFInd

We can also hide the options we don’t use by pressing the del button. And, we can apply custom themes to make it look better:

rEFInd Theme

We’ve finished setting up rEFInd.

3. GRUB

GRUB is the default bootloader for many Linux distributions like Fedora and Ubuntu. It’s one of the most popular bootloaders and supports UEFI and BIOS. In addition, it can boot Linux, Windows, and macOS operating systems. Moreover, it supports IA-32, x86-64, IA-64, ARM, PowerPC, s390x, MIPS, RISC-V and SPARC architecture.

3.1. Installing GRUB

Many Linux distributions automatically install GRUB during the installation process. But, we can also manually install it.

First, we should find the disk’s name by running fdisk:

$ sudo fdisk -l
...
Disk /dev/nvme0n1: 476.96 GiB, 512110190592 bytes, 1000215216 sectors
...

Now that we’ve found the disk name, we should run grub-install:

$ sudo grub-install /dev/nvme0n1
Installing for x86_64-efi platform.
Installation finished. No error reported.

We’ve successfully installed GRUB on our machine.

4. BURG

BURG is a bootloader derived from GRUB and uses a new object format that allows it to support Windows, Linux, macOS, Solaris, FreeBSD, etc. It’s very customizable and offers both graphical and text interfaces. However, the project is no longer maintained and won’t have any more updates.

5. LILO

LILO (Linux Loader) is another Linux bootloader and was the default bootloader for many Linux distributions for years. It supports many filesystems, including NTFS, FAT32, ext2, ext3, and ext4. LILO was discontinued in December 2015 and is considered a legacy bootloader. However, it’s useful for older machines.

6. Conclusion

In this article, we learned about a few popular Linux bootloaders and how to install and use them.