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
  • henfredemars@infosec.pub
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    4 months ago

    I care a lot about filesystems.

    BTRFS in FS-managed RAID configuration for automatic self-healing and snapshots for instant automated backups (though I keep a traditional backup too for protection against bugs and user error).

    Storage is cheap compared to how much I value my data. BTRFS has very good support on Linux, integration with some backup tools, and I really want to use a FS that has full data checksums to make sure the data stays correct at rest. I like that I don’t have to use equal sized drives and can use whatever I have available, though I would appreciate a better read distribution model rather than the current where it just chooses a random drive to read from when multiple copies are available.

    Disadvantages include difficulty accessing from Windows in my experience, less than stellar performance on HDDs, not very space efficient for small files systems because of the bulky metadata, and some uncommon RAID types don’t work correctly and will eat your data. I also don’t recommend it for use over USB because many such devices don’t correctly implement sync, and this is very important to stay on the correct transaction number and prevent file system inconsistencies. If I had to boot from USB, I wouldn’t pick BTRFS.

    I don’t think exFAT or FAT32 offer POSIX permissions. I’m not sure if you could have a root file system there.

      • henfredemars@infosec.pub
        link
        fedilink
        English
        arrow-up
        5
        ·
        4 months ago

        Yes I have and it caused file system corruption the two times I tried it. Something wasn’t quite right.

        • _thebrain_@sh.itjust.works
          link
          fedilink
          arrow-up
          4
          ·
          4 months ago

          Good to know. I know a couple of people in the steam deck world who dual boot windows and steamos and have their games on a btrfs partition that use it so they don’t need games installed twice … I have no desire to do this so I have never tried.

          • henfredemars@infosec.pub
            link
            fedilink
            English
            arrow-up
            2
            ·
            4 months ago

            It’s possible I was just unlucky, but data corruption makes it harder for me to sleep at night. I choose to be a little more conservative and consider that tool beta quality.

      • Kualk@lemm.ee
        link
        fedilink
        arrow-up
        7
        ·
        4 months ago

        BTRFS is zero effort on root, because it is included in kernel. ZFS on root is extra effort at least on Arch, due to licensing restrictions.

        • marty_relaxes@discuss.tchncs.de
          link
          fedilink
          arrow-up
          1
          ·
          4 months ago

          Additionally, at least for my use-case btrfs benefits me since it is less picky about drive sizes being the same and duplicating everything correctly - letting you essentially just throw additional storage at it as you acquire it.

      • henfredemars@infosec.pub
        link
        fedilink
        English
        arrow-up
        4
        ·
        4 months ago

        Does ZFS handle data duplication on unequal sized volumes or heterogeneous pools? I don’t believe so, and BTRFS was a first class installer option.