Skip Navigation

What file systems are you using on your devices and why?

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
255 comments
  • BTRFS raid on LUKS-encrypted devices (no LVM, all unlocked with one password via SystemD encrypt hooks).

    • 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.

      • 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).

  • 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.

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

      • 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.

    • 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.

      • 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.

  • 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.

    • Why do you wipe your root dir?

      • 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

  • Btrfs in a luks container so it's encrypted.

    • Great! Have you had any issues with this setup?

      • 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.

  • I use BTRFS for the snapshot and subvolume tools.

    It is pretty good but usability is a mixed bag. Always getting better by the month though, it feels like.

  • 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. :/

  • 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.

    • 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.

      • 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.

  • 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".

  • 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.

  • Ext4 on every Linux device.

    Ah i dont have any other kind of devices (android on mobile, but there I have no choices on fs)

    Why not btrfs? Don't know, been using what has kept working flawlessly for me for the last 20+ years, no need to replace ext4.

  • Btrfs, ZFS and ext4. My servers use ZFS, my client machines mostly use btrfs and I have a sprinkling of ext4 partitions for specific workloads. I'm all in on CoW filesystems for snapshots, send receive, transparent compression and reflinks. I like btrfs on client machines and SBCs because it's easily available (baked into the kernel) and doesn't require maintaining dkms or holding kernel versions until ZFS supports them and because snapshot handling and other filesystem admin tasks are simple and straightforward. I run ZFS wherever data integrity is important, eg: storage servers and backup targets, but largely prefer working with btrfs.

  • Btrfs main boot drive

    Xfs main storage drive

    exFAT external "archive" drive (easy to connect to Windows machines if ever I need my backup in someone else's windows machine in an emergency and such)

    • So you went for exFAT when you want to throw some data onto external drive? I think you could also got away with NTFS in your case.

      • Idk, exFAT is meant to be compatible with more stuff than NTFS. If I ever decide to hook this HDD up to a console or smartTV to play the videos I have on it, it is guaranteed to work.

  • 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.

    • Why xfs let's say over ext4? Just asking out of curosity.

      • 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.

  • I've been basically using btrfs on a lot of my disks because of the features it has.

    Before I switched to a borg based system, my backups partition used btrfs for compression.

    My main OS disk is btrfs so I can use timeshift snapshots, which are really worth checking out if you tinker with your system a lot.

    I have two more btrfs partitions software raid0'd together for my steam library, nix store and other big but loosable things.

    And my main home folder uses btrfs because I think the checksumming thing it does is more reliable for error detection, and cow is more fault tollerant on power failure?

    ... And I now fell like I'm one of those people with an over engineered storage solution. I just never get rid of old ssds or hard disks!

255 comments