- FAT* are not an option, neither is NTFS.
- Ext2 is primitive and HFS/HFS+ is just not Linux.
- JFS is nice, but (atleast parted) doesn't support grow/shrink.
- I've used XFS before, and found it to be more reliable than Ext4. However, deleting dirs with thousands of small files is too slow (a common operation when compiling)
- ZFS would've been an option if my earlier experiences with ZFS-FUSE weren't so horrid.
- Did not even consider NILFS. It's too new, and I don't know much about it.
It ended up being a choice between the reliable Ext3, or the new-fangled Btrfs. Why Btrfs? Because I've been using it as my Gentoo Distfiles and Portage tmpdir since v0.16, and found it to be the /most/ resilient to power failures of all my partitions.
I ended up selecting Ext3 for /home, but let's see why.
What's missing in Btrfs:
- Growing the filesystem to the "left" of the partition. The error message when you try this is cryptic (common in btrfs-progs). However, since for other FSes this essentially involves "move to left and grow to right", I suppose the "move" part is what's missing in btrfsctl.
- Pathetic ENOSPC handling. It either throws an ENOSPC at around 75% or when the metadata space fills up. Not sure which, but it's supposedly fixed for 2.6.32.
- Volumes once created cannot be deleted. Again, fixed in 2.6.32.
- Parted doesn't support editing/creating Btrfs partitions. Support for detecting it was proposed recently; but, I still don't see it in either "master" or "next". This is not a Btrfs problem, but certainly affects whether I'd use it.
- There were other minor irritants (with btrfs-progs, mostly), but those will go away with time
Ext3 might have bad performance (especially w.r.t fsync), but atleast it's more reliable. In conclusion, I'll use Ext3 in data=ordered mode for /home till 2.6.33 is out; and then I'll convert my Ext3 partition to Btrfs and forever be happy :}
1. betrayed == sending everything into /lost+found after a forced fsck due to an earlier fsck after a power failure