Actually, the fundamental problem here may be that grub-mkrelpath includes the subvolume path in its output, but *only sometimes*, and not when we need it to. It looks as though fixing that, plus adding suitable rootflags= as Michael points out, may be enough.
Actually, the fundamental problem here may be that grub-mkrelpath includes the subvolume path in its output, but *only sometimes*, and not when we need it to. It looks as though fixing that, plus adding suitable rootflags= as Michael points out, may be enough.