Thanks for your recommendation, I will change hdd() to uuid() as I feel the UUID is more robust.
Thanks, I’ll keep that in mind.
My last question:
I’m curious, can you compare Limine with systemd-boot and rEFInd?
I’ve heard that systemd-boot and rEFInd have snapshot boot capabilities.
However, it is convenient for multibooting (one of the reasons it exists). The easiest way to experiment with it is to try it (it won’t harm other bootloaders on your system):
The rEFInd UEFI Bootloader
Adding the rEFInd Bootloader to the mix does no harm to existing bootloaders. Manjaro and Windows are chainloaded from rEFInd and continue to boot as normal.
If you enjoy customising the boot experience (themes), or like to have additional boot options (redundancy), then rEFInd is a worthwhile consideration.
rEFInd can bypass GRUB 2 and boot the kernel stub directly, which is handy in the event that GRUB 2 fails to boot - you are still able to then boot into Manjaro and fix the issue in relative comfort.
rEFInd comes with ‘sane defaults’ - everything typically works (OOTB).
Installing rEFInd on a Manjaro/Windows multiboot system should give the following boot choices by default (the naming may be different):
Boot Microsoft EFI boot from ESP This option boots Windows via the Microsoft bootloader.
Boot EFI\Manjaro\grubx64.efi from ESP This option boots Manjaro via GRUB 2.
Boot boot\vmlinuz-6.6-x86_64 from MANJARO This option boots Manjaro via the Kernel stub, bypassing GRUB 2.
Options display as icons; activate with keyboard/mouse:
The default theme is an acquired taste.
However, after a little hunting you’ll soon find a variety of themes online, ranging from the neat professional appeal through to the quite bizarre.
The simplest way to see rEFInd in action is to install it;
# Install rEFInd from the official Manjaro repo
sudo pacman -S refind
# Use rEFInd's own tool to setup the ESP directory
sudo refind-install
I have never used rEFInd myself, but from what I know, many Btrfs & rEFInd users often use rEFInd together with Grub.
For those who want to boot via motherboard EFI → rEFInd Bootloader → Grub Bootloader → Btrfs snapshot or system?
If you don’t mind using two bootloaders, you can setup rEFind and Grub.
Systemd-boot
Both systemd-boot and Limine follow a similar philosophy by avoiding the integration of many bloated third-party drivers (e.g., LUKS, different decryption methods, LVM, various file systems, and more …). Kernel and initramfs should handle these tasks, not the bootloader.
What Limine offers that systemd-boot doesn’t:
The ability to checksum any boot files on an unsafe, exposed FAT32 partition.
Menu selection in a tree view (ideal for navigating snapshot lists)
Background theme and custom colors.
Check systemd-boot with the extra tool sdbootutil for OpenSUSE if you prefer a blue screen.
I played rEFInd a while ago, it detected all boot entries simply. It can boots to Limine or Grub.
I notice, some of them are unused entries like vmlinuz in rEFInd, as they boot nothing. Anyway, I can ignore them. Thanks for your suggestion!
Fortunately, you don’t have to ignore them. The rEFInd configuration file allows you to disallow detection of bootloaders using several criteria - for example by path, volume label or even file system.
The configuration file is heavily commented, so keep a copy of it handy for reference, if you use rEFInd.
I’ve not known of refind-btrfs before now, but it appears to be a helper for creating stanzas (boot entries) for rEFInd; specifically targetting BTRFS systems – refind-btrfs is clearly not Rod Smith’s work, but interesting nonetheless.
As you said, refind-btrfs (AUR or source) does this, which works just like the official package grub-btrfs.
It doesn’t matter which third party snapshot manager you use, or if you are just using btrfs subvolume snapshot yourself. This just attempts to detect read/write root FS snapshots, then adds them to your boot menu.
As previously mentioned, I’ve not been aware of refind-btrfs before now; however, it looks like you’d need rEFInd installed and operating well before using it. You did that, right?
rEFInd works without snapshot booting, but refind-btrfs setup is horrible.
Grub can not remember my last selection.
Systemd-boot with sdbootutil looks awful to me.
Limine solves all issues and allows me to restore a snapshot with just one click.
rEFInd, Grub, and systemd-boot don’t offer what I want.
I’m going to remove Grub and rEFInd and set Limine as my default bootloader.