Ubuntu – filesystem types for partitions


I am going to dual-boot install Ubuntu1 10.04 on my laptop with Windows 7. I was wondering

  1. what filesystem types (such as ext2,
    ext3, ext4, ReiserFS and whatever might come
    into mind) are recommended for
    various possible partitions (such as
    /, home, /boot, swap, and others
    that might come into mind)and why?
  2. if ext4 is now stable enough for use
    for partitions in Ubuntu and Shared
    partition between Windows and
  3. what journaling Options (writeback, ordered and journal) are recommended for each partition's filesystem?

Thanks and regards!

Best Answer

Assuming you have checked in wikipedia, ubuntu forum, linux forum, linux sites about this very common question, i leave you here with a quick breakdown of the common ones:


You already know that ext4 is the enhanced version of ext3 which is the enhanced version of ext2 which is the enhanced version of.. you guessed it, ext (Extended File System) which was a better implementation of the Minix File system.

I wil just copy paste a lot of stuff found in wikipedia / ubuntu+ linux forums /etc... since it is found easily but has a LOT of reading to be done to find the good points.

Ext - Solved 2 big problems that were found in the Minix System:

  • maximum partition size
  • filename length limitation to 14 characters

Ext2 - Added several things that lacked in Ext:

  • Support for separate access
  • Inode modification and data modification timestamps

Ext3 - Added More thing missing from Ext2:

  • Journaling file system
  • Online file system growth
  • Htree indexing for larger directories missing from Ext3
  • Faster Performance Overall

Ext4 - Added a whole bunch of things, including but not limited to:

  • Large file system: Support volumes with sizes up to 1 exabyte and files with sizes up to 16 terabytes.
  • Break 32,000 subdirectory limit found in ext3.
  • Faster file system checking
  • Multiblock allocator

ReiserFs - Very good File System that showed potential and i tested some years back. you could see as an end user the speed difference between it and Ext3 for example. But after some "problems" the company working on the file system had to make some changes. Sad story really. Anyway the final problem right now is the lack of tools for it.

Reiser4 - Not available easily but is the "Version 2" if you can call it that of ReiserFS. Have not tested yet but some benchmarks show good progress.

BtrFS - The illegitimate child of everyone. This file system has taken the good of Ext3, Ext4, ReiserFs and Reiser4 added some sugar, mixed with chocolate and PRESTO! you have some super mutant ninja System. This is not a stable file system YET but it shows a LOT of potential and has some pretty amazing benchmarks. You can have a look here: http://www.phoronix.com/scan.php?page=article&item=ubuntu_1010_btrfs&num=2 but it still needs a lot of work before it can be called stable. Anyway some of the amazing things that it has, for my case, would be the Online volume growth and shrinking, Online defragmentation, Snapshots...

I am using Etx4 right now since I already tested ReiserFs, Ext3, Ext2 and maybe 2 or 3 more.

For many small files in a partition I recommend Reiser since it worked wonders for me BUT you might get a problem that if it happens to you (It happened to me 2 times. That was enough.) you might loose everything forever. And I mean like FOREVER!.

Ext4 a year ago might have not sounded like fast and steady but right now it is very VERY good for almost any time of work in a desktop.

So my recommendation for your POINT 1 would be stay with Ext4. In the future, you might start looking at Btrfs but for now stay with Ext4. There is also the case of performance. As of December 2012, BtrFS does not yet have a similar performance as Ext4 does. In this case I am talking about cases like Copy/Paste speed, moving files, reading thousands of files, the stuff that end users do from time to time. BtrFS is more oriented towards scalable scenarios where we can play with several HDDs or huge space sizes, resize, snapshot and more. But even with that in mind, the work put in BtrFS is huge, so much so, that there are a couple of Ext4 developers that promote BtrFS for several case scenarios. In the future, the performance of BtrFs and stability will have improved to the point of becoming the default one.


For you POINT 2. I do not recommend it if you want to share files between Windows and ubuntu. For that case use NTFS or FAT32. Windows has some programs that can read Ext2/Ext3 systems but I have had (And 2 more friends had) a couple of problems with them, reading wrong, writing wrong, etc.. So for safety sake, stay with NTFS or FAT32 to be on the safe side.

NOTE: What I mean with this is do the Ubuntu partition with ext4 BUT leave a small partition in FAT32 or NTFS to share files between them both. If you are working on the same PC for both Windows and Ubuntu, then there is no need to make a third partition for them. Just install Windows First leaving space for Ubuntu and then install Ubuntu. Ubuntu will be able to see the files in Windows (But Windows will not be able to see the ones in Ubuntu, but since you are running in the same PC anyway you will not mind anyway). Remember that FAT32 is limited to file sizes of 4.2GB or less. If you try to copy a file bigger than that it will throw an error. This can affect you if you want to store ISO files of DVD/Bluray. For this I would then recommend NTFS.


For you POINT 3 - If you want performance you can add noatime and nodiratime to your fstab for the ext4 partition so you get a small performance boost. This will eliminate the access times for files and directories (I think noatime removes both so there might not be a need for nodiratime) If you want more journal options you can check the GIT for the Linux Kernel where it shows you all options: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/ext4.txt;h=7be02ac5fa36d7f4c07856fe9cf89391e08986f7;hb=HEAD

That will help you since it gives a brief summary for each option.

Hope this helps. Sorry for the long post.

Related Question