I’ll skip the usual introduction for now (though EnOS was indeed the end of my distro-hopping) and get straight to the point; I’ve been tinkering with rEFInd for a few days now and am nearing the end of my tether.
After confirming that some specialised software (joystick firmware configurator, for those wondering) works in a virtualised environment, I recently retired my long-standing yet decreasingly-used Windows backup drive to free up space to house a replacement VM as well as some other experiments. I went to check that the Windows Boot Manager entry had disappeared from my rEFInd install, which had sat unused for months as I hadn’t needed to swap boot device, only to find there was no entry for rEFInd at all. A quick reinstall and run of refind-install fixed that, but only provided an option to boot via GRUB, the option I had already been using directly from the motherboard’s firmware.
I’ve been wanting to move away from GRUB for a while (years of distro-hopping has given me plenty of time to devise a slick rEFInd theme) so I set to work on making an option to boot EnOS directly. No matter what I tried, though, stanzas using /boot/vmlinuz-linux and /boot/initramfs-linux.img never worked, giving a ‘not found’ error. As a troubleshooting measure, I tried copying the files (and microcode) to /boot/efi/EFI/EndeavourOS, and sure enough stanzas using this path work fine. What I really wanted though was to have rEFInd’s autodetect abilities generate an entry with the kernel and ramdisk in their default place, else I’d have to recopy them everytime they get updated - failed boots after an update yesterday was proof enough of that. TL;DR: Direct boot with rEFInd works manually, but I’m fairly sure there’s an easier and more official way to go about it.
My only theory was that rEFInd can’t read any higher than it’s own location, so /boot is inaccessible. Examples on the web all suggest this isn’t the case though, and given refind_linux.conf lives at this level, I’m fairly sure that has nothing to do with it. I ask those more versed in EFI dabbling than I for help in getting the easy way working. A copy of my attempted fixes in refind_linux.conf is available here (partition data available if needed) and refind.conf is here. I appreciate any help, though I understand the issue is neither important nor urgent - I can still use GRUB, after all.
Replicating the refind_linux.conf setup of the Arch Wiki.
Changing loader and initrd paths from /boot/… to just /…
Disabling the dont_scan_dirs setting in refind.conf (used to hide the GRUB entry.)
Installing another copy of EnOS to a different system disk (the new GRUB entry was detected, but there was no option for stub booting.)
Resetting rEFInd by uninstalling completely and reinstalling.
I’ve now got a completely stock install of rEFInd, which detects grubx64.efi in /boot/efi/EFI/EndeavourOS as well as my manually copied vmlinuz-linux, initramfs-linux.img and amd-ucode.img, the latter three are currently unbootable pending a recopy from /boot/. Still no further towards having rEFInd autodetect the versions in the ‘normal’ location of /boot/, though.
I hadn’t been, but adding it as described by Rod himself hasn’t changed anything; selecting the entry just cuts to a black screen then returns to the selection menu. Just for sanity, Dolphin says /boot is mounted from /dev/nvme0n1p2, the PARTUUID of which has been used below. Now working with this stanza: