Migrating from grub to rEFInd. Snapshots and other things

No, the problem is with device naming - compare my findmnt output with yours (the “SOURCE” column).

I see it but i don’t know what to change to make it right?

Edit: Here?

 options "root=PARTUUID=4291d82f-b88f-4b2d-89e0-738d44b6e8c3 rw add_efi_memmap rootflags=subvol=@ initrd=@\boot\amd-ucode.img"
[ricklinux@rick-virtualbox ~]$ findmnt -t btrfs
TARGET       SOURCE             FSTYPE OPTIONS
/            /dev/sda2[/@]      btrfs  rw,noatime,compress=zstd:3,space_cache=v2,subvolid=256,subvol
├─/swap      /dev/sda2[/@swap]  btrfs  rw,noatime,compress=zstd:3,space_cache=v2,subvolid=260,subvol
├─/home      /dev/sda2[/@home]  btrfs  rw,noatime,compress=zstd:3,space_cache=v2,subvolid=257,subvol
├─/var/cache /dev/sda2[/@cache] btrfs  rw,noatime,compress=zstd:3,space_cache=v2,subvolid=258,subvol
└─/var/log   /dev/sda2[/@log]   btrfs  rw,noatime,compress=zstd:3,space_cache=v2,subvolid=259,subvol
[ricklinux@rick-virtualbox ~]$ 

I got this now but still doesn’t boot into the snapshots.

And what’s the refind-btrfs command’s output? There really shouldn’t be any errors.

I did start the refind-btrfs.service. I deleted all the old snapshots and made two more.

[ricklinux@rick-virtualbox ~]$ sudo refind-btrfs
[sudo] password for ricklinux: 
Initializing the block devices using lsblk.
Initializing the physical partition table for device '/dev/sda' using lsblk.
Initializing the live partition table for device '/dev/sda' using findmnt.
Initializing the physical partition table for device '/dev/sr0' using lsblk.
Initializing the live partition table for device '/dev/sr0' using findmnt.
Found the ESP mounted at '/boot/efi' on '/dev/sda1'.
Found the root partition on '/dev/sda2'.
Searching for snapshots of the '@' subvolume in the '/.snapshots' directory.
Found subvolume '@' mounted as the root partition.
Found 64 snapshots of the '@' subvolume.
Searching for the 'refind.conf' file on '/dev/sda1'.
Found 1 boot stanza matched with the root partition.
WARNING: No changes were detected, aborting...
[ricklinux@rick-virtualbox ~]$ 

Edit: I mean i guess i deleted the backups that it keeps 5?

Run touch /etc/refind-btrfs.conf and try again.

What did that command do?

[ricklinux@rick-virtualbox ~]$ sudo refind-btrfs
Initializing the block devices using lsblk.
Initializing the physical partition table for device '/dev/sda' using lsblk.
Analyzing the 'refind-btrfs.conf' file.
Initializing the live partition table for device '/dev/sda' using findmnt.
Initializing the physical partition table for device '/dev/sr0' using lsblk.
Initializing the live partition table for device '/dev/sr0' using findmnt.
Found the ESP mounted at '/boot/efi' on '/dev/sda1'.
Found the root partition on '/dev/sda2'.
Searching for snapshots of the '@' subvolume in the '/.snapshots' directory.
Found subvolume '@' mounted as the root partition.
Found 64 snapshots of the '@' subvolume.
Searching for the 'refind.conf' file on '/dev/sda1'.
Found 1 boot stanza matched with the root partition.
Writing to the 'btrfs-snapshot-stanzas/arch_vmlinuz-linux.conf' file.
[ricklinux@rick-virtualbox ~]$ 

It shows the snapshots but just bounces back out when i press enter.

Screenshot_20220912_111044

Paste the contents of the generated boot stanza’s file - it should be located in the “btrfs-snapshot-stanzas” directory, inside the rEFInd’s root directory (somewhere on the ESP).

Paste it where? To replace the one i have?

Edit: This is it.

