Just for my understanding I am playing a bit with a situation where I
use Grub
have a system with luks and btrfs
want to rename the root subvol @ to @eos
I did the following
renaming btrfs subvol @ to @eos
renaming it in /etc/fstab
ran sudo systemctl daemon-reload
ran sudo grub-mkconfig -o /boot/grub/grub.cfg
When rebooting I end up in an emergency shell because I forgot to change @ to @eos somewhere else. If it were systemd-boot then I would have to change in /etc/kernel/cmdline but here I don’t know what I am missing.
As my test is in a VM I restarted from a snapshot, did the steps I mentioned initially and added sudo dracut-rebuild as last step. Still the same problem as before.
That is how I have always done it. Renaming a btrfs subvol has no impact on the running system so when you run dracut-rebuild or grub-mkconfig you are still getting the old values from the running system. That is why I chroot in after renaming.
I have not extensively tested all methods so it is possible that would also work. I was just mentioning how I have always done it.
I don’t use grub very often so it is possible that when using grub with encryption there is some additional step. I suppose you could try running grub-install --no-nvram and see if that helps. Although, off the top of my head I can’t think of why that would be needed.