Add space to the root volume

I’d rather keep the root small (I have usually 24GiB root) and have separate filesystem for flatpaks that is mounted to /var/lib/flatpak

If filesystems are not trivial to resize (e.g. they have XFS and are not on LVM volumes) and space allocation is uncertain, then I’d have the “data” filesystem (for snaps, flatpaks, VM images, etc) and bind mount subdirs from there.

Indeed.

  1. Stop (flatpak) service that uses a directory
  2. Move /var/lib/flatpak to other filesystem (that has space, e.g. to /home/)
  3. Symlink or bind-mount /home/flatpak to /var/lib/flatpak (I prefer bind mounts)
  4. Restart the service

You don’t need to “rebuild” the machine, if you do the above and you don’t have to run flatpaks/snaps/etc while you have a “maintenance break” for the transfers.