Limine bootloader for EasyOS
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:
https://easyos.org/user/how-to-update-easyos.html
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:
https://limine-bootloader.org/
Project page:
https://github.com/limine-bootloader/limine
The Arch guys have good documentation (as usual):
https://wiki.archlinux.org/title/Limine
What we really want is the simple conceptual separation of boot
manager from the actual EasyOS installation, as described in
frugal install:
https://bkhome.org/news/202206/simple-frugal-install-steps-and-update-fix.html
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:
TIMEOUT=5
:EasyOS Test
COMMENT=A comment for this entry
PROTOCOL=linux
KERNEL_PATH=boot://2/easyos/vmlinuz
MODULE_PATH=boot://2/easyos/initrd
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:
https://github.com/limine-bootloader/limine/issues/179
I have failure of legacy-BIOS boot on my Lenovo Ideacentre, have
raised that issue:
https://github.com/limine-bootloader/limine/issues/180
Limine is looking promising!
EDIT 2022-06-21:
Forum discussion about Limine here:
https://forum.puppylinux.com/viewtopic.php?t=6190
Tags: easy