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
    34
    ·
    edit-2
    5 months 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
      ·
      5 months 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
        ·
        5 months 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
          1
          arrow-down
          1
          ·
          5 months 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
            ·
            5 months 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.

  • delirious_owl@discuss.online
    link
    fedilink
    arrow-up
    34
    arrow-down
    1
    ·
    edit-2
    5 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.

  • ryannathans@aussie.zone
    link
    fedilink
    arrow-up
    20
    ·
    5 months ago

    ZFS where possible for maximum reliability

    It also has self healing, no “partitions”, high performance, compression, smart drive redundancy without RAID holes, encryption, deduplication and an extremery intelligent cache called ARC

    • Avid Amoeba@lemmy.ca
      link
      fedilink
      arrow-up
      10
      ·
      5 months ago

      ZFS is completely ridiculous. It’s like someone actually sat down to design an intelligent filesystem instead of making a slightly improved version of what’s already out there.

      • The Doctor@beehaw.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        …and that’s why Oracle fucked up the licensing on it. We are not allowed to have nice things.

        • ghjones@beehaw.org
          link
          fedilink
          arrow-up
          2
          ·
          5 months ago

          I feel your pain on the CDDL (although I think it is still considered a “free” license), and while I love to hate Oracle, I think the CDDL decision was originally Sun’s, even if Oracle could “free” it now to be GPL.

          • The Doctor@beehaw.org
            link
            fedilink
            English
            arrow-up
            0
            ·
            5 months ago

            I don’t ‘love’ to ‘hate’ Oracle. For much of my career it seems like they’ve gone out of their way to make things more difficult than they need to be. If I had to calculate how much time fighting with their projects cost me (compared to everything else), they’d be at the head of the list (with one more zero at the left of the decimal point than Microsoft).

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

          Why though? AFAIK the CDDL totally allows us to have nice things. It’s similar to MPL and considered a free software license by the FSF. Sure it’s not GPL but it doesn’t disallow us from changing ZFS, using it, even commercially.

          • ryannathans@aussie.zone
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            5 months ago

            I don’t really understand why the linux community complains about the licencing. I’m sure openzfs overcame that. In the freebsd world it’s native on root straight out of the box

            • Avid Amoeba@lemmy.ca
              link
              fedilink
              arrow-up
              2
              ·
              5 months ago

              Yeah there’s no essential problems with it in itself as free open source software. Legally it doesn’t seem compatible with the Linux kernel source code, as in you can’t compile it into the kernel but it seems to be okay to load it as a binary module, prebuilt or built on demand.

                • Avid Amoeba@lemmy.ca
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  5 months ago

                  Well Ubuntu is the most popular distro and it supports it out of the box. It’s had experimental ZFS-on-root support since 2020. Unfortunately it needs more work to be to be promoted from experimental status. But yeah, I don’t know of any other diatros supporting it on root out of the box. Which is sad.

      • non_burglar@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        5 months ago

        XFS is simply a journalling filesystem.

        ZFS is a COW filesystem and volume manager with compression, block management, and an adaptive read cache.

        Kind of an apples-to-oranges comparison.

        • theroff@aussie.zone
          link
          fedilink
          arrow-up
          1
          ·
          5 months ago

          Technically XFS is also a CoW filesystem, but it doesn’t have the vast array of features that ZFS does like volume management, snapshots, send/recv etc. It does have reflink support which I guess is a kind of snapshot for a file.

    • youRFate@feddit.org
      link
      fedilink
      arrow-up
      2
      arrow-down
      2
      ·
      5 months ago

      Well, encryption is very much not a strong point of zfs. I agree on all other points tho.

      • ScottE@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        Actually native encryption has been a feature of ZFS for a few years now. It’s nice not having to have an extra LUKS layer.

        • ghjones@beehaw.org
          link
          fedilink
          arrow-up
          2
          ·
          5 months ago

          Yeah, but it’s had some actual data corruption bugs related to sending encrypted snapshots (off the top of my head).

          • ryannathans@aussie.zone
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            5 months ago

            Not really bugs, the process for zfs send differs with encrypted snapshots. Make sure you consult the docs. Always test your backups to make sure you cloned properly

      • billgamesh@lemmy.ml
        link
        fedilink
        arrow-up
        3
        ·
        5 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
        link
        fedilink
        English
        arrow-up
        3
        ·
        5 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.

        • theroff@aussie.zone
          link
          fedilink
          arrow-up
          2
          ·
          5 months ago

          ext3 had journaling, but not ext2. Also ext3 doesn’t really exist anymore as it was merged into the ext4 driver which can read the old format.

  • Ooops@feddit.org
    link
    fedilink
    arrow-up
    14
    ·
    5 months ago

    BTRFS raid on LUKS-encrypted devices (no LVM, all unlocked with one password via SystemD encrypt hooks).

    • Psyhackological@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      5 months ago

      Which RAID? I need to read about SystemD encrypt hooks because I know nothing. Also why not LVM? Is btrfs more flexible in partitioning when you want to extend it or shrink it? I heard that you can merge “partitions” on 2 different disks so they are visisble under one mount point.

      • Ooops@feddit.org
        link
        fedilink
        arrow-up
        2
        ·
        5 months ago

        Btrfs can mostly fo everything you would normaly use LVN or raid for natively.

        Btrfs raid0 lets you combine any number of differently sized drives into one (just without the speed boost of traditional raid0 because with flexible drive sizes data is not symmetrical striped). And btrfs raid1 keeps every data duplicated, again with flexible number and sizes of drive (also with metadata on every drive).

        The sytemd hooks (instead of the traditional busybox ones) then manage the one other task you use LVM for: unlocking multiple partitons (for example multiple raid partitons and swap) with just one password. Because the systemd encrypt function tries unlooking all luks partitions it finds with the first password provided and only asks for passwords for each partition if that doesn’t work.

        PS: btrfs subvolumes are already flexible in size and don’t need predefined sizes. So the only things that need to be created separately are non-btrfs stuff like the efi system partition or a physical swap (which you can also skip by using a swap file instead of a partition).

  • wargreymon@sh.itjust.works
    link
    fedilink
    arrow-up
    14
    arrow-down
    2
    ·
    5 months ago

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

  • Risc@piefed.social
    link
    fedilink
    English
    arrow-up
    10
    ·
    5 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
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 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
        link
        fedilink
        arrow-up
        1
        ·
        5 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.

  • ssm@lemmy.sdf.org
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    5 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)
  • mat@linux.community
    link
    fedilink
    English
    arrow-up
    8
    ·
    5 months ago

    Honestly I saw btrfs in the arch install guide and read about it because I thought the name sounded funny. I used it until I distro hopped to NixOS couldn’t figure out how to install it with btrfs, so I’m back on ext4.

    Maybe I’ll give it another try next hop, which is likely soon since Qt theming seems impossible on Nix. :/

      • mat@linux.community
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        Yeah, I did find the page, but it assumes you’re doing a command line install whilst I was using the graphical installer. Now that I know more about Nix I think I should’ve gone for a CLI install, but I don’t know if I will stick with it due to the themeing issues.

        • 🦊 OneRedFox 🦊@beehaw.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 months ago

          I always forget that they added a graphical installer, but IMO it kinda defeats the point of having a declarative config file setup your system.

          What issues are you having with Qt themes?

          • mat@linux.community
            link
            fedilink
            English
            arrow-up
            1
            ·
            5 months ago

            Agreed! I wonder how it will work if I have to reinstall, I guess I git clone my flake from the install CD and use that instead.

            For Qt themes, I had Catppuccin working on Arch but I haven’t found a way to apply it. I tried Stylix (kde.enable = true does nothing for Dolphin or nheko), the official Catppuccin flake (dropped GTK support, sets QT_STYLE_OVERRIDE which breaks nheko). I know it’s possible to theme Qt apps because I’ve had it working before, but I can’t find any info on how to do it with NixOS that works…

              • mat@linux.community
                link
                fedilink
                English
                arrow-up
                1
                ·
                5 months ago

                Is there a way to set catppuccin as the qt5ct theme? I tried manually adding the files but using qt5ct breaks all icons in Dolphin (it displays alt text or nothing), and kind-of applies in nheko but leaves the main window background fully white.

                • 🦊 OneRedFox 🦊@beehaw.org
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  5 months ago

                  You just download and put the theme files where it tells you to (and in the qt6ct folder too) and set the theme (and icon theme) in the app. Icons breaking is interesting; I just installed Dolphin and it had no problem using my icon theme. Does PCManFM-Qt also have this issue for you?

  • ikidd@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    5 months ago

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

      • ScottE@lemm.ee
        link
        fedilink
        arrow-up
        3
        ·
        5 months 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
        2
        ·
        5 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.

        • theroff@aussie.zone
          link
          fedilink
          arrow-up
          3
          ·
          5 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.