Btrfs system wont boot from the default subvolume?

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.