I want to learn more about file systems from the practical point of view so I know what to expect, how to approach them and what experience positive or negative you had / have.

I found this wikipedia’s comparison but I want your hands-on views.

For now my mental list is

  • NTFS - for some reason TVs on USB love these and also Windows + Linux can read and write this
  • Ext4 - solid fs with journaling but Linux specific
  • Btrfs - some modern fs with snapshot capability, Linux specific
  • xfs - servers really like these as they are performant, Linux specific
  • FAT32 - limited but recognizable everywhere
  • exFAT - like FAT32 but less recognizable and less limited
  • @[email protected]
    link
    fedilink
    69 months ago

    ZFS for nearly everything plus ZFSBootMenu EFI on root data pools. Get a bad upgrade? No problem, boot a previous snapshot (auto created with a pacman hook), which I had to do recently when 6.6.39 LTS kernel had a bug. Snapshots are also great when doing things such as upgrading postgres, hass, Plex, etc.

    • @[email protected]
      link
      fedilink
      English
      49 months ago

      I’ve been using ZFS now for a few years for all my data drives/pools but I haven’t gotten brave enough to boot from it yet. Snapshotting a system drive would be really handy.

    • @[email protected]
      link
      fedilink
      19 months ago

      It is fast. It’s the recommended filesystem for MinIO and default for RHEL 7 and above. XFS and ext4 are often recommended for databases if no other filesystem-level features (like snapshots) are needed. XFS has slightly more features than ext4 like CoW and reflink support.

  • @[email protected]
    link
    fedilink
    39 months ago

    We use btrfs for the / partition and xfs for any data partitions. Has served us well, the snapshot feature saves us some valuable time when an update goes awry.

      • @[email protected]
        link
        fedilink
        29 months ago

        The main distribution we use has it like that by default and our (admittedly rudimentary) benchmarks haven’t shown much of a performance difference versus ext4 so we kept to the default.

  • The Doctor
    link
    fedilink
    English
    39 months ago

    Servers - btrfs. Fewer layers of abstraction, easier to manipulate.

    Laptops - ext4. I don’t do anything weird with the onboard storage, plus it supports fscrypt.

    Flash drives - exFAT. I usually need to access them on multiple platforms and exFAT is about as cross-platform as VFAT (but supports bigger files).

  • @[email protected]
    link
    fedilink
    69 months ago

    ext4 on all hard disks, but my installs are all several years old at this point, and I might choose differently if I were starting over from scratch. The boot partition on the ancient laptop might actually be ext2; I don’t remember and it’s certainly old enough that that might still have been preferred Gentoo procedure when I first set it up. Removable media might be ext3, ext4, or vfat, depending on compatibility needs and how long ago I formatted it. If I buy an SD card or USB stick that turns out to be preformatted in exFAT, I reformat it before use to ensure everything can read it.

    They’re all solidly reliable filesystems (well, except for the vfat), but perhaps not the most featureful.

    • Random Dent
      link
      fedilink
      English
      49 months ago

      Yeah same here, everything is ext4 'cause it’s always worked and has never given me any troubles. But next time I have to reinstall I am tempted to give Btrfs a go.

  • @[email protected]
    link
    fedilink
    59 months ago

    A combination of XFS and ZFS. I work in high performance computing (academic). While I love the reliability of ZFS for data archival and peace of mind that results provably haven’t suffered bitrot, sometimes I just need a 10 TB temp file(s) with fast mostly-sequential R/W. Appropriate selection of file systems lets me have both.

    • @[email protected]
      link
      fedilink
      49 months ago

      As an aside, I’ve been watching bcachefs with some interest, as it seems to be getting faster with every kernel release, building on the data integrity guarantees of ZFS while pushing performance boundaries and being GPL compatible (i.e. in tree). Kent Overstreet et al. have done a fantastic job with this FS.

      • @[email protected]
        link
        fedilink
        English
        29 months ago

        Yep, got Timeshift hooked up to make a snapshot each time I update my system and I can boot into them via GRUB. Haven’t needed that so far, thankfully, but it’s there just in case.

  • @[email protected]
    link
    fedilink
    English
    79 months ago

    I use BTRFS on my Artix system, Ext4 on my Librem 5, Ext4 on my Devuan laptop and Ext4 on my Pinebook Pro. Basically when given the choice in the installer I choose BTRFS but if the installer doesn’t let me pick I don’t care enough to manually partition. I have had no negative experiences with any file system luckily so I just roll with whatever.

      • @[email protected]
        link
        fedilink
        English
        39 months ago

        ZFS is completely different than XFS. XFS is like a better (different?) ext4. ZFS is an error-checking software raid COW filesystem that does snapshots and can have multiple replicas, both local and remote. It uses zvols and datastores. Think btrfs on steroids and with a working raid subsystem.

        It’s got a weird semi-closed license because Oracle is involved but it’s never been enforced and at this point is in such widespread use in large and small enterprises that it would be impossible to enforce.

        • @[email protected]
          link
          fedilink
          39 months ago

          OpenZFS is under a completely FOSS license but it’s incompatible with the GPL and can’t really ever be merged into the Linux kernel. The workaroundids to provide it as source code which gets compiled as a module every time there’s a new kernel via dkms.

          More controversially, Canonical ship OpenZFS pre-compiled in Ubuntu which some lawyers believe to be infringing on ZFS’ codebase.

          Honestly the OpenZFS situation on Linux is probably the biggest single reason for the growing interest in btrfs and bcachefs, the former slowly becoming default on more Linux distros over time and lots of investment from SUSE and Facebook AFAIK.

  • @[email protected]
    link
    fedilink
    129 months ago

    Been running BTRFS since 2010. Ext2/3/4 before that.

    Using it for CoW, de-duplication, compression. My home file server has had a long-lived array of mis-matched devices. Started at 4x2TB, through 6x4TB and now 2x18+4TB. I just move up a size whenever a disk fails.

    • PsyhackologicalOP
      link
      fedilink
      29 months ago

      That’s sound fantastic! Interesting that you didn’t mentiona anything about snapshots. Have you had some isshes with BTRFS since then?

      • @[email protected]
        link
        fedilink
        19 months ago

        Well, snapshots, too. I just consider them to be a special case of de-duplication.

        I had an issue when I ran out of space during conversion between RAID profiles a few years back. I didn’t lose any data, but I couldn’t get the array to mount (and stay) read-write.

    • Possibly linux
      link
      fedilink
      English
      29 months ago

      Btrfs isn’t stable in big configurations. The big issue is that resilvering takes a long time and hurts performance. ZFS is the right answer.

      • @[email protected]
        link
        fedilink
        29 months ago

        Linus says no.

        I’m sure it’s great and all, but the hassle of having a filesystem that’s not in the kernel is a no-starter for me. Maybe one of those fancy NAS-distros that are based on some *BSD.

        • Possibly linux
          link
          fedilink
          English
          19 months ago

          Linux works fine with ZFS. I wouldn’t use it as your boot device but for big storage it is very reliable and stable. It also can take advantage of ram with Arc and has optional special disks. (Metadata disk, slog and cache as an example)

  • @[email protected]
    link
    fedilink
    11
    edit-2
    9 months ago

    Edit: reasons added in because I can’t read the post title

    • OpenBSD laptop: ffs2, vfat for efi system partition
      • Why: Contrary to popular belief, OpenBSD does not support zfs. The only other filesystem options are msdos (fat family), and ext2fs (mostly for Linux compatibility as far as I can tell, filesystem is experimental and lacks a bunch of features according to the manpage). Makes ffs2 the only sane option.
    • OpenBSD vps: ffs2
      • Why: See above.
    • Pinephone running PmOS: ext2 boot partition, ext4 root partition
      • Why: Defaults.
    • Void Linux VM: ext2
      • Why: I prefer not having journaling on flash memory. This hasn’t bitten me in the ass too hard yet, and even when it does I can usually get around system files being lost with integrity tools. Maybe I’ll dabble with f2fs some day, but I’ll need to read about its features and shortcomings compared to ext2.
    • Alpine Linux VM: ext4
      • Why: Would have installed as ext2 as well, but I forgot
    • Steam Deck: ??? (too lazy to check, 9/10 chance it’s ext4)