menuentry "Arch Linux - Stable (rwsnap_2022-09-12_11-13-58_ID384)" {
    icon /EFI/refind/icons/os_arch.png
    volume ARCH
    loader /@/root/.refind-btrfs/rwsnap_2022-09-12_11-13-58_ID384/boot/vmlinuz-linux
    initrd /@/root/.refind-btrfs/rwsnap_2022-09-12_11-13-58_ID384/boot/initramfs-linux.img
    options "root=PARTUUID=4291d82f-b88f-4b2d-89e0-738d44b6e8c3 rw add_efi_memmap rootflags=subvol=@/root/.refind-btrfs/rwsnap_2022-09-12_11-13-58_ID384 initrd=@\root\.refind-btrfs\rwsnap_2022-09-12_11-13-58_ID384\boot\amd-ucode.img"
    submenuentry "Arch Linux - Stable (rwsnap_2022-09-12_11-13-50_ID383)" {
        loader /@/root/.refind-btrfs/rwsnap_2022-09-12_11-13-50_ID383/boot/vmlinuz-linux
        initrd /@/root/.refind-btrfs/rwsnap_2022-09-12_11-13-50_ID383/boot/initramfs-linux.img
        options "root=PARTUUID=4291d82f-b88f-4b2d-89e0-738d44b6e8c3 rw add_efi_memmap rootflags=subvol=@/root/.refind-btrfs/rwsnap_2022-09-12_11-13-50_ID383 initrd=@\root\.refind-btrfs\rwsnap_2022-09-12_11-13-50_ID383\boot\amd-ucode.img"
    }
}

Just to be sure. I have the standard EOS install with erase disc swap file and btrfs. I did not change anything for permissions. Not sure if that has anything to do with the snapshots? Do they have to be readable and writable in order to boot into them?

This looks perfectly fine to me, I don’t see why would rEFInd complain about it.
You could try adjusting the boot options yourself and possibly also changing the “log_level” option’s value to something higher than zero.

refind-btrfs by default creates a writable snapshot from a found snapshot in case the latter is read-only. It is also possible to convert the found snapshot’s read-only flag with this option. This way, a writable snapshot is not created.

What did that command do?

Sorry, I didn’t see this question. It has to do with this config option.

So it shows snapshots from the stanza. But it doesn’t boot into any of them. It just bounces me out back to the icon.

Yes, I’m aware but there has to be something rEFInd is supposed to log in that case. It’s just that logging is, by default, turned off because the “log_level” option’s value is set to zero. Try setting it to one and check the “refind.log” file’s contents.

1 Like
----------Scanning for user-configured boot stanzas----------
17:04:11 - Adding manual loader for '\@\root\.refind-btrfs\rwsnap_2022-09-12_11-22-30_ID387\boot\vmlinuz-linux'
17:04:11 - Searching for an initrd to match '\@\root\.refind-btrfs\rwsnap_2022-09-12_11-22-30_ID387\boot\vmlinuz-linux' on '299 MiB FAT volume'
17:04:11 - Located initrd is '(null)'

==========Scanning for tools==========
17:04:11 - Finding boot order entries
17:04:11 - Adding EFI loader entry for 'EFI Internal Shell'
17:04:11 - '\EFI\BOOT\bootx64.efi' is a valid loader
17:04:11 - '\EFI\BOOT\bootx64.efi' is a valid loader

==========Entering main loop==========

==========Launching 'Boot @\boot\vmlinuz-linux from root '==========
17:04:13 - Starting vmlinuz-linux
17:04:13 - Using load options 'root=UUID=4291d82f-b88f-4b2d-89e0-738d44b6e8c3 rw rootflags=subvol=@ loglevel=3 nowatchdog nvme_load=YES initrd=@\boot\initramfs-linux.img'
17:04:13 - '\@\boot\vmlinuz-linux' is a valid loader
17:04:13 - Launching 'vmlinuz-linux'

Reminded me off a Burlington bridge :bridge_at_night: close down back in 2014 due to dump truck keeping the trailer up

:man_facepalming:

1 Like

Definitely getting a better sense as to why no distros are using rEFInd as their default. :slight_smile:

Why is that?