any problems with this partition scheme?

Solution 1:

The GUID Partition Table (GPT), which is used on most EFI installations, doesn't distinguish between primary, extended, and logical partitions; it just has "partitions" (with no qualifier), although tools like GParted insist on calling them "primary partitions" because those tools were written with MBR in mind. GPT supports up to 128 partitions by default, although that value can be changed with the right software. (In Linux, gdisk can do this, but GParted and parted can't.)

As to your layout, your sizes are all wrong. I recommend the following:

  • EFI System Partition (ESP; /boot/efi): 550MiB. Although a standard Ubuntu installation isn't likely to consume more than the 64MB you propose, there are scenarios in which it must be significantly larger. Furthermore, some EFIs have problems with FAT16 ESPs or with sub-512MiB FAT32 ESPs. To avoid both problems, the partition must be over 512MiB. I recommend a bit bigger to avoid confusion between MB (10^6 bytes) and MiB (2^20 bytes), hence 550MiB.
  • (Optional) /boot partition: 500MiB. This directory holds your kernel, initrd, and a handful of other files. One of my current Ubuntu installations has 111MiB in there right now, and another has 90MiB. Thus, your proposed 64GB is way oversized. 500MiB gives you plenty of "wiggle room" for installing multiple kernels. Note that this partition is optional. In most cases you don't really need it, although it can be handy sometimes.
  • Root (/) partition: 30GiB. A typical Ubuntu installation is likely to consume 4-10GiB. Unless you anticipate storing lots of extra system software, 30GiB should be more than big enough. OTOH, going up to the 64GB you propose isn't completely ridiculous on a 3TB hard disk.
  • Swap partition: 1-2 times RAM size. If you've got 16GiB of RAM, your proposed swap partition size is not out of line; but with less RAM, you should probably reduce the swap space. Modern systems seldom use swap space at all, so many people stick closer to the 1x RAM size rule of thumb, or even drop below it. The most important use of swap for many people is when using suspend-to-disk functionality, in which your RAM's contents are copied to the swap partition. If you plan to use this feature, ensure you've got at least as much swap space as RAM. When doing so, ensure you don't confuse units (GB vs. GiB). Note that RAM comes in GiB units, even though most people use "GB" when referring to its size.
  • /home partition: The rest. This is pretty basic: Use whatever's left over. OTOH, if you were to run a major server, you might want to split /var off into its own partition, too, which would necessitate determining how much to give to each partition. Given your stated system purpose, I doubt if this will be necessary, unless you'll be running your own mail server -- and even then, if it's for personal use, it's probably not worth splitting off /var unless you send and receive a lot of e-mail.