Filesystem

A filesystem is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve, and update data as well as manage the available space on the device(s) which contain it.

Linux has a few dozen filesystems available, each with their own advantages and disadvantages when considering particular a use case.

General information

 * Access Control List Guide
 * Filesystem Security

Disk filesystems

 * bcachefs - A next generation, robust, high performance filesystem supporting CoW, compression, and encryption.
 * eCryptfs - The enterprise cryptographic filesystem for Linux.
 * ext4 - The default, GPL licensed journaling filesystem for many Linux distributions.
 * FAT - The File Allocation Table (FAT) filesystem. Originally created for use with Microsoft Windows.
 * JFS - A GPL licensed, 64-bit journaling filesystem developed by IBM.
 * Btrfs - A copy-on-write B-tree filesystem with advanced features (an entirely open source licensed ZFS alternative).
 * NTFS - Microsoft Windows' New Technology Filesystem (Windows' default filesystem).
 * Aufs - Another union filesystem.
 * OverlayFS - A Linux kernel supported union-like filesystem.
 * ReiserFS - Version 3 of the ReiserFS filesystem.
 * Reiser4 - Version 4 of ReiserFS filesystem.
 * SquashFS - A compressed, read-only file system for Linux
 * UFS/UFS2 - The Unix file system also called the Berkeley Fast File System
 * XFS - A GPL licensed, 64-bit journaling filesystem created by Silicon Graphics.
 * ZFS - A CDDL (non-GPL compatible) licensed, copy-on-write filesystem created by Sun Microsystems.
 * F2FS - A Flash-Friendly File System created by Samsung for the Linux kernel.

Virtual filesystems

 * debugfs - Used for debugging purposes; primarily Linux kernel development.
 * procfs - Used to output and change of system and process information.
 * securityfs - Used by the TPM bios character driver and IMA, an integrity provider.
 * sysfs - Used to output information about and to configure devices and drivers.
 * tmpfs - Used to store files in memory (RAM).
 * devtmpfs - requires devtmpfs (Maintain a devtmpfs filesystem to mount at /dev) in the kernel.

Network filesystems

 * Ceph - A distributed object store and filesystem designed to provide excellent performance, reliability and scalability.
 * NFS - A common Linux network file system protocol.
 * SSHFS - Implements FUSE to mount filesystems in user space.
 * Tahoe-LAFS - A least authority file system.

FUSE-based filesystems

 * CurlFtpFS - File system for accessing ftp hosts based on FUSE.


 * exFAT - A FUSE filesystem for the extended FAT filesystem.


 * MTPfs - A FUSE filesystem providing access to MTP (Media Transfer Protocol) devices.


 * smbnetfs - A FUSE filesystem for SMB shares.

Mounting
Filesystems can be mounted in several ways:


 * - The command used to manually mount filesystems. Requires administrative privileges or entries in.
 * fstab - Contains descriptive information about the filesystems the system can mount.
 * Removable media - Mount on file demand.
 * Udevil - A small auto-mount utility with little dependencies.
 * AutoFS - Automatic mount on file access.