• Andrius Štikonas@lemmy.kde.social
    link
    fedilink
    arrow-up
    19
    ·
    11 months 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
      ·
      11 months ago

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

      • Andrius Štikonas@lemmy.kde.social
        link
        fedilink
        arrow-up
        3
        ·
        11 months 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.

        • The Doctor@beehaw.org
          link
          fedilink
          arrow-up
          1
          ·
          11 months ago

          A lot of distros default to booting with an initramfs or initrd by default, anyway. If only because you can set up an encrypted drive at installation time, so may as well have it but not need it rather than the reverse.

  • M-Reimer@lemmy.world
    link
    fedilink
    arrow-up
    19
    arrow-down
    1
    ·
    11 months ago

    One small /boot which is also my EFI system partition.

    And a partition for / which covers all the rest of the drive.

    Partitioning only limits flexibility. At some time you will regret your choice of partition sizes.

    • Molecular0079@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      11 months ago

      Nowadays you don’t even need a /boot unless you’re doing full disk encryption and I actually recommend keeping /boot on / if you’re doing BTRFS root snapshots. Being able to include your kernel images in your snapshots makes rollbacks painlessly easy.

    • kristoff@infosec.pub
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      11 months ago

      I dan’t know if this is still valid but I used to be told to have different partitions for your system, logs and data (home directories) … and have the swap-partition located in between them. This was to limit the distance the head has to move when reading from your system starts swapping.

      But if you use a SSD drive, that is not valid anymore of course :-)

      Kr.

    • library_napper@monyet.cc
      link
      fedilink
      arrow-up
      2
      arrow-down
      7
      ·
      11 months ago

      Aaaand your server just crashed because of a spammy log. You lost the company $222 million overnight, the database is corrupt, and every 9 minutes the company looses another $1 million.

      Good job.

  • buwho@lemmy.ml
    link
    fedilink
    English
    arrow-up
    12
    ·
    11 months ago

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

    • Papamousse@beehaw.org
      link
      fedilink
      English
      arrow-up
      5
      ·
      11 months 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.

    • vettnerk@lemmy.ml
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      11 months 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 /

  • cizra@lemm.ee
    link
    fedilink
    arrow-up
    8
    ·
    11 months ago

    Not saying my practice is the best one, but here’s what I do:

    • EFI system partition is mounted on /boot
      • kernel is held here. In case of distros like NixOS etc that keep around old kernels, a small ESP might run out of space. I make mine at least 1GB.
    • the rest of the disk is one luks2 volume
    • inside the encrypted volume, there’s a BTRFS volume
    • there’s a subvolume for /home
    • and a subvolume for every distro I have (which is usually 1, but sometimes I tinker or switch)
    • Kernel command line parameters specify the btrfs subvol with the right distro to boot.
    • for NixOS, you need a bootloader (to choose the right kernel). Systemd-boot works well, and its configuration is easily readable. I never figured out how to work with GRUB2, its configuration is just too confusing.
    • or if you like Arch, dispense with bootloaders and just use EFISTUB. You can put kernel cmdline params into EFI bootloader options with efibootmgr.

    Simple yet complete. Efficient, and extensible - for example, now that everything is a subvolume, I can easily snapshot it, then create backups with rsync off the snapshot, to avoid inconsistent state between backed-up files.

  • PeterPoopshit@lemmy.ml
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    11 months ago

    Usually, I do the simplest thing: all the stuff goes on one big ext4 partition. I don’t make a separate partition for /home. I’ll make a swap partition if I can remember but I’ve forgotten to do that before and nothing bad happened. The bootloader goes on a fat32 /boot/efi on the same drive as whatever the Linux install is on. This way I can swap around the drive to different pcs if I have to or easily change/upgrade drives without having to reinstall all my stuff.

    This strategy works for dual booting Windows also. I’ll put the windows install all on its own separate drive so it won’t try to erase grub during a disk check or something. That happened one time. Also, by putting Windows and Linux on separate drives you can use the bios to boot between Windows or Linux if you mess up one of the bootloaders.

  • Decipher0771@lemmy.ca
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    11 months 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
      3
      ·
      11 months 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.

  • dack@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    11 months 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).

    • chayleaf@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      11 months ago

      I prefer a very small EFI partition mounted at /boot/efi, that way the kernels and initrds sit at /boot alongside the rest ot the files (though if you also want encryption you need to add your encryption keys to initrd so you don’t have to enter the password twice)

  • virr@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months 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.

  • neo (he/him)@lemmy.comfysnug.space
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    11 months 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
  • Chewy@discuss.tchncs.de
    link
    fedilink
    arrow-up
    0
    ·
    11 months ago

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