• Andrius Štikonas@lemmy.kde.social
    link
    fedilink
    arrow-up
    19
    ·
    1 year ago

    It really depends on your requirements…

    But a few useful points:

    1. Use GPT partition table and not MBR. Everything will be simpler, no need for extended/logical partitions.
    2. If you need to be able to do online (mounted) partition resizing, pick btrfs. Ext4 can only grow them online but not shrink.
    3. Make sure your partition boundaries are 1 MiB aligned.
    4. If you need more advanced setups, consider using LVM.
    • db2@sopuli.xyz
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      1 year ago

      About lvm though, experiment with it before jumping in with your daily driver.

      • Andrius Štikonas@lemmy.kde.social
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Indeed, it’s a bit more complex setup, you won’t be able to boot without initramfs. But in certain cases (e.g. encryption or partitions spanning multiple devices) it is very useful.

  • dack@lemmy.world
    link
    fedilink
    arrow-up
    15
    ·
    1 year ago

    1Gb EFI, rest of the disk LUKS with a single BTRFS inside. Use BTRFS subvols to divide things up. Swap as a swap file on BTRFS (be sure to set it as no_cow).

      • devfuuu@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        In many of my laptop setups I’ve also solidified around similar setup: 200 or 500 mb efi + luks with lvm with root and home volumes. Swap is a file which makes everything easy without having to care about another partition and is automatically encrypted since it stays on root.

        Partition formats is always ext4 since there’s no need for anything else. Tried btrfs in the past and it had problems, more than it solved, and xfs years ago regularly had problems corrupting files when power went off. I swore on never using any of those 2 again.

    • Eufalconimorph@discuss.tchncs.de
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Same, except ZFS instead of BTRFS for me.

      And / is tmpfs, /home is tmpfs, /nix, /etc/nixos, /var/log, /home/$username/downloads, /home/$username/documents, and some other directories are ZFS subvolumes bind-mounted at boot. That’s only an option for NixOS or Guix though, so don’t worry about opt-in state on other distros.

  • buwho@lemmy.ml
    link
    fedilink
    English
    arrow-up
    15
    ·
    1 year ago

    i usually have efi boot partition (512mb), / (linux root), /home (i usually make this pretty big) , and swap partition.

    • vettnerk@lemmy.ml
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      1 year ago

      Same, except I also keep /var on a separate partition (old FreeBSD habit), as the I/O characteristics of /var are usually very different from rest of /

    • Papamousse@beehaw.org
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      Same: EFI, then / is small like 50GB, and home is the remaining of disk. My swap is the size of RAM so I could hibernate but in fact never use it really, as my system either sleep or if shutdowned, can boot in a few seconds. You cannot go wrong with the setup from @buwho@lemmy.ml.

      There was a time when I had (and we needed) complicated partition… one for / really small like a few MB, and basically one for bin, etc, var, use, home, tmp (not a lot of RAM at the time so tmp was on disk, not in ram) etc.

  • neo (he/him)@lemmy.comfysnug.space
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    1 year ago
    • 500mb-600mb fat32 /boot partition
    • 40gb - 100gb ext4 or btrfs / partition (if you know you’re gonna install a lot of software, go bigger)
    • 1x - 2x ram as swap
    • rest of disk as ext4 /home partition
  • circuitfarmer@lemmy.sdf.org
    link
    fedilink
    arrow-up
    8
    arrow-down
    1
    ·
    edit-2
    1 year ago

    I think you’re going to get a wide variety of responses here. It comes down to a lot of factors.

    For me personally, I’ve been shifting everything I have to Btrfs, so I can tell you what I’ve done recently and why.

    A big caveat is that many of my systems have multiple physical drives. This means I’m often setting things up based on the speed and capacity of those disks.

    But, I do have one system with a single drive shared for booting, root, and home. It’s set up like this:

    1. A FAT32 partition for /boot. 512 MB.

    2. A single Btrfs partition across the rest of the drive.

    3. Btrfs subvolumes: @ mounted at /, @home mounted at /home. @snapshots mounted at /.snapshots.

    I could go crazy with other subvols (e.g. for /var/log), but ultimately it is sufficient for me to be able to snapshot / and /home separately.

    For some of my other systems, I’ll have / and /home on different drives. In that case, each has their own @snapshots with their own mount point. I tend still to throw the EFI boot partition mounted at /boot on the same drive as /.

    It’s very easy to simply change /etc/fstab as needed and point to another snapshot, effectively rolling back the drive to some former point as necessary.

    • zwekihoyy@lemmy.ml
      link
      fedilink
      arrow-up
      8
      ·
      1 year ago

      I’ve had some wild issues that I can’t even begin to explain with btrfs. I landed on using xfs for / partition and btrfs on /home

      • circuitfarmer@lemmy.sdf.org
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        Fair, I’ve not had any issues but I’m sure they exist. One or the other is faster based on workload, too, so it’s not really that one is objectively better all the time.

        • zwekihoyy@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          tbh I’m pretty sure the issue I ran into was user error anyways, but once I finally figured out what I was doing, I decided to land on xfs for root and btrfs for home for the following reasons.

          1. xfs is supposedly more performant and common in data centers
          2. having a separate partition mounted at /home allows for os reinstalls or even distro swaps while retaining my home directory contents (assuming my user is the same)
          3. most of the contents I want backed up are held in /home. I don’t want snapshots of my entire system laying around
          4. I like being extra
  • Decipher0771@lemmy.ca
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    1 year ago

    Depends on your system. Desktop have different requirements than servers.

    On both at minimum, I’d keep /home and /var/log separate. Those usually see the most writes, are least controlled, and so long as they’re separate partitions they can fill up accidentally and your system should still remain functional. /tmp and /var/tmp should usually be mounted separately, for similar reasons.

    /boot usually keep separate because bootloaders don’t always understand the every weird filesystem you might use elsewhere. It would also be the one unencrypted partition you need to boot off of.

    On a server, /opt and /srv would usually be separate, usually separate volumes for each directory within those as well, depending how you want to isolate each application/data store location. You could just use quotas; but mounting separately would also allow you to specify different flags, i.e. noexec, nosuid for volumes that should only ever contain data.

    /var/lib/docker and other stuff in /var/lib I usually like to keep on separate mounts. i.e. put /var/lib/mysql or other databases on a separate faster disk, use a different file system maybe, and again different mount options. In distant past, you’d mount /var/spool on a different filesystem with more inodes than usual.

    Highly secure systems usually require /var/log/audit to be separate, and needs to have enough space guaranteed that it won’t ever run out of space and lock the system out due to inability to audit log.

    Bottom line is its differnet depending on your requiremtns, but splitting unnecessarily is a good way to waste space and nothing else. Separate only if you need it on a different type of device, different mount options, different size guarantees etc, don’t do it for no reason.

    • Andrius Štikonas@lemmy.kde.social
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      Regarding /boot, it can be encrypted as long as your bootloader can decrypt it, for example GRUB can decrypt LUKS encrypted partitions (albeit somewhat slowly). And the only partition that really has to be unencrypted is UEFI system partition (ESP), where bootloaders are located.

  • mrvictory1@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago
    • 1 GiB FAT32 EFI, rest in your preferred filesystem for root
    • If you are dualbooting and accessing all files / games from Windows is a concern, make Linux root partition around 50 GiB
    • I use zram instead of swapfile or partition but setting up zswap (NOT zram) with swapfile is a better idea.
    • You didn’t mention encryption. Are you considering it?
  • Chewy@discuss.tchncs.de
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    Use zram instead of a SWAP partititon. Zram compresses and keeps in RAM. It’s default on Fedora and a few others iirc.

  • Heavybell@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I personally have a tiny fat32 EFI partition, a small ext4 root, and everything else allocated to LVM2. Then LVs for every large path, like /home, /var, etc. I leave most of the extents unallocated until I need more space.

  • virr@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Depends on environment.

    Real hardware separate for a server partitions for: /home, /var, swap, sometimes /usr, sometimes /var/log/audit Depends on deployment requirements, and if a system is expected to run after filling up audit.

    Real hardware for a at home desktop: /var, swap, maybe /home, or just one partition for / and one for swap.

    Cloud: all one partition, put swap in a file if it is needed. Cloud images are easy to grow if it is just one partition. Cloud-init will handle that automatically with the right packages installed, no configuration needed. Swap partitions are unlikely to be the right size as they vary according to memory and memory varies according to instance/guest sizes. Swap makes auto growing root partition harder (cloud-init custom config injection required). Best practice is to size workload and instances to not need swap whenever possible.