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
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.
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.
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.
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.)
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.
Honestly, just strike out Mac. I one time opened the Windows Command Prompt in front of someone and they were like “DOS?” 😂
Do that on Linux, update your packages in the café and you can be banished from it as a hacker.
Solution 1: Use Synaptic while in the cafe.
Solution 2: If I’m going to get called a hacker (or cracker, if you’re some dude from the FSF), might as well earn it.
Ia Synapthic up-to-date?
I joke about being hacker when I share my screen and run long Ansible playbooks.
Yeah it is like a solution but the most "native" and straight forward was formating to NTFS.