I have multiple btrfs root subvolumes I want to show up in the menu. For each I create a linux_refind.conf and then add them to also_scan_dirs. According to the log each subvolume boot is found and a menu entry is made but what the actual graphical menu shows is one repeated and the others missing. If I shuffle the order in the also_scan_dirs then I can get a different one to show (and repeat) with others missing.
Beginningtoscandirectory'seldon\@root\boot'for'*.efi,*.EFI,vmlinuz*,bzImage*,kernel*'05:40:31-'seldon\@root\boot\vmlinuz-6.1-x86_64'isavalidloader05:40:31-Addingloaderentryfor'seldon\@root\boot\vmlinuz-6.1-x86_64'05:40:31-Loaderpathis'seldon\@root\boot\vmlinuz-6.1-x86_64'05:40:31-Findingloaderdefaultsfor'Boot seldon\@root\boot\vmlinuz-6.1-x86_64 from linux '05:40:31-Loadingfile'seldon\@root\boot\vmlinuz-6.1-x86_64.png'05:40:31-Loadingfile'seldon\@root\boot\vmlinuz-6.1-x86_64.icns'05:40:32-Loadingfile'seldon\@root\boot\vmlinuz-6.1-x86_64.jpg'05:40:32-Loadingfile'seldon\@root\boot\vmlinuz-6.1-x86_64.jpeg'05:40:32-Loadingfile'seldon\@root\boot\vmlinuz-6.1-x86_64.bmp'05:40:32-Searchingforaninitrdtomatch'seldon\@root\boot\vmlinuz-6.1-x86_64'on'linux'05:40:32-Kernelversionstringis'6.1-x86_64'05:40:32-Locatedinitrdis'seldon\@root\boot\initramfs-6.1-x86_64.img'05:40:32-Loadingfile'icons\os_boot.png'05:40:32-Loadingfile'icons\os_boot.icns'05:40:32-Loadingfile'icons\os_boot.jpg'05:40:32-Loadingfile'icons\os_boot.jpeg'05:40:32-Loadingfile'icons\os_boot.bmp'05:40:32-Loadingfile'icons\os_linux.png'05:40:32-Creatingsubscreen'Boot Options for seldon\@root\boot\vmlinuz-6.1-x86_64 on linux'05:40:32-Creatingloaderentryfor'Boot Options for seldon\@root\boot\vmlinuz-6.1-x86_64 on linux'05:40:32-Searchingforaninitrdtomatch'\seldon\@root\boot\vmlinuz-6.1-x86_64'on'linux'05:40:32-Kernelversionstringis'6.1-x86_64'05:40:32-Locatedinitrdis'\seldon\@root\boot\initramfs-6.1-x86_64.img'05:40:32-Havesuccessfullycreatedmenuentryfor'seldon\@root\boot\vmlinuz-6.1-x86_64'05:40:32-Donescanningdirectory'seldon\@root\boot'for'*.efi,*.EFI,vmlinuz*,bzImage*,kernel*'05:40:32-Beginningtoscandirectory'portable\@root\boot'for'*.efi,*.EFI,vmlinuz*,bzImage*,kernel*'05:40:32-'portable\@root\boot\vmlinuz-6.1-x86_64'isavalidloader05:40:32-Addingloaderentryfor'portable\@root\boot\vmlinuz-6.1-x86_64'05:40:32-Loaderpathis'portable\@root\boot\vmlinuz-6.1-x86_64'05:40:32-Findingloaderdefaultsfor'Boot portable\@root\boot\vmlinuz-6.1-x86_64 from linux '05:40:32-Loadingfile'portable\@root\boot\vmlinuz-6.1-x86_64.png'05:40:32-Loadingfile'portable\@root\boot\vmlinuz-6.1-x86_64.icns'05:40:32-Loadingfile'portable\@root\boot\vmlinuz-6.1-x86_64.jpg'05:40:32-Loadingfile'portable\@root\boot\vmlinuz-6.1-x86_64.jpeg'05:40:32-Loadingfile'portable\@root\boot\vmlinuz-6.1-x86_64.bmp'05:40:32-Searchingforaninitrdtomatch'portable\@root\boot\vmlinuz-6.1-x86_64'on'linux'05:40:32-Kernelversionstringis'6.1-x86_64'05:40:32-Locatedinitrdis'portable\@root\boot\initramfs-6.1-x86_64.img'05:40:32-Loadingfile'icons\os_boot.png'05:40:32-Loadingfile'icons\os_boot.icns'05:40:32-Loadingfile'icons\os_boot.jpg'05:40:32-Loadingfile'icons\os_boot.jpeg'05:40:32-Loadingfile'icons\os_boot.bmp'05:40:32-Loadingfile'icons\os_linux.png'05:40:32-Creatingsubscreen'Boot Options for portable\@root\boot\vmlinuz-6.1-x86_64 on linux'05:40:32-Creatingloaderentryfor'Boot Options for portable\@root\boot\vmlinuz-6.1-x86_64 on linux'05:40:32-Searchingforaninitrdtomatch'\portable\@root\boot\vmlinuz-6.1-x86_64'on'linux'05:40:32-Kernelversionstringis'6.1-x86_64'05:40:32-Locatedinitrdis'\portable\@root\boot\initramfs-6.1-x86_64.img'05:40:32-Havesuccessfullycreatedmenuentryfor'portable\@root\boot\vmlinuz-6.1-x86_64'05:40:32-Donescanningdirectory'portable\@root\boot'for'*.efi,*.EFI,vmlinuz*,bzImage*,kernel*'05:40:32-Beginningtoscandirectory'testing\@root\boot'for'*.efi,*.EFI,vmlinuz*,bzImage*,kernel*'05:40:32-'testing\@root\boot\vmlinuz-6.1-x86_64'isavalidloader05:40:32-Addingloaderentryfor'testing\@root\boot\vmlinuz-6.1-x86_64'05:40:32-Loaderpathis'testing\@root\boot\vmlinuz-6.1-x86_64'05:40:32-Findingloaderdefaultsfor'Boot testing\@root\boot\vmlinuz-6.1-x86_64 from linux '05:40:32-Loadingfile'testing\@root\boot\vmlinuz-6.1-x86_64.png'05:40:32-Loadingfile'testing\@root\boot\vmlinuz-6.1-x86_64.icns'05:40:32-Loadingfile'testing\@root\boot\vmlinuz-6.1-x86_64.jpg'05:40:32-Loadingfile'testing\@root\boot\vmlinuz-6.1-x86_64.jpeg'05:40:32-Loadingfile'testing\@root\boot\vmlinuz-6.1-x86_64.bmp'05:40:32-Searchingforaninitrdtomatch'testing\@root\boot\vmlinuz-6.1-x86_64'on'linux'05:40:32-Kernelversionstringis'6.1-x86_64'05:40:32-Locatedinitrdis'testing\@root\boot\initramfs-6.1-x86_64.img'05:40:32-Loadingfile'icons\os_boot.png'05:40:32-Loadingfile'icons\os_boot.icns'05:40:32-Loadingfile'icons\os_boot.jpg'05:40:32-Loadingfile'icons\os_boot.jpeg'05:40:32-Loadingfile'icons\os_boot.bmp'05:40:32-Loadingfile'icons\os_linux.png'05:40:32-Creatingsubscreen'Boot Options for testing\@root\boot\vmlinuz-6.1-x86_64 on linux'05:40:32-Creatingloaderentryfor'Boot Options for testing\@root\boot\vmlinuz-6.1-x86_64 on linux'05:40:32-Searchingforaninitrdtomatch'\testing\@root\boot\vmlinuz-6.1-x86_64'on'linux'05:40:32-Kernelversionstringis'6.1-x86_64'05:40:32-Locatedinitrdis'\testing\@root\boot\initramfs-6.1-x86_64.img'05:40:32-Havesuccessfullycreatedmenuentryfor'testing\@root\boot\vmlinuz-6.1-x86_64'05:40:32-Donescanningdirectory'testing\@root\boot'for'*.efi,*.EFI,vmlinuz*,bzImage*,kernel*'
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here is a workaround. Put all three refind_linux.conf stanzas in one and the boot from a single menu entry. Then use the submenu to boot into the alternate roots
Rod, I'm travelling this week but I will eventually try it and report back.
related:
Maybe refind could have a limited set of places to check for /boot on btrfs partitions. It wouldn't take long to check them if there weren't too many.
My suggestion would be
@/boot,@root/boot,*/@/boot,*/@root/boot,
Basically check one level only down for any /boot . For example
testing/@root/boot
This would allow multiple boots without having to add them all to also_scan_dirs albiet following some basic path convention as I stated. If that is too much for some then have option to only look for @/boot
Last edit: David Kebler 2023-02-28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
also_scan_dirs linux:seldon/@root/boot,linux:testing/@root/boot,boot
or also_scan_dirs linux:seldon/@root/boot,linux:portable/@root/boot,boot
work as expected.
it doesn't matter which /boot I put in the line. In other words it's not the kernel causing the problem, just whether there are two or three btrfs scan requests
I'll post some logs
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
it loads the second but then the log ends (i.e. refind hangs) when it starts to scan the third one.
Can you temporarily rename your rEFInd efi file and drop the RefindPlus efi in instead (rename to match the original rEFInd efi name) to see whether this issue exists there as well?
I have multiple btrfs root subvolumes I want to show up in the menu. For each I create a linux_refind.conf and then add them to also_scan_dirs. According to the log each subvolume boot is found and a menu entry is made but what the actual graphical menu shows is one repeated and the others missing. If I shuffle the order in the also_scan_dirs then I can get a different one to show (and repeat) with others missing.
refind.conf
pertienent part of the log
Here is a workaround. Put all three refind_linux.conf stanzas in one and the boot from a single menu entry. Then use the submenu to boot into the alternate roots
Last edit: David Kebler 2023-02-25
Could you please try the latest pre-release version, available in the git repository (as source code) or here:
https://www.rodsbooks.com/refind-bin-0.13.3.8.zip
That should fix the problem.
BTW, nice subvolume names. ;)
Rod, I'm travelling this week but I will eventually try it and report back.
related:
Maybe refind could have a limited set of places to check for /boot on btrfs partitions. It wouldn't take long to check them if there weren't too many.
My suggestion would be
Basically check one level only down for any /boot . For example
testing/@root/boot
This would allow multiple boots without having to add them all to also_scan_dirs albiet following some basic path convention as I stated. If that is too much for some then have option to only look for @/boot
Last edit: David Kebler 2023-02-28
Rod,
I loaded the latest 0.14.0.2 and the drivers as well.
I add additional boot scan entries it works with two but if I add three requests refind hangs (never completes scanning)
so for example
also_scan_dirs linux:seldon/@root/boot,linux:portable/@root/boot,linux:testing/@root/boot,boot
hangs but
also_scan_dirs linux:seldon/@root/boot,linux:testing/@root/boot,boot
or
also_scan_dirs linux:seldon/@root/boot,linux:portable/@root/boot,boot
work as expected.
it doesn't matter which /boot I put in the line. In other words it's not the kernel causing the problem, just whether there are two or three btrfs scan requests
I'll post some logs
Yup according to logs it loads the second but then the log ends (i.e. refind hangs) when it starts to scan the third one.
Was this fix only in 13.3.8 and not the 14.0.2 release?
Can you temporarily rename your rEFInd efi file and drop the RefindPlus efi in instead (rename to match the original rEFInd efi name) to see whether this issue exists there as well?
https://github.com/dakanji/RefindPlus#installation
Last edit: dakanji 2023-06-18