last year when I went back to Arch from Manjaro, I made a critical error. I'm not sure if I was just tired when partitioning things off or what. but I made my root only 20GB instead of the 50 that I had intended. I know in a lot use cases that'll be fine, but in mine, not so much. with steam compat taking up 1-2gb and keeping one version of pacman cache, I'm constantly getting the redline warning.
Tonight I plan on booting to live and resize my luks drive and hopefully not fuck it. and if I do? oh well...Timeshift will hopefully save me.
I recommend next time to use btrfs. With / and /home (at least) as separate subvolumes. Each subvolume will use the space it needs, and no more. If you have a 500Gb SSD with 300Gb in /home, and 20 in / they both have 180Gb they can use.
And when you manage to fill the 500Gb, it's easy to just add another drive to the volume.
Btrfs is really cool, just a warning: I had a surprise when I found out the subvolumes make a device more of a hassle to mount externally, you can't just put it on an external HDD enclosure and expect it to work as painlessly as it is with more "traditional" file systems, I had to mount each subvolume manually as GUI file managers only mounted the root.
It's not complicated, but more than I'd hoped for.
Booted to live and used gparted.
had to fiddle with un-encrypting/re-encrypting the partitions in order to move everything around correctly, but everything was successful.
nothing ended up needing to be updated in boot. systemd-boot is so basic that so long as the uuids don't change, then it don't care.
Highly recommend using lvm in the future. You can undersize your partitions and when whichever one you need more space on it's easy to grow. Also really easy to live migrate to other drives as needed. Good luck.
in many cases you could simply move the directory that is taking too much space to different directory then either make softlink or if that didnt work you can use mount --bind
for example if directory /var/cach/mygame is too big, move my game to /mnt/part2/mygames
then either do ln -s /mnt/part2/mygames /var/cach/ or mount --bind /mnt/part2/mygames /var/cach/mygames
the miunt option is not permanent so if it works, u will need to add it to /etc/fstab to make it permenent
Remember to make sure that all the boot configs are updated correctly after the resize. It could happen that your boot manager does not find the partition to unlock after a resize
If you resize the partition? No, the UUID gets allocated when the partition is created and stays the same for the lifetime of the partition. It only changes if you explicitly change it manually. Which is something that's only needed very rarely.
For example I had to do it when I migrated my root disk to a larger SSD by cat-ing the entire disk to the new one and I wanted to keep both connected for a while (so I can boot into the old one in case anything went wrong). I had to change the UUID of the partition on the new disk but I still ran into some obscure grub issues and had to boot a system rescue live stick into the new disk to update grub properly. Overall it's not a very good idea, in the future I think I'll stick to rsync -avx root into the new partition.
In my case it actually changed after i resized it. It was unexpected and broke my system. After i adjusted the UUID in the boot config it worked again.
resize2fs and lvreduce? I mean if you have used LVM... It's not easy, but doable without a reinstall. Yeah. the guides also tell people to make a backup first.