• atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    43
    ·
    edit-2
    8 months ago

    A lot of the reasons for disk partition are pretty legacy.

    /boot was/is often a separate partition because the boot loaders may not support all filesystems. So if you wanted to use LVM, reiserfs, zfs, etc. for your root directory or have a RAID root then you may have a separate partition for /boot. Especially on older systems where grub/lilo only supported ext file systems. On modern systems there is likely to be a /boot/efi partition for UEFI (it only supports vfat I think?).

    /home is often handy to keep separate since you can more easily re-format everything except your home drive. Make distro-hopping a bit easier.

    The other reasons are more focused on server-usage rather than home-usage. Things like mounting /tmp on a separate FS so that users couldn’t fill up disk space that would block other users from working in their home directory. Or /usr/local being an NFS mount to provide centralized applications.

    These days the actual on-disk partitions don’t matter as much due to LVM, ZFS and BTRFS. You can now slice and dice your disks however you like and even change things on the fly. I only ever create 1 disk partition anymore (2 if I need a separate /boot or /boot/efi) and then handle the rest in the filesystems or LVM.

    With these higher-level partitioning the benefits are more around snapshotting and backups. You can snapshot your /home partition easily with btrfs before making major changes. Or you can copy a zfs partition to a remote server for backup. Things like the immutable distros and proxmox use this functionality a lot since a) partitions in these tools are cheap and b) it’s easier to do these things at the partition-level.

    Edit: Fun fact: Linux ext* filesystems have the capability to reserve a certain percentage of disk space only for the root user. Useful on a multi-user system where you don’t want users filling up all the disk space and blocking the root user from logging in to clean it all up. It used to save something like 5-10% by default but I don’t know if that’s the case anymore. You can see if it’s being done with tune2fs -l <device>.