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
  • delirious_owl@discuss.online
    ·
    edit-2
    4 months ago

    Every year I buy a couple ~$5 USB drives and plug them into my jbod machine in a software raid1. At this point there's about a hundred in long array of daisy chained USB hubs.

    Each drive is formatted with fat32 and added to an LVM. Don't judge my ghetto NAS.

      • billgamesh@lemmy.ml
        ·
        4 months ago

        I like ext4 because it's easy. If anything breaks, ANY live USB can fix it. I use fat32 for my removeable drives, because anything can read it. I don't use journalling for anything manually, but I imagine it's useful when my disk crashes because I let my laptop die

      • Empricorn@feddit.nl
        ·
        4 months ago

        Wasn't that the entire purpose of ext4 vs ext3? As the default, I also keep journaling on for ext4 partitions. Even /boot.

  • data1701d (He/Him)@startrek.website
    ·
    4 months ago

    NTFS support is pretty solid on Linux these days, but just so you know, never use it as a root partition.

    I have generally used ext4. There's ways to massage it to mount on Windows, as with btrfs. Ext4 is very likely what you should do if you're installing Linux for the first time, as it has had decades of testing and is rather battle-tested

    I recently did my first btrfs install. For now, I've had no issues. Of course, some could happen, but I've generally heard btrfs is fine these days. One of its cool things is native compression support, although I forgot to enable it when I did that install.

    I've never used XFS.

    FAT32 should be rarely used these days due to file size limits and file name limits. The only place where it should still be used is for your EFI partition.

    Now exFAT really isn't that unrecognizable. It's supported by pretty much every operating system these days. It's definitely not for root partitions, but should be your default for flash drives and portable hard drives.

    On another note, I recently tried Bcachefs on Debian Testing on a random old Chromebook. It is still in development, and not all distros support it yet, but I liked what I saw from my limited experience. It also supports snapshots, and unlike btrfs, has native encryption. For now, just ignore it, but like many in this post have said, keep an eye out for it.

    As for ZFS, I've never tried it. The main caveat is due to licensing incompatibility, it is not in the standard Linux kernel and you have to do some special stuff.

    • Psyhackological@lemmy.ml
      hexagon
      ·
      4 months ago

      Great answer thanks for this!

      I agree with everythinf but exFAT, some devices expect either FAT32 or NTFS. I had this issue when I wanted to play totally acquired big mkv movie through USB and because of that FAT32 wasn't an option so I went with exFAT. Not visible but apperantly it liked NTFS. It was the LG TV, my parents have 2 and same issue on both.

      • data1701d (He/Him)@startrek.website
        ·
        4 months ago

        My pleasure. The LG problem is unfortunate. Most other devices tend to support exFAT, but LG is an exception, albeit a very big one due to its pervasiveness as a brand. I do have an LG TV, but an older one that’s getting annoying to the point it’s tempting to throw a Roku behind it. Also, do you have a laptop with HDMI? That could also be a solution.

        • data1701d (He/Him)@startrek.website
          ·
          4 months ago

          Also, for context, part of my exFAT leanings are that while NTFS is read-only on Mac, exFAT is read-write. I’d presume as I am, you’re not a frequent Mac user, but I’ve had situations in the past where I had to use one.

          • Psyhackological@lemmy.ml
            hexagon
            ·
            4 months ago

            I saw it too. I dislike Mac but when I'm forced to be around them I'm trying to make them work as they should. The problem is for me they are more closed and hostile to this than Windows but that's probably because I was a Windows user so much time.

            • data1701d (He/Him)@startrek.website
              ·
              4 months ago

              I have similar feelings about Mac, probably in part because of my former Windows use as well. On one hand, I like how Mac’s terminal and development workflow (e.g availability of gcc) are more natively Unix-like, but for that, there’s also limited OpenGL support and no Vulkan support. Meanwhile, making Windows more “Unix-y” is as simple as installed Cygwin, and fixing the menu is simple a matter of installing OpenShell. (Of course, having to contort Windows gets annoying after a while, thus why I use Linux these days.)

              • Psyhackological@lemmy.ml
                hexagon
                ·
                3 months ago

                Yeah let's skip the part that average Mac consumer that I know does not know terminal is. 😆 But it was a bizzare to me when someone could extract the zip archive from the GUI but I helped through terminal.

  • thejevans@lemmy.ml
    ·
    4 months ago

    ZFS all the things. On my workstations, I wipe / on every boot except for the files that I specify, and I backup /home to my NAS on ZFS and I backup my NAS snapshots to Backblaze.

  • fossphi@lemm.ee
    ·
    4 months ago

    Btrfs, for the compression and CoW. I've been using it since a couple years. It seems stable for my use. I need to fully wrap my head around how snapshots work, though.

    • henfredemars@infosec.pub
      ·
      4 months ago

      You mentioned CoW. I’m really taking advantage of this because I have multiple Wine prefixes that have lots of duplicate data. I want to give every application it’s own prefix, and my underlying file system allows me to duplicate the blocks so the prefixes are basically free where before it’s several hundred megabytes just to make a new prefix.

  • Risc@piefed.social
    ·
    4 months ago

    Ext4 with LVM.

    I like BTRFS and it's features but sadly Debian doesn't have a preset for it in it's installer so the only way to use it is to manually partition and I absolutely suck at that.

    • Empricorn@feddit.nl
      ·
      4 months ago

      Sorry if this is a dumb question, but have you tried using gParted? GUI, new-user friendly, easy to visualize your system, I've used it for over a decade on multiple devices...

      • Risc@piefed.social
        ·
        4 months ago

        Actually, I was using gparted yesterday! I was trying to format a USB drive to exFAT but the option was greyed out, so either gparted doesn't have support for formatting in exFAT or I needed an optional dependency.

    • Psyhackological@lemmy.ml
      hexagon
      ·
      4 months ago

      When you know LVM I think you can manage manual paritioning. :) Especially as btrfs is advertised with snapshots so trial and error is encouraged.

  • henfredemars@infosec.pub
    ·
    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.

      • Kualk@lemm.ee
        ·
        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
          ·
          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
        ·
        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.

  • I_like_cats@lemmy.one
    ·
    4 months ago

    I am now all-in on bcachefs. I don't like btrfs, cause you still sometimes read about people loosing their data. I know that might happen with bcachefs too since it's early days still but fuck it. I like the risk.

    Filesystem level compression and encryption are so nice to have.

    • data1701d (He/Him)@startrek.website
      ·
      4 months ago

      I get the feeling I’ll become a bcachefs fan for those reasons in the future (I tested it on a spare laptop as soon as 6.7 got into Debian Testing), but for now, I use a mix of ext4 and btrfs, as bcachefs-tools isn’t in Testing. It is trivial to apt-pin, but I try not to make FrankenDebian a regular thing. I have a feeling that they’ll iron it out and Bcachefs will be an option in Trixie by the tome it hits stable, if still with a /boot partition considering the slow state of Grub support.

    • Psyhackological@lemmy.ml
      hexagon
      ·
      4 months ago

      I think Linux users must have some touch of masochism. Also this might interest you: https://www.phoronix.com/review/linux-611-filesystems But me too, I've just installed Cosmic DE PopOS 24.04 for my main laptop.

  • ssm@lemmy.sdf.org
    ·
    edit-2
    4 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)
  • PublicLewdness@lemmy.ml
    ·
    4 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.

  • ScottE@lemm.ee
    ·
    4 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.

    • Psyhackological@lemmy.ml
      hexagon
      ·
      4 months ago

      Are you sure this is the only good FS? I know it's solid and stable and used for many years as default Linux's FS but I disagree that's the only good one.