I didn’t do an install, I used the update-grub as instructed elsewhere.
It’s all pretty academic now as I’ve moved on, but I did show that it works if you manually mount without mentioning the subvol=, it does indeed mount the default subvolume/snapshot. So there is no reason why is should not be able to boot from it if setup to do so.
sudo mount -U c863c9b5-d87a-4196-bdfb-5002d20e4ce0 /mnt 32 ✘
So it did work as intended, it’s just that within all the grub creation scripts there are commands deep down that set the boot back to /@ every time.
if you set the GRUB_CMDLINE_LINUX_DEFAULT and remove all reference to subvol=
GRUB_CMDLINE_LINUX_DEFAULT="root=UUID=c5bf86f84-a752-4841-bcba-21f873673765 quiet splash udev.log_priority=3"
after rebuilding the grub the /boot/grub/grub.cfg looks like below. even if you have set the /etc/default/grub to not use /@ or even have a subvol=
after an update-grub its back to having subvol=X and also things like linux /@/boot/vmlinuz- so also using /@ as path for linux & initrd
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5bf86f84-a752-4841-bcba-21f873673765' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root 5bf86f84-a752-4841-bcba-21f873673765
linux /@/boot/vmlinuz-6.9-x86_64 root=UUID=5bf86f84-a752-4841-bcba-21f873673765 rw rootflags=subvol=@ quiet splash udev.log_priority=3
initrd /@/boot/intel-ucode.img /@/boot/initramfs-6.9-x86_64.img
}
I did find where it was being changed in /etc/grub.d/10_linux
case x"$GRUB_FS" in
xbtrfs)
rootsubvol="`make_system_path_relative_to_its_root /`"
rootsubvol="${rootsubvol#/}"
if [ "x${rootsubvol}" != x ]; then
GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
fi;;
xzfs)
rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
;;
esac
but i was getting down deep in the weeds by then and decided to just leave it and move on. But i still believe that it could be done on Manjaro.
(These script snippets were collected from different places and so may not be accurate i.e. different UUIDs etc, but they are just for demonstration).
EDIT: interesting thread you linked, i might get the VM back up and try grub-install just for kicks.