Filesystems Supported by Linux

Last updated: May 3, 2024 | Emmanuel Oyibo

Filesystems are the backbone of how computers organize and store all your important information. You can think of them like different types of filing cabinets for your digital files - photos, documents, music, and everything else.

Linux offers an impressive range of filesystems to choose from. In this article, we’ll learn about conventional disk filesystems, flash storage filesystems, and some special purpose filesystems.

Conventional Disk Filesystems

Conventional disk filesystems are designed for traditional hard drives (HDDs) and the newer solid state drives (SDDs). They’re the workhorses of your Linux system, handling everyday storage needs.

These filesystems come with different strengths to match the type of work you do. Let’s explore a few of them.


The ext3 filesystem is a predecessor of ext4. It offers journaling functionality that makes sure your data is safe, in the event of an unexpected shutdown.

Ext4 builds on ext3’s robustness with improved performance, larger filesystem support, and increased file size limits. It’s usually recommended for situations where you require stability and backward compatibility.


XFS excels where you need to handle large files. It performs exceptionally well with large-scale data operations. It was originally developed by Silicon Graphics, Inc. (SGI).

This filesystem is often one of the top-choice for data analytics and scientific applications due to its high performance and scalability.


Btrfs, or B-tree filesystem, introduces advanced features like snapshotting, dynamic inode allocation, and integrated device management.

It’s a modern filesystem designed to address the fault tolerance, repair, and easy administration needs of today’s complex systems.

You can read up a detailed comparison of Btrfs vs Ext4 in our other article.


The Journaled File System (JFS) was developed by IBM. It’s known for its high reliability and efficiency, that’s why it’s used for managing large volumes of data.

Although it’s not commonly used as ext4 and XFS, JFS is a pretty solid option for systems that require stability and low overhead.


This filesystem is primarily associated with Windows. However, it’s supported in Linux via compatibility layers like NTFS-3G. You can use it for dual-boot systems, as it allows access to Windows partitions.


VFAT is an extension of the FAT filesystem. It’s widely used for its compatibility across different operating systems, including Linux.

On the other hand, ExFAT is designed for flash drives. It’s optimized for higher storage capacities and larger sizes compared to FAT32, making it ideal for external media.

Flash Storage Filesystems

Flash storage filesystems are tailored for NAND flash memory. They’re used in devices like USB flash drives, SD cards, and solid-state drives (SSDs).

These filesystems are designed to efficiently manage the specific challenges of flash memory, such as wear leveling and limited write endurance, while maximizing performance.

Now, let’s see some of these filesystems.


UBIFS stands for UBI File System. It operates on an UBI layer and it’s optimized for wear leveling and block management. It replaces older systems like JFFS2 by offering better scalability and performance. Therefore, it’s more suitable for modern flash-based devices.


The Journaling Flash File System (JFFS) was built for use with flash memory before being succeeded by JFFS2. The latter added journaling to improve reliability and data integrity after unexpected shutdowns.

JFFS2 is still used in various embedded systems, though it’s generally being phased out in favor of more advanced technologies.


This was the first filesystem designed specifically for NAND flash memory. You can use it in environments where high reliability is necessary, despite the capacity limitations of older flash memory chips.

YAFFS continues to be relevant in specific embedded systems due to its robustness.


This is designed to scale well to large flash devices and address the limitations of JFFS2 and YAFFS in handling large data volumes. It aims to provide a more efficient solution for logging data in systems where flash memory is heavily utilized. This improves overall system responsiveness and reliability.

Special Purpose Filesystems

Special purpose filesystems in Linux are designed not for general file storage, but to support the operating system by providing an interface to internal data structures of the kernel.

Unlike the traditional filesystems that store data on disk, these are virtual. This means they exist solely in memory and disappear when you shutdown the system.

They play a crucial role in system management and configuration. Also, they provide dynamic access to system internals. Let’s explore a few of them below:


The Process File System, or procfs, is a virtual filesystem that provides a window into the inner workings of Linux. Located at /proc, this filesystem isn’t a real filesystem stored on a virtual disk. Instead, it’s a virtual one created by the kernel.

You can use it to get information about the system and running processes. For example, you can view a process’s environment variables, memory usage, and real-time system information. This makes procfs invaluable for system monitoring and debugging purposes.


This is another virtual filesystem that offers a view into the Linux kernel’s various devices and drivers. Sysfs is located in /sys and organizes information and configuration options for kernel entities in a hierarchy. This allows user-space programs to interact with the kernel.

Sysfs helps manage query device attributes, making it essential for managing devices drivers and obtaining information about the hardware configuration of a system.


Tmpfs stands for Temporary File System. It uses a portion of the system memory as a filesystem. It’s faster than using disk-based storage as it resides in volatile memory.

The data that’s stored in tmpfs is temporary as it gets cleared on system reboot. This makes it perfect for scenarios where data persistence isn’t necessary (such as session storage in web applications or for caching).

The use of tmpfs can significantly enhance performance by reducing disk I/O for temporary data.



Please add comments below to provide the author your ideas, appreciation and feedback.

Leave a Reply

Leave a Comment