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
  • Avid Amoeba@lemmy.ca
    link
    fedilink
    arrow-up
    35
    ·
    edit-2
    1 year ago

    Ext4 and ZFS.

    • Ext4 for system disks because it’s default in OS installers and it works well. I typically use it on top of LVMRAID (LVM-managed mdraid) for redundancy and expansion flexibility.
    • ZFS for storage because it’s got data integrity verification, trivial setup, flexible redundancy topologies, free snapshots, blazing fast replication, easy expansion, incredible flexibility in separating data and performance tuning within the same filesystem. I’d be looking into setting up ZFS on root for my next machine. Among other things that would enable trivial and blazing fast backup of the system while it’s running - as simple as syncoid -r rpool backup-server:machine4-rpool.
    • pressanykeynow@lemmy.world
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 year ago

      I’d be looking into setting up ZFS on root for my next machine

      I too was on the path of adventure once but then the kernel module hasn’t been built after the upgrade. Also btrfs offers some nice features for root especially that zfs doesn’t have.

      • Avid Amoeba@lemmy.ca
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        It’s one of the reasons I use Ubuntu LTS, the ZFS module is bundled by default.

        Also btrfs offers some nice features for root especially that zfs doesn’t have.

        Oh? Elaborate pls.

        • pressanykeynow@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          1 year ago

          You can boot straight into snapshot, may be useful if an update went wrong or you don’t like new kde.

          You can change drives and raid configuration online. For example I bought a laptop that had windows preinstalled, so I used the second half of the disk space for linux, then I figured I don’t need windows so I formatted windows partition to btrfs, added it as a new device, moved all the data there, deleted the old linux partition and extended the new one to the whole drive, all that easy and without reboot.

          • Avid Amoeba@lemmy.ca
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            Oh nice. I think that all of those are possible with ZFS too. Although I’m pretty sure that the snapshot-boot is done outside of ZFS itself. As in, there’s something else that takes the snapshots and makes them available to the bootloader. I think zsys used to do that in the experimental ZFS-on-root support that shipped in Ubuntu 20.04. I recall having a snapshot appear before every update and those snapshots were selectable from GRUB.

          • Nithanim@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            I started using it on my NAS and also on root. Then I switched my personal machine to ZFS on root. I manually created both setups (somehow). This is the worst part in my opinion. The best decision, though, was to ditch grub in favor of zfsbootmenu. Skips all the brittle steps with grub and its boot partition. Now I just have zfsbootmenu directly loaded by UEFI from the EFI partition. Everything important is directly on ZFS, including… well, everything. Can also use snapshots but I have not needed that yet.

          • Scott@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            Proxmox install on the zfs mirror boot plus some other pools, everything else is currently truenas single boot drive with pools

            I do have other proxmox stuff running zfs*

  • wargreymon@sh.itjust.works
    link
    fedilink
    arrow-up
    17
    arrow-down
    2
    ·
    1 year ago

    Google cloud storage, copilot my files with Microsoft, crowdstrike running in background for better security.

  • ikidd@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    ·
    1 year ago

    ZFS on anything storage related. Enterprise level snapshot and replica management.

      • ScottE@lemm.ee
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        XFS does not do snapshots, replicas, and all the other myriad of things that ZFS does.

      • ikidd@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year 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.

  • jevans ⁂@lemmy.ml
    link
    fedilink
    arrow-up
    10
    ·
    1 year 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.

      • itslilith@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        Preventing unwanted state

        If you install and then uninstall something, it will almost certainly leave logs, configurations and other garbage in places you don’t expect. Next time you want to use it, it isn’t the clean install you expected

  • HarriPotero@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    1 year 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.

    • Psyhackological@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

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

      • HarriPotero@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 year 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.

      • Magister@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        nope, it works really well, for more than a year now, this is my work PC using 8h/day, I’m using MX23 AHS version. Directly in the setup you can select encryption and btrfs volume etc. btrfs is pretty stable.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    Ext4 for everything when possible, because its reliable and proven. I’m looking towards Btrfs for my next system drive, as it is mature now and has good features. But I would use Ext4 for everything else still. For interoperability that doesn’t understand Ext4 it would be NTFS when supported, otherwise fallback to FAT32.

    That’s the entirety of my knowledge and what I use when I have to format it myself. :D

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      I respect your reliable and proven comment. I really love the features of BTRFS and that’s why I use it, but I also really care about my data. I have secondary installations that use EXT4 and work very well.

  • data1701d (He/Him)@startrek.website
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year 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.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year 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
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year 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
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year 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.mlOP
            link
            fedilink
            arrow-up
            1
            ·
            1 year 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
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 year 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.mlOP
                link
                fedilink
                arrow-up
                1
                ·
                1 year 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.

  • rotopenguin@infosec.pub
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 year ago

    ExFAT is the LCD filesystem for flash sticks. FAT32 is the filesystem that you have to use for devices designed back when Microsoft was awful about Exfat licensing.

    Everywhere else, Btrfs. If Oracle didn’t poison-pill ZFS licensing and it was common on Linux, I would be using that instead. Basically, taking it on faith that a drive didn’t fuck up your data is crazy. The most basic responsibility for a filesystem should be ensuring that “the files come out exactly the same as when they went in”.

  • henfredemars@infosec.pub
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 year 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
        ·
        1 year 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
          ·
          1 year 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
            ·
            1 year 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.

  • fossphi@lemm.ee
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year 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
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year 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.