I searched earlier on internet about this but it's still confusing for me. I have a 500GB SSD and 2TB HDD and I have this scheme but I don't know how big I need to make the each partition:
- Solid state: / (root filesystem), /usr, /usr/local, /opt
- Spinning disk: /var, /home, /tmp, swap
Please help me and thanks in advance!
2 Answers
You're overcomplicating things.
Don't separate /usr and /opt, it's pointless. If you wish to have all of them on single disk, just create a single SSD partition for / and you're done. You don't have to worry about partition sizes.
Separating /var is also pointless, same with /tmp which is regularly emptied on modern OSes so it won't eat up a lot of your SSD's space (on a 500 GB disk you won't even notice).
Modern recommendation for swap is usually 4 GB if you don't need hibernation, otherwise you'll need at least as much as your RAM because it will be dumped into swap on hibernation. I'd recommend to put it on SSD too because it will significantly improve swapping performance. Modern SSD's longevity won't be affected noticeably. Note that by default Ubuntu will create a swap file in filesystem root instead of using a partition.
That leaves entire HDD for /home.
If you're going to use EFI boot, which is highly recommended because it's been a standard for a decade or so, you'll also need an EFI System Partition (ESP). In Ubuntu it's mounted under /boot/efi. 300 MB is usually sufficient, but you may want to play it safe and assign 500 MB or even 1 GB to it to make it future-proof. Some distros, for example Pop_OS (derivative of Ubuntu) have transitioned from GRUB2 to more modern systemd-boot combined with kernelstub. Such distros have to copy entire kernel+initrd into ESP and those can take up quite a lot of disk space. I'd place this partition on SSD too to keep system things on more reliable and quiet flash storage (and to keep system stuff together, separated from /home).
Summary
SSD:
- EFI System Partition - 500 MB or 1 GB
- Swap - 4 GB
/- entire space left
HDD:
/home- entire disk
Another alternative is:
Use the SSD for:
- / (root OS) - 20-50 GB should be plenty for any modern linux depending on what applications you plan on using
- /boot/efi (1 GB)
- swap (1X RAM)
- any additional fast data storage you may need
and the HDD for:
- home (data)
- anywhere else you need a large amount of relatively slow storage
LVM will make this process easier to manage but does have an initial learning curve. Another advantage to using LVM is you could reserve a small portion of your SSD (fast) to cache rust drive partitions (slow) providing an accelerator.
2