On Windows World NTFS is the king, but in the UNIX World there are many choices today: HFS+, ext3, ext4, zfs (maybe), reiserfs, reiser4, etc.

What do you recommend, why and which are your remarks about this?

  • 1
    I think the reiser file systems are pretty much dead now (no pun intended) due to the bad association with their creator and namesake. (In other words, for politic, not technical reasons.)
    – Evan
    May 1, 2009 at 4:12
  • "I think the reiser file systems are pretty much dead now" -- yeah, it is. It was awesome for small files though...
    – SCdF
    May 1, 2009 at 4:45

9 Answers 9


For Linux, I use ext3 on top of LVM. Use of LVM makes it easy to extend a partition later if I need more space. There are more choices, but my needs have never been extreme enough for me to have to performance test to see what was best for my circumstances.

Part of my reasoning for sticking with ext3 is that -- as the default filesystem for many varieties of Linux -- it will be one of the most thoroughly tested in a variety of different situations.

Someone with special needs -- a high performance server for example, or a filesystem that needs to hold an unusually large number of files or mostly very tiny files or mostly huge files -- should try a couple different filesystems to see what serves their needs better.

  • 3
    Be sure to investigate the "barrier" setting when using a journaled filesystem like ext3 on top of LVM. Older kernel versions had an issue that could (in theory) lead to corruption of the filesystem due to issues with the journal's write-out. (more at this link en.wikipedia.org/wiki/Ext3#No_checksumming_in_journal) May 24, 2009 at 5:33

If you use a UPS and are very confident that there will be no sudden losses of power or other conditions forcing the computer to hard-shutdown I would recommend XFS in many situations. It is fast for most uses, though it has some weaknesses in handling many small files at once. However, it tends to lose data in the event of an uncontrolled shutdown. This filesystem is available in Linux and IRIX.

Ext3 is the most 'stable' choice, having been in Linux for many years and having had virtually no bugs for an extended period of time. It does suffer some performance and space-efficiency penalties, mainly due to being block- rather than extent-based. This filesystem is available in Linux.

ReiserFS (3) is what I personally use, as it is quite stable in the event of uncontrolled shutdowns (which my laptop sees a lot of), as well as being space-efficient and fast. However, if it does run into issues, the contents of multiple files may end up intermingled - a possible security problem. (XFS, by comparison, zeroes out corrupted files. This makes recovery harder, but is more secure). This filesystem is available in Linux.

I recommend avoiding Reiser4. While it is fast, it is unstable (and has become more so), partially due to being rejected from the official kernel and being maintained out-of-tree.

ZFS is the new kid on the block. It is performant and feature-rich, but is relatively untested. It does have many useful aspects, one of the largest being snapsotting. This can be used to take a snapshot of the file system, which remains consistent while, say, a backup program archives its data. This filesystem is available in Solaris and (to a degree) NetBSD.

Also, while it isn't a file system, for any Linux-based servers I would recommend layering any file systems on top of LVM, the logical volume manager. It makes disk administration much easier. EVMS (which uses LVM internally) is also an option, and is somewhat easier to use, but has been mostly unmaintained for some time now.

  • 1
    XFS (IMHO, as I use LVM as well) has one major cons - it can not be shrunk.
    – Sunny
    May 1, 2009 at 4:29
  • Yeah, that's one reason I usually use Reiser3. However, servers should probably be pretty stable as far as hardware/partitioning goes over the course of their lifetime (with occasional growth), as opposed to desktop computers which are subject to more experimentation.
    – eternaleye
    May 1, 2009 at 4:33
  • In 8 years I have never, ever lost data on XFS the way you describe it (uncontrolled shutdowns.) I've seen this myth propagated by many people, most of who should know better (i.e. test first, state later.) I have had data corruption if apps were writing a particular file, of course, but no more so than when using any file system (or any operating system, for that matter) in the same conditions. Barring bugs int he file system driver as such XFS is no more and no less resilient than the hardware it's running on. May 2, 2009 at 20:18
  • Additional note: I tested this multiple times under simulated workloads ranging from media file server (stable high-bandwidth transfers) to busy mailserver (lots and lots and lots of small files) by pushing the big red button. XFS and EXT3 lost about the same amount of data. EXT3 was mounted with noatime data=ordered, XFS with noatime,attr2,logbufs=8,logbsize=256k. May 2, 2009 at 20:23
  • I have. I used JFS on my laptop when I started using Linux, the reinstalled with XFS after the hard drive died an (unrelated) death. I suffered the catastrophic data loss I describe twice when my laptop lost power, and I finally moved to Reiser3. I have had different problems with ReiserFS (including occasionally having files be readable only by root, but have various permissions including a+rw).
    – eternaleye
    May 2, 2009 at 21:25

