site  contact  subhomenews

Limine bootloader for EasyOS

June 20, 2022 — BarryK

The EasyOS image file has two different bootloaders, rEFInd for UEFI-BIOS booting, and syslinux for legacy-BIOS booting. You would download the image file and write it to a USB-stick and boot it.

Prior to version 4.1, the three files 'vmlinuz', 'initrd' and 'easy.sfs' are in the boot-partition. This is a vfat partition with boot-flag and esp-flag set, and it has rEFInd and syslinux. There is also a second partition, the ext4 working-partition.

For version 4.1, I placed 'easy.sfs' in the working-partition, as it could then be moved into the releases folder, rather than copied, a much faster operation.

In this page, I described how to update 4.1:

The manual steps to update in that link, have these snapshots showing how to drag-and-drop the latest files, firstly into the boot-partition:


And into the working-partition:


It was williwaw on the forum who made a comment about keeping all the EasyOS files separate from the boot-partition, which got me thinking. However, syslinux requires 'vmlinuz' and 'initrd' to be in the boot-partition.

If I want to have all three files in the working-partition, one possibility is to use extlinux, installed in the working-partition. But then don't have the clear separation between the bootloaders and the EasyOS working-partition.

I looked at some alternative bootloaders, and discovered Limine:

Project page:

The Arch guys have good documentation (as usual):

What we really want is the simple conceptual separation of boot manager from the actual EasyOS installation, as described in frugal install:

The three files somewhere, together, in the working-partition, as shown in this snapshot from above link:


Limine achieves this goal. It is both a UEFI-BIOS and a legacy-BIOS bootloader, and there will be just the one menu for both boot modes. Limine is installed in a bootable esp vfat partition, which is the boot-partition in the image file, and the three EasyOS files can be anywhere else.

To show this, I setup the image file with Limine installed in the boot-partition and having this 'limine.cfg' file:


:EasyOS Test
COMMENT=A comment for this entry
KERNEL_CMDLINE=initrd=initrd rw BOOT_UUID=e61a3ded-95c9-4209-ba43-3a094ad81227 BOOT_DIR=easyos WKG_UUID=e61a3ded-95c9-4209-ba43-3a094ad81227 WKG_DIR=easyos

The syntax of those KERNEL_PATH and MODULE_PATH variables is great; the "2" means the second partition in the boot drive. Fantastic, the three files are in the working-partition.

Limine doesn't have automatic scanning like rEFInd, but then, I don't use automatic scanning anyway.

Notice those BOOT_UUID and BOOT_DIR parameters on the kernel commandline, which are overrides for the BOOT_SPECS file inside the 'initrd'.
They are no longer needed, as there is nothing that EasyOS has to access in the boot-partition. If I embrace Limine, then can completely remove those two parameters from all scripts in EasyOS. Clear separation -- fantastic!

I hit a problem, Limine did not recognize the ext4 partition with "encrypt" feature set. Raised an issue and it was fixed the next day:

I have failure of legacy-BIOS boot on my Lenovo Ideacentre, have raised that issue:

Limine is looking promising!

EDIT 2022-06-21:
Forum discussion about Limine here:  

Tags: easy