2. Filesystem Types

Linux supports a wide variety of filesystem implementations. Some are optimized for speed, others for large storage capacity, and some are designed for smaller devices. Each of these different filesystem types has a unique way of organizing data.

The Role of the Virtual File System

With so many different implementations available, applications need a consistent way to interact with them. This is where the Virtual File System (VFS) comes in. The VFS is an abstraction layer in the Linux kernel that sits between applications and the various filesystems. It provides a single, uniform interface, ensuring that applications can work seamlessly regardless of the underlying filesystem type. This flexibility allows you to have multiple filesystems on your disks, often organized through partitions, which we will cover in a future lesson.

Journaling for Data Integrity

Most modern filesystem types include a feature called journaling by default. To understand its importance, imagine copying a large file when your computer suddenly loses power. On a non-journaled filesystem, this interruption could lead to a corrupted file and an inconsistent filesystem state. Upon rebooting, your system would need to perform a full filesystem check (fsck), which can be time-consuming on large disks.

A journaled filesystem prevents this problem. Before performing a write operation, it first records the intended changes in a special log file, or "journal." Once the operation is successfully completed, the journal is updated to mark the task as finished. If a crash occurs, the system can simply read the journal upon reboot to see which operations were in progress and quickly bring the filesystem back to a consistent state. This dramatically reduces recovery time and protects against data corruption.

Common Linux File System Types

Here are some of the most common linux file system types you will encounter:

  • ext4 - As the latest version of the native Linux Extended Filesystem, ext4 is the default for many distributions. It is backward-compatible with its predecessors (ext2/ext3) and supports very large disk volumes (up to 1 exabyte) and file sizes (up to 16 terabytes). It is a reliable and standard choice for most use cases.
  • Btrfs - Often called "B-tree FS," Btrfs is a modern filesystem with advanced features like built-in snapshots, incremental backups, and improved performance. While it is now considered stable and is the default in some distributions, it is still under active development.
  • XFS - A high-performance journaling filesystem that excels at handling large files and parallel I/O operations. This makes it an excellent choice for systems that manage large amounts of data, such as media servers.
  • NTFS and FAT - These are standard Windows filesystem types. Linux provides full support for reading and writing to them, which is useful for dual-boot systems.
  • HFS+ - The primary filesystem used by macOS. Linux has read-only support for it by default, with write support available through additional tools.

You can see which filesystems are in use on your machine with the df command:

pete@icebox:~$ df -T
Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/sda1      ext4       6461592 2402708   3707604  40% /
udev           devtmpfs    501356       4    501352   1% /dev
tmpfs          tmpfs       102544    1068    101476   2% /run
/dev/sda6      xfs       13752320  460112  13292208   4% /home

The df command reports file system disk space usage. The -T flag specifically shows the filesystem type. We will explore this tool in more detail later.

Sign in to save your learning progress

Sign in

Exercises

To put your knowledge into practice, complete the following hands-on lab. It will help reinforce your understanding of Linux filesystems and partitions:

  1. Manage Linux Partitions and Filesystems - In this lab, you will practice creating a new partition, formatting it with a specific filesystem type, mounting it, and configuring it for persistent mounting. These are fundamental skills for managing storage in Linux.

This lab allows you to apply these concepts in a real-world scenario and build confidence with disk management.

Quiz

What is the most common and default filesystem type for many Linux distributions? (Please answer in English, paying attention to case sensitivity).