The question (and some answers) of modern day partition sizes for Linux
I have some new NVMe drives for my home desktop that will take over from my current SSDs as my 'system' drives, acting as boot drives, the root filesystem drives (in a software RAID mirror), and for a ZFS pool that will contain my home directory and other things that I want to be as fast as possible. This switch is a good time to consider (and reconsider) the partitioning for all of this, especially since I'll be living with it for some time.
As with my work machine's latest partitioning, I'll be using GPT partitioning and setting up my standard of an EFI System Partition (ESP) and a BIOS boot partition in addition to the partitions for Linux. On my office workstation I used a 1 MB BIOS boot partition and a 256 MB ESP, but when I went looking this time the advice was to use a larger ESP, such as even 550 MBytes (see here, here, and here). My NVMe drives are relatively large, so I feel I can afford the extra few Mbytes of space as insurance. Even though it's almost certainly overkill, I'm also going to make a 2 MByte BIOS boot partition. A few more MB now is cheap insurance.
My work machine is set up with a a 70 GB root partition and a
separate 1 GB swap partition, both mirrored, on much smaller 500
GB NVMe drives. My current home partitioning uses a 100 GB root
partition (on 750 GB SSDs), and I'm already thinking of making
that 110 GB,
if not more. I may be using under 50 GB of disk space in my home
root filesystem today, but Linux systems have done nothing but grow
over the time I've been using them. However this may be overkill.
It would take a lot of growth in
/usr and crucial parts of
to eat up 30 or 40 GB more of space, and it's likely that a lot of
people would resist that sort of growth in a normal Linux installation.
(There's always Flatpaks and Snaps and all of the other ways that people are busy inventing to ship giant runtimes for completely ordinary programs, cf Flatpak Is Not the Future. But if I have to use those, I can probably relocate them into a ZFS filesystem mounted at a strategic point.)
The other thing I'm wondering about is my traditional habit of a 1 GB (mirrored) swap partition. I've considered this nothing more than a precaution against the kernel getting unhappy about not having any swap, but swap on NVMe drives (with their high speed and high bandwidth) is a lot more reasonable than it used to be. At the same time, actual swap partitions are increasingly going out of fashion, with swap files in the root filesystem increasingly the default (it's the Ubuntu installer's default, for example). I'm old fashioned so swap files make me slightly nervous, but they're clearly more flexible since you can resize them very freely.
(Plus, modern Fedora systems prefer ZRAM to actual disk swapping, so in practice my on disk swap area may never be used, regardless of how I set it up.)
All of this makes it tempting to have no swap partition and a larger root filesystem, just in case. I'd still have a swap file of 1 GB or maybe 2 GB, but that will feel a lot less painful if it's just some space I'm currently using in the root filesystem, space that I could reclaim if I really had to.