Popular Linux Filesystems

Linux Filesystems

What is a Filesystem?

A filesystem is an organisation of data and metadata on a storage device. Filesystems manage access to the data and meta data of files. Computers store data in file systems across storage devices such as CDs, DVDs and of course hard drives. Linux systems can contain and handle many different types of filesystems. Below is a list of common Linux filesystems:

Ext2 - Filesystem

Ext2 is a filesystem developed for Linux. "Ext2" stands for second extended filesystem. Ext2 was initially designed to be a replacement for the "ext" filesystem. Ext2 Filesystems are still popular today, however, many newer Linux distributions are favouring the "Ext3 and Ext4" filesystems. Ext2 is a none journalled filesystem, because of this it is still very popular with solid state devices. A none journal filesystem doesn't need to write journal entries therefore fewer writes means longer life. Depending on the block size of your filesystem, the max filesystem size an "Ext2" system can be is 32TB (based on a block size of 8k). This will also allow for a maximum file size of 2TB.

Ext3 - Filesystem

Ext3 is the third extended filesystem for Linux. "Ext3" is a journalled filesystem. "Ext3" has become one of the most popular default filesystems on Linux. The main advantage over "Ext2" is its reliability. Ext3 eliminates the need to check the filesystem after an unclean shutdown. Although "Ext3" isn't the fastest of filesystems compared to that of Ext4, reiserfs and some of the more recent. It does have the advantage that Ext2 filesystems can be upgraded to Ext3. One prominent feature that is missing from "Ext3" is the ability to take a snapshot of the filesystem.

Ext4 - Filesystem

Ext4 is the fourth extended filesystem for Linux. Ext4 was introduced back in 2008 with Kernel 2.6.19. One of the most prominent features of "Ext4" is that it can handle filesystems up to 1 exbibyte(Eib) with file sizes up to 16 tebibytes(Tib). Many large organisations quickly moved to this filesystem type. Google announced back in 2010 that it would upgrade its storage infrastructure from "Ext2" to "Ext4". Ext4 is backwardly compatible with Ext3 and Ext2. The 32,000 sub directory limit that came with Ext3 no longer exists. This was increased to 64,000. Ext4 also allows for faster filesystem checking. Ext4 also supports the ability to turn the journalling off.

Btrfs - Filesystem

Btrfs pronounced "Butter FS" is a relatively new filesystem to Linux. Btrfs is a Copy on Write filesystem. The purpose of Btrfs is to address better scalability, improve fault tolerance and repair data easier on disk. Btrfs is still classed as unstable, however, it is offered by many distributions now. SUSE and Oracle now offer support for btrfs on their Linux distributions. One very useful feature of btrfs is its ability to carry out snapshots.

reiserfs - Filesystem

ReiserFS is a general purpose journal filesystem created by Namesys. ReiserFS was the first journalling filesystem to be included in the Kernel. Originally ReiserFS was the default filesystem for Novell's SUSE Enterprise Linux. However this was dropped in favour of Ext3 back in 2006. Namesys went out of business in 2008, however, many volunteers still work on the project.


XFS is a high performance filesystem developed by Silicon Graphics Inc. It was originally created for Silicon Graphics workstations running the IRIX operating system. The XFS filesystem is particularly proficient at parallel I/O due to its allocation group based design. Today XFS is available on most popular Linux distributions. XFS is highly scalable, high performance filesystem that allows enlargement whilst still mounted and active. It was designed to handle extremely large directory structures with millions of files.

Linux Disk Partitioning and Creating Filesystems

Disks under Linux are generally known as a block device. Block devices like CDs and DVDs generally use the whole of the media for one filesystem. However, with most modern disk it is far more common to partition these drives into separate partitions. These partitions may contain different filesystems and be of different sizes depending on your layout design.

The partition in held on your physical disk in what is known as a "Partition Table". This table contains information regarding the start and end of each partition and also its type. To edit/create or delete a partition you have to modify the partition table. To accomplish this you generally use a special utility. One of the most popular tools is "fdisk".

To make it easier, I have created a separate page that covers the process of partitioning and creating a filesystem. To access this click the partitioning button above or click here: Partitioning and Filesystems.