Filesystem

From Gentoo Wiki
Jump to:navigation Jump to:search
Resources


A filesystem is a means to organize data to be retained after a program terminates. Filesystems provide procedures to store, retrieve, and update data, as well as to 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 a particular use case.

Filesystems

General information

Flash memory filesystems

The following flash memory filesystems are designed to be used on embedded flash memory known as MTDs; they are not intended to be used for USB based flash drives, SD cards, or other types of removable flash block devices.

Name Userspace package Description
JFFS2 Journalling Flash File System version 2.
YAFFS sys-fs/yaffs2utils Yet Another Flash File System.


Disk filesystems

Name Userspace package Description
bcachefs sys-fs/bcachefs-tools A next generation, robust, high performance filesystem supporting CoW (Copy-on-write), compression, and encryption.
btrfs sys-fs/btrfs-progs A copy-on-write B-tree file system (btrfs) with advanced features.
Cramfs sys-fs/cramfs A memory and space sensitive compressed filesystem that supports random reading. It avoids the block device layer and usefulness in tiny embedded systems with very tight memory constraints.
eCryptfs sys-fs/ecryptfs-utils The enterprise cryptographic filesystem for Linux.
efivarfs A (U)EFI variable filesystem[1]
exFAT sys-fs/exfatprogs Extensible File Allocation Table (exFAT) filesystem by Microsoft, natively supported since Linux 5.7[2]
ext4 sys-fs/e2fsprogs The default, GPL licensed journaling filesystem for many Linux distributions.
F2FS sys-fs/f2fs-tools A Flash-Friendly File System (F2FS) created by Samsung for the Linux kernel.
FAT sys-fs/dosfstools The File Allocation Table (FAT) filesystem. Originally created for use with Microsoft Windows.
GFS2 Global File System 2: A shared disk filesystem. Typically used in compute clusters.
HFS sys-fs/hfsutils Hierarchical File System (HFS). Originally created for use with the Macintosh System Software, later renamed to Mac OS (Classic).
HFS+ sys-fs/hfsplusutils The successor to HFS, introduced in Mac OS 8.1 and default filesystem for Mac OS X until macOS 10.12 Sierra.
JFS sys-fs/jfsutils A GPL licensed, 64-bit Journaled File System (JFS) developed by IBM.[3]
NILFS sys-fs/nilfs-utils A log-structured file system implementation for the Linux kernel.
NTFS Microsoft Windows' New Technology File System (NTFS) (Windows' default filesystem).
OCFS2 Oracle Cluster File System version 2.
OverlayFS The only union-like filesystem built-in to the Linux kernel.
ReiserFS sys-fs/reiserfsprogs Version 3 of the ReiserFS filesystem. Scheduled for removal from the kernel in 2025.
SquashFS sys-fs/squashfs-tools, sys-fs/squashfs-tools-ng A compressed, read-only file system for Linux[4]
UDF sys-fs/udftools Universal Disk Format - needed for mounting some kind of .iso files
UFS The Unix File System (UFS) also called the Berkeley Fast File System.
XFS sys-fs/xfsprogs A GPL licensed, 64-bit journaling filesystem created by Silicon Graphics.[5]
ZFS sys-fs/zfs A CDDL (non-GPL compatible) licensed, copy-on-write filesystem created by Sun Microsystems[6].

Virtual filesystems

Virtual filesystems, also called pseudo filesystems, are for storing temporary data in memory while the system is running.

Name Userspace package Description
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, AppArmor and IMA, an integrity provider.[7]
sysfs Used to output information about and to configure devices and drivers.
tmpfs Used to store files in memory (RAM).
devtmpfs udev requires devtmpfs (Maintain a devtmpfs filesystem to mount at /dev) in the kernel.

Network filesystems

Name Userspace package Description
Ceph sys-cluster/ceph A distributed object store and filesystem designed to provide excellent performance, reliability, and scalability.
GlusterFS sys-cluster/glusterfs A powerful network/cluster filesystem.
NFS net-fs/nfs-utils A common Linux network file system protocol.
Samba net-fs/samba A re-implementation of the SMB/CIFS networking protocol.

FUSE-based filesystems

Name Userspace package Description
CurlFtpFS net-fs/curlftpfs File system for accessing FTP hosts based on FUSE.
FuseISO sys-fs/fuseiso FUSE module to mount ISO filesystem images.
MTPfs sys-fs/mtpfs A FUSE filesystem providing access to Media Transfer Protocol (MTP) devices.
smbnetfs net-fs/smbnetfs A FUSE filesystem for SMB shares.
SSHFS net-fs/sshfs Implements FUSE to mount filesystems in user space.
squashfuse sys-fs/squashfuse Mount SquashFS archives using FUSE.

Usage

Mounting

Filesystems can be mounted in several ways:

  • mount - The command used to mount filesystems. Requires administrative privileges or entries in /etc/fstab.
  • /etc/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.

See also

External resources

References