Limine is an advanced, portable, multiprotocol boot loader originally developed as the reference implementation for the Limine boot protocol, but also supporting the ability to boot Linux as well as to chainload other boot loaders.
While Limine supports BIOS and several other architectures, this is a brief guide written specifically for installing Limine on UEFI x86_64 systems. After completing this guide, you might want to follow up with the official documentation for detailed usage here.
Limine can be used as an alternative to the GRUB bootloader.
Prerequisites
efibootmgr package, which can be installed using sudo apt install efibootmgr
.
Core bootloader file [BOOTX64.EFI] of Limine, current latest version can be downloaded from here
EFI partition must be mounted to /boot.
Note: The EFI partition must use the FAT12, FAT16, or FAT32 filesystem.
Installation Steps
Deploying Limine on UEFI systems involves copying the BOOTX64.EFI
file (that we downloaded earlier) to /boot. I will be copying it to /boot/limine
for the sake of organization.
Now we will write a configration file for Limine, which i will place in /boot/limine/limine.conf
Before we write the configration, we must know the following:
- UUID of the root directory, which can be found using
sudo blkid
command. - Path to vmlinuz and initramfs, that are typically found in
/boot
, BOTH OF THE FILES MUST BE THE SAME VERSION, for exampleinitrd.img-6.8.0-44-generic
andvmlinuz-6.8.0-44-generic
.
The initrd can sometimes be namedinitramfs
, for example,initramfs-6.8.0-44-generic.img
.
Here follows a simple example configuration that contains boot menu entries describing a typical Linux-Windows dual boot setup:
timeout: 5 # Specifies the timeout in seconds before the first entry is automatically booted
remember_last_entry: no # If set to yes, remember last booted entry.
wallpaper: boot():/boot/limine/wallpaper.png # Must be in the /boot directory. BMP, PNG, and JPEG formats are supported.
/Zorin OS
protocol: linux
kernel_path: boot():/vmlinuz-6.8.0-44-generic
kernel_cmdline: root=UUID=XXXXXX-XXXX-XXXX-XXXX-XXXXX rw # Kernel parameters can be passed here
module_path: boot():/initrd.img-6.8.0-44-generic
#Incase of dual boot
/Windows 11
protocol: efi_chainload
image_path: boot():/path/to/bootmgfw.efi
Finally, to create an entry in the UEFI Firmware, use the following command:
sudo efibootmgr --create --disk /dev/sda --part 2 --label "Zorin OS with Limine" --loader '/limine/BOOTX64.EFI'
Replace /dev/sda
and 2
of the --part
argument to the disk and partition number on which the EFI System Partition is hosted.
Note: Do NOT include
/boot
when pointing to Limine Bootloader file.
/boot/limine/BOOTX64.EFI
/limine/BOOTX64.EFI