On Solaris, if zfs is available, it is the clear winner.

On Linux, if xfs is not easily available (e.g. RedHat Enterprise / CentOS), ext3 is the clear winner.

On Linux, if xfs is available, it is the clear winner.

Reiserfs was never mature enough for serious use, and now never will be. The only filesystem under development that attempts to come close to its functionality is btrfs.

  • 1
    +1 for mentioning that RHEL doesn't have xfs. Jun 29, 2009 at 15:12

Really, I would go with ext3 for the moment, it's "fine" for near everything, and when fine isn't good enough you would probablty want to do more detailed research centered around your specific need.

Anyway, in a nutshell:

  • ext3 = most supported, most used
  • ext4 = newer, backwards compatible with ext3 (mostly), but does file commits in a certain arguably non-safe way
  • xfs = oldest (iirc) still being used, very stable, very good, not highly used, also has a similar issue with file commits that ext4 has
  • reiserfs = somewhat dead after... ahh, yeah. Bad jokes aside, was good for lots of small files but not for much else.
  • zfs = new, tasty, crazy stable, crazy resiliant. IMO really only useful for large amounts of data where you really know what you're doing, has not-that-great linux support (FUSE only).
  • jfs = actually, I know nothing about this.

The problem with ext4, xfs and others is around how they do commit data to the drive and when they "flush" (actually commit the data as opposed to caching the commit doing it later). You can read up more about it, but the general gist is that they are arguably less safe with your data but faster for it. This of course can all be configured etc.

  • ext4 still has bugs being tracked down at present, so I would leave it for a while for a stable server. Say until 2010 to be sure it is stable and widely used. May 2, 2009 at 20:18

What is the planned use (and operating system? For a boot drive or for file storage?

For example, If running a Mac, you'll need to use HFS+ or UFS for a bootable drive.

ZFS gives you a performance hit but increases the integrity of data, offers RAID like features and allows you to create a single volume over different sized disks.

  • I don't believe ZFS is available (or at least not "production ready") for Linux, only for (open) SunOS I think. Apparently there is some licensing issues with the code...
    – Evan
    May 1, 2009 at 4:10
  • Evan, I think you may have meant Solaris. <tongue-in-cheek>SunOS has been deprecated for some time now.</tongue-in-cheek> It is, however, worth noting that NetBSD also has an implementation, and OSX has a read-only ZFS driver in Leopard.
    – eternaleye
    May 1, 2009 at 4:17
  • Yeah, I meant Solaris, thanks. I believe there is a (dated) FUSE implementation of ZFS for Linux floating around too, but out of scope for this discussion. Pity, ZFS sounds like it includes the kitchen sync and everything...
    – Evan
    May 1, 2009 at 4:24
  • Evan, you might want to look up BtrFS. It aims to do most of what ZFS does, and it's in the kernel since 2.6.29 (not quite finished yet, though.)
    – eternaleye
    May 1, 2009 at 6:25

Just stay away from XFS unless you've got a UPS. I've had many, many files corrupted due to power cuts or forced reboots, if the file is still open it will often end up corrupted. A real pain in the ass if it's a critical system config file.

I'd generally go with EXT3 for Linux and HFS for Mac.


If you want enterprise grade and am not on Linux, zfs and vxfs have been absolutely rock solid for me.

For Linux, I would say ext3 or xfs. As always, you should test for your workload and requirements.


Professionally, I use VxFS (Veritas Filesystem) as it is native with HP-UX, as is LVM. Using VxVM offers some advantages and a different set of capabilities, but it too is good.

My bias in Linux is to go with XFS or ext3 and possibly LVM. I say possibly because since home and personal systems are smaller than servers, there's no need to not use the entire disk - nor to partition the drive into a dozen partitions. LVM offers nothing in such an environment. If you have terabyte drives though, it might be useful.

If using Solaris, ZFS can't be beat: it is arguably the most advanced filesystem of our time. If only it was available on other systems....


As others have said, ZFS is quite nice. If you're not interesting in using a version of Solaris, there are several alternatives:

  • Linux
    • ZFS on top of FUSE
    • worst performance
    • fewest features implemented
  • BSD
    • FreeBSD & NetBSD have proted ZFS
    • decent performance
    • many features implemented
  • Nexenta
    • uses OpenSolaris kernel + Debian / Ubuntu userland
    • best performance
    • most features, essentially native

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .