Comparison of file systems#Metadata

{{Short description|None}}

{{Incomplete list|date=July 2015}}

The following tables compare general and technical information for a number of file systems.

General information

{{sticky header}}

class="wikitable sortable sticky-header" style="width: auto; text-align: center; table-layout: fixed;"

! scope="col" | File system

! scope="col" | Creator

! scope="col" | Year of introduction

! scope="col" | Original operating system

{{rh}} | DECtape

| DEC

| 1964

| PDP-6 Monitor

{{rh}} | OS/3x0 FS

| IBM

| 1964

| OS/360

{{rh}} | Level-D

| DEC

| 1968

| TOPS-10

{{rh}} | George 3

| ICT (later ICL)

| 1968

| George 3

{{rh}} | Version 6 Unix file system (V6FS)

| Bell Labs

| 1972

| Version 6 Unix

{{rh}} | RT-11 file system

| DEC

| 1973

| RT-11

{{rh}} | Disk Operating System (GEC DOS)

| GEC

| 1973

| Core Operating System

{{rh}} | CP/M file system

| Digital Research (Gary Kildall)

| 1974

| CP/M{{cite web |url=http://www.computerhistory.org/atchm/in-his-own-words-gary-kildall/ |title=In His Own Words: Gary Kildall |author-first=Len |author-last=Shustek |date=2016-08-02 |work=Remarkable People |publisher=Computer History Museum}}{{cite web|orig-year=1993|date=2016-08-02|title=Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry|author-first=Gary Arlen|author-last=Kildall|author-link=Gary Kildall|editor-first1=Scott|editor-last1=Kildall|editor-link=Scott Kildall|editor-first2=Kristin|editor-last2=Kildall|publisher=Kildall Family|type=Manuscript, part 1|url=http://www.computerhistory.org/atchm/computer-history-museum-license-agreement-for-the-kildall-manuscript/|access-date=2016-11-17}}

{{rh}} | ODS-1

| DEC

| 1975

| RSX-11

{{rh}} | GEC DOS filing system extended

| GEC

| 1977

| OS4000

{{rh}} | FAT (8-bit)

| Microsoft (Marc McDonald) for NCR

| 1977

| Microsoft Standalone Disk BASIC-80 (later Microsoft Standalone Disk BASIC-86)

{{rh}} | DOS 3.x

| Apple

| 1978

| Apple DOS

{{rh}} | UCSD p-System

| UCSD

| 1978

| UCSD p-System

{{rh}} | CBM DOS

| Commodore

| 1978

| Commodore BASIC

{{rh}} | Atari DOS

| Atari

| 1979

| Atari 8-bit

{{rh}} | Version 7 Unix file system (V7FS)

| Bell Labs

| 1979

| Version 7 Unix

{{rh}} | ODS-2

| DEC

| 1979

| OpenVMS

{{rh}} | FAT12

| Seattle Computer Products (Tim Paterson)

| 1980

| QDOS/86-DOS (later IBM PC DOS 1.0)

{{rh}} | ProDOS

| Apple

| 1980

| Apple SOS (later ProDOS 8)

{{rh}} | DFS

| Acorn Computers Ltd

| 1982

| Acorn BBC Micro MOS

{{rh}} | ADFS

| Acorn Computers Ltd

| 1983

| Acorn Electron (later Arthur/RISC OS)

{{rh}} | FFS

| Kirk McKusick

| 1983

| 4.2BSD

{{rh}} | FAT16

| IBM, Microsoft

| 1984

| PC DOS 3.0, MS-DOS 3.0

{{rh}} | MFS

| Apple

| 1984

| System 1

{{rh}} | Elektronika BK tape format

| NPO "Scientific centre" (now Sitronics)

| 1985

| Vilnius Basic, BK monitor program

{{rh}} | HFS

| Apple

| 1985

| System 2.1

{{rh}} | Amiga OFS{{ref|54}}

| Metacomco for Commodore

| 1985

| Amiga OS

{{rh}} | GEMDOS

| Digital Research

| 1985

| Atari TOS

{{rh}} | NWFS

| Novell

| 1985

| NetWare 286

{{rh}} | High Sierra

| Ecma International

| 1986

| MSCDEX for MS-DOS 3.1/3.2{{cite journal |title=Extensions to MS-DOS Run CD-ROM |author-first=Scott |author-last=Mace |journal=InfoWorld |volume=8 |issue=38 |date=1986-09-22 |pages=1, 8 |url=https://books.google.com/books?id=ZS8EAAAAMBAJ&pg=PA1 |access-date=2016-11-09}}

{{rh}} | FAT16B

| Compaq

| 1987

| Compaq MS-DOS 3.31

{{rh}} | Minix V1 FS

| Andrew S. Tanenbaum

| 1987

| MINIX 1.0

{{rh}} | Amiga FFS

| Commodore

| 1988

| Amiga OS 1.3

{{rh}} | ISO 9660:1988

| Ecma International, ISO

| 1988

| MS-DOS, "classic" Mac OS, and AmigaOS

{{rh}} | HPFS

| IBM & Microsoft

| 1989

| OS/2 1.2

{{rh}} | Rock Ridge

| IEEE

| {{Circa|1990|sortable=yes}}

| Unix

{{rh}} | JFS1

| IBM

| 1990

| AIX{{efn |name=note-11 |IBM introduced JFS with the initial release of AIX Version 3.1 in 1990. This file system now called JFS1. The new JFS, on which the Linux port was based, was first shipped in OS/2 Warp Server for e-Business in 1999. The same sourcebase was also used for release JFS2 on AIX 5L.}}

{{rh}} | VxFS

| VERITAS

| 1991

| SVR4.0

{{rh}} | ext

| Rémy Card

| 1992

| Linux

{{rh}} | AdvFS

| DEC

| 1993{{cite web |last1=Warren |first1=David |date=20 October 1993 |title=Polycenter File System - - HELP |url=http://www.ornl.gov/lists/mailing-lists/tru64-unix-managers/1993/10/msg00043.html |archive-url=https://web.archive.org/web/20120309144054/http://www.ornl.gov/lists/mailing-lists/tru64-unix-managers/1993/10/msg00043.html |archive-date=9 March 2012 |url-status=dead}}

| Digital Unix

{{rh}} | NTFS

| Microsoft (Gary Kimura, Tom Miller)

| 1993

| Windows NT 3.1

{{rh}} | LFS

| Margo Seltzer

| 1993

| Berkeley Sprite

{{rh}} | ext2

| Rémy Card

| 1993

| Linux, Hurd

{{rh}} | Xiafs

| Q. Frank Xia

| 1993

| Linux

{{rh}} | UFS1

| Kirk McKusick

| 1994

| 4.4BSD

{{rh}} | XFS

| SGI

| 1994

| IRIX

{{rh}} | HFS

| IBM

| 1994

| MVS/ESA (now z/OS)

{{rh}} | FAT16X

| Microsoft

| 1995

| MS-DOS 7.0 / Windows 95

{{rh}} | Joliet ("CDFS")

| Microsoft

| 1995

| Microsoft Windows, Linux, "classic" Mac OS, and FreeBSD

{{rh}} | UDF

| ISO/ECMA/OSTA

| 1995

| {{n/a}}

{{rh}} | FAT32, FAT32X

| Microsoft

| 1996

| MS-DOS 7.10 / Windows 95 OSR2{{efn |name=note-10 |Microsoft first introduced FAT32 in MS-DOS 7.1 / Windows 95 OSR2 (OEM Service Release 2) and then later in Windows 98. NT-based Windows did not have any support for FAT32 up to Windows NT4; Windows 2000 was the first NT-based Windows OS that received the ability to work with it.}}

{{rh}} | QFS

| Sun Microsystems

| 1996

| Solaris

{{rh}} | GPFS

| IBM

| 1996

| AIX, Linux

{{rh}} | Be File System

| Be Inc. (D. Giampaolo, Cyril Meurillon)

| 1996

| BeOS

{{rh}} | Minix V2 FS

| Andrew S. Tanenbaum

| 1997

| MINIX 2.0

{{rh}} | HFS Plus

| Apple

| 1998

| Mac OS 8.1

{{rh}} | NSS

| Novell

| 1998

| NetWare 5

{{rh}} | PolyServe File System (PSFS)

| PolyServe

| 1998

| Windows, Linux

{{rh}} | ODS-5

| DEC

| 1998

| OpenVMS V7.2

{{rh}} | WAFL

| NetApp

| 1998

| Data ONTAP

{{rh}} | ext3

| Stephen Tweedie

| 1999

| Linux

{{rh}} | ISO 9660:1999

| Ecma International, ISO

| 1999

| Microsoft Windows, Linux, "classic" Mac OS, FreeBSD, and AmigaOS

{{rh}} | JFS

| IBM

| 1999

| OS/2 Warp Server for e-business

{{rh}} | GFS

| Sistina (Red Hat)

| 2000

| Linux

{{rh}} | ReiserFS

| Namesys

| 2001

| Linux

{{rh}} | zFS

| IBM

| 2001

| z/OS (backported to OS/390)

{{rh}} | FATX

| Microsoft

| 2002

| Xbox

{{rh}} | UFS2

| Kirk McKusick

| 2002

| FreeBSD 5.0

{{rh}} | OCFS

| Oracle Corporation

| 2002

| Linux

{{rh}} | SquashFS

| Phillip Lougher, Robert Lougher

| 2002

| Linux

{{rh}} | VMFS2

| VMware

| 2002

| VMware ESX Server 2.0

{{rh}} | Lustre

| Cluster File Systems{{cite press release |title=Sun Microsystems Expands High Performance Computing Portfolio with Definitive Agreement to Acquire Assets of Cluster File Systems, Including the Lustre File System |location=Santa Clara, Calif. |date=12 September 2007 |publisher=Sun Microsystems, Inc. |url=http://www.sun.com/aboutsun/pr/2007-09/sunflash.20070912.2.xml |archive-url=https://web.archive.org/web/20071002091821/http://www.sun.com/aboutsun/pr/2007-09/sunflash.20070912.2.xml |archive-date=2 October 2007}}

| 2002

| Linux

{{rh}} | Fossil

| Bell Labs

| 2003

| Plan 9 version 4

{{rh}} | Google File System

| Google

| 2003

| Linux

{{rh}} | ZFS

| Sun Microsystems

| 2004

| Solaris

{{rh}} | Reiser4

| Namesys

| 2004

| Linux

{{rh}} | Non-Volatile File System

| Palm, Inc.

| 2004

| Palm OS Garnet

{{rh}} | BeeGFS

|Fraunhofer/ [http://thinkparq.com/ ThinkParQ]

|2005

|Linux

{{rh}} | GlusterFS

| Gluster Inc.

| 2005

| Linux

{{rh}} | Minix V3 FS

| Andrew S. Tanenbaum

| 2005

| MINIX 3

{{rh}} | OCFS2

| Oracle Corporation

| 2005

| Linux

{{rh}} | NILFS

| NTT

| 2005

| Linux

{{rh}} | VMFS3

| VMware

| 2005

| VMware ESX Server 3.0

{{rh}} | GFS2

| Red Hat

| 2006

| Linux

{{rh}} | ext4

| various

| 2006

| Linux

{{rh}} | exFAT

| Microsoft

| 2006

| Windows CE 6.0

{{rh}} | Btrfs

| Chris Mason

| 2007

| Linux

{{rh}} | JXFS

| Hyperion Entertainment

| 2008

| AmigaOS 4.1

{{rh}} | HAMMER

| Matthew Dillon

| 2008

| DragonFly BSD 2.0

{{rh}} | LSFS

| StarWind Software

| 2009

| Linux, FreeBSD, Windows

{{rh}} | UniFS

| Nasuni

| 2009

| Cloud

{{rh}} | CASL

| Nimble Storage

| 2010

| Linux

{{rh}} | OrangeFS

|Omnibond and others

|2011

| Linux

{{rh}} | VMFS5

| VMware

| 2011

| vSphere 5.0+

{{rh}} | CHFS

| University of Szeged

| 2011

| NetBSD 6.0+

{{rh}} | ReFS

| Microsoft

| 2012

| Windows Server 2012

{{rh}} | F2FS

| Samsung Electronics

| 2012

| Linux

{{rh}} | bcachefs

| Kent Overstreet

| 2015

| Linux

{{rh}} | APFS

| Apple

| 2016

| macOS High Sierra, iOS 10.3

{{rh}} | NOVA

| UC, San Diego

| 2017

| Linux

{{rh}} | BlueStore/Cephfs

| Red Hat, University of California, Santa Cruz

|2017

|Linux

{{rh}} | HAMMER2

| Matthew Dillon{{cite web|url=http://bxr.su/d/sys/vfs/hammer2/DESIGN|title=hammer2/DESIGN|author=Matthew Dillon|author-link=Matthew Dillon (computer scientist)|website=BSD Cross Reference|publisher=DragonFly BSD|date=2018-12-09|access-date=2019-03-06}}

| 2017

| DragonFly BSD 5.0

{{rh}} | EROFS

|Huawei{{Cite news|url=https://www.xda-developers.com/huawei-erofs-linux-file-system-android/|title=Huawei announces the EROFS Linux file system intended for Android devices|date=June 1, 2018|work=XDA Developer}}

|2018

|Linux, Android

{{rh}} | VaultFS

|Swiss Vault

|2022

|Linux / Unix

Metadata

{{sort-under}}

{{sticky header}}

class="wikitable sortable sticky-header sort-under" style="width: auto; text-align: center; table-layout: fixed; margin: 0;"

! File system

! {{verth|Stores file owner}}

! {{verth|POSIX
file permissions}}

! {{verth|Creation timestamps}}

! {{verth|Last access/
read timestamps}}

! {{verth|Last metadata change
timestamps}}

! {{verth|Last archive
timestamps}}

! {{verth|Access control lists}}

! {{verth|Security/
MAC labels}}

! {{verth|Extended attributes/
Alternate data streams/
forks
}}

! {{verth|Metadata checksum/
ECC}}

{{rh}} | Bcachefs

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

{{rh}} | BeeGFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{yes}}

{{rh}} | CP/M file system

| {{no}}

| {{no}}

| {{yes}}{{efn |Implemented in later versions as an extension}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | DECtape{{cite web

| url = http://bitsavers.trailing-edge.com/pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf

| title = RT–11 Volume and File Formats Manual

| publisher = Digital Equipment Corporation

| date = August 1991

| pages = 1–26 .. 1–32

}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | Elektronika BK tape format

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

{{rh}} | Level-D

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}} (date only)

| {{yes}}

| {{yes}}

| {{yes}} (FILDAE)

| {{no}}

| {{no}}

| {{no}}

{{rh}} | RT-11{{cite web

| url = http://bitsavers.trailing-edge.com/pdf/dec/pdp11/rt11/v5.6_Aug91/AA-PD6PA-TC_RT-11_Volume_and_File_Formats_Manual_Aug91.pdf

| title = RT–11 Volume and File Formats Manual

| publisher = Digital Equipment Corporation

| date = August 1991

| pages = 1–4 .. 1–12

}}

| {{no}}

| {{no}}

| {{yes}} (date only)

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

{{rh}} | Version 6 Unix file system (V6FS){{cite web

| url=http://www.utdallas.edu/~venky/os/Proj/disk.pdf

| title=Format of the Unix 6 file system

| access-date=2016-02-21

| archive-url=https://web.archive.org/web/20160921012843/http://www.utdallas.edu/~venky/os/Proj/disk.pdf

| archive-date=2016-09-21

| url-status=dead

}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | Version 7 Unix file system (V7FS)See dinode structure on page 355 (FILESYS(5)) of {{cite web

| url=http://web.cuzuco.com/~cuzuco/v7/v7vol1.pdf

| title= Unix Programmers Manual

| publisher=Bell Telephone Laboratories

| location=Murray Hill, New Jersey

| edition=Seventh

| date=January 1979

| access-date=2016-02-21

}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | exFAT

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | FAT12/FAT16/FAT32

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}{{efn |name=fat-ctime |Some FAT implementations, such as in Linux, show file modification timestamp (mtime) in the metadata change timestamp (ctime) field. This timestamp is however, not updated on file metadata change.}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}{{efn |name=note-22 |Particular Installable File System drivers and operating systems may not support extended attributes on FAT12 and FAT16. The OS/2 and Windows NT filesystem drivers for FAT12 and FAT16 support extended attributes (using a "EA DATA. SF" pseudo-file to reserve the clusters allocated to them). Other filesystem drivers for other operating systems do not.}}

| {{no}}

{{rh}} | HPFS

| {{yes}}{{efn |name=note-14 |The f-node contains a field for a user identifier. This is not used except by OS/2 Warp Server, however.}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}}

| {{no}}

{{rh}} | NTFS

| {{yes}}

| {{yes}}{{efn |name=note-5 |NTFS access control lists can express any access policy possible using simple POSIX file permissions (and far more), but use of a POSIX-like interface is not supported without an add-on such as Services for UNIX or Cygwin.}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}{{efn |As of Vista, NTFS has support for Mandatory Labels, which are used to enforce Mandatory Integrity Control.{{cite web|url=https://docs.microsoft.com/en-us/windows/win32/secauthz/mandatory-integrity-control|title=Mandatory Integrity Control|website=Microsoft Docs|date=25 March 2021 |access-date=2022-08-14}}}}

| {{yes}}

| {{no}}

{{rh}} | ReFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{yes}}{{efn |Initially, ReFS lacked support for ADS, but Server 2012 R2 and up add support for ADS on ReFS}}

| {{yes}}

{{rh}} | HFS

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

{{rh}} | HFS Plus

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{no}}

{{rh}} | FFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | UFS1

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-33 |Access-control lists and MAC labels are layered on top of extended attributes.}}

| {{yes}}{{efn |name=note-33}}

| {{no}}{{efn |name=note-32 |Some operating systems implemented extended attributes as a layer over UFS1 with a parallel backing file (e.g., FreeBSD 4.x).}}

| {{no}}

{{rh}} | UFS2

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-33}}

| {{yes}}{{efn |name=note-33}}

| {{yes}}

| {{partial}}

{{rh}} | HAMMER

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

{{rh}} | LFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | EROFS

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

{{rh}} | ext

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | Xiafs

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | ext2

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-23 |Some Installable File System drivers and operating systems may not support extended attributes, access control lists or security labels on these filesystems. Linux kernels prior to 2.6.x may either be missing support for these altogether or require a patch.}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}

| {{no}}

{{rh}} | ext3

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}

| {{no}}

{{rh}} | ext4

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}

| {{partial}}{{efn | Metadata is mostly checksummed,{{cite web | title=Ext4 Disk Layout | url=https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Checksums}} however Direct/indirect/triple-indirect block maps are not protected by checksums{{cite web | title=Ext4 Metadata Checksums | url=https://ext4.wiki.kernel.org/index.php/Ext4_Metadata_Checksums#Metadata_Not_Being_Upgraded}} }}

{{rh}} | NOVA

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

{{rh}} | Lustre

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

{{rh}} | F2FS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}

| {{no}}

{{rh}} | GPFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

{{rh}} | GFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}

| {{no}}

{{rh}} | NILFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

{{rh}} | ReiserFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}

| {{no}}

{{rh}} | Reiser4

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | OCFS

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | OCFS2

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | XFS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-35 |Creation time stored since June 2015, xfsprogs version 3.2.3}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}{{efn |name=note-23}}

| {{yes}}

| {{yes}}

{{rh}} | JFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

{{rh}} | QFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

{{rh}} | BFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

{{rh}} | AdvFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

{{rh}} | NSS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-31 |The local time, time zone/UTC offset, and date are derived from the time settings of the reference/single timesync source in the NDS tree.}}

| {{yes}}{{efn |name=note-31}}

| {{yes}}

| {{yes}}{{efn |name=note-31}}

| {{yes}}

| {{dunno}}

| {{yes}}{{efn |name=note-19 |Novell calls this feature "multiple data streams". Published specifications say that NWFS allows for 16 attributes and 10 data streams, and NSS allows for unlimited quantities of both.}}{{efn |name=note-29 |Some file and directory metadata is stored on the NetWare server irrespective of whether Directory Services is installed or not, like date/time of creation, file size, purge status, etc; and some file and directory metadata is stored in NDS/eDirectory, like file/object permissions, ownership, etc.}}

| {{no}}

{{rh}} | NWFS

| {{yes}}

| {{dunno}}

| {{yes}}{{efn |name=note-31}}

| {{yes}}{{efn |name=note-31}}

| {{yes}}

| {{yes}}{{efn |name=note-31}}

| {{yes}}

| {{dunno}}

| {{yes}}{{efn |name=note-19}}{{efn |name=note-29}}

| {{no}}

{{rh}} | ODS-5

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes}}{{efn |name=note-17 |Record Management Services (RMS) attributes include record type and size, among many others.}}

| {{no}}

{{rh}} | APFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

{{rh}} | VxFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{yes}}{{efn |name=note-23}}

| {{no}}

{{rh}} | UDF

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

{{rh}} | Fossil

| {{yes}}

| {{yes}}{{efn |name=note-61 |File permission in 9P are a variation of the traditional Unix permissions with some minor changes, e.g. the suid bit is replaced by a new 'exclusive access' bit.}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | ZFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-69 |Supported on FreeBSD and Linux implementations, support may not be available on all operating systems.}}

| {{yes}}{{efn |name=note-60 |Solaris "extended attributes" are really full-blown alternate data streams, in both the Solaris UFS and ZFS.}}

| {{yes}}

{{rh}} | Btrfs

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

{{rh}} | Minix V1

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | Minix V2

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | Minix V3

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | VMFS2

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | VMFS3

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | ISO 9660:1988

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | Rock Ridge

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn|Access times are preserved from the original file system at creation time, but Rock Ridge file systems themselves are read-only.}}

| {{yes}}

| {{no}}

| {{no}}{{efn|libburnia can back up and restore ACLs with file system creation and extraction programs, but no kernel support exists.}}

| {{no}}{{efn|name=note-78|libburnia can back up and restore extended attributes and MAC labels with file system creation and extraction programs, but no kernel support exists.}}

| {{no}}{{efn|name=note-78}}

| {{no}}

{{rh}} | Joliet ("CDFS")

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | ISO 9660:1999

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | High Sierra

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

{{rh}} | SquashFS

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

{{rh}} | BlueStore/Cephfs

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

class="sortbottom"

! File system

! {{verth|va=top|Stores file owner}}

! {{verth|va=top|POSIX
file permissions}}

! {{verth|va=top|Creation timestamps}}

! {{verth|va=top|Last access/
read timestamps}}

! {{verth|va=top|Last metadata change
timestamps}}

! {{verth|va=top|Last archive
timestamps}}

! {{verth|va=top|Access control lists}}

! {{verth|va=top|Security/
MAC labels}}

! {{verth|va=top|Extended attributes/
Alternate data streams/
forks
}}

! {{verth|va=top|Metadata checksum/
ECC}}

Features

=File capabilities=

{{sticky header}}

class="wikitable sortable sticky-header" style="width: auto; text-align: center; table-layout: fixed; margin: 0;"

! File system

! Hard links

! Symbolic links

! Block journaling

! Metadata-only journaling

! Case-sensitive

! Case-preserving

! File Change Log

! XIP

!Resident files (inline data)

DECtape

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

BeeGFS

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

Level-D

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

RT-11

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

APFS

| {{yes}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{maybe|Optional}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

Version 6 Unix file system (V6FS)

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

Version 7 Unix file system (V7FS)

| {{yes}}

| {{no}}{{efn |name=note-59 |System V Release 4, and some other Unix systems, retrofitted symbolic links to their versions of the Version 7 Unix file system, although the original version didn't support them.}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

exFAT

| {{no}}

| {{no}}

| {{no}}

| {{partial}} (with TexFAT only)

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

FAT12

| {{no}}

| {{no}}

| {{no}}

| {{partial}} (with TFAT12 only)

| {{no}}

| {{partial}} (with VFAT LFNs only)

| {{no}}

| {{no}}

| {{no}}

FAT16 / FAT16B / FAT16X

| {{no}}

| {{no}}

| {{no}}

| {{partial}} (with TFAT16 only)

| {{no}}

| {{partial}} (with VFAT LFNs only)

| {{no}}

| {{no}}

| {{no}}

FAT32 / FAT32X

| {{no}}

| {{no}}

| {{no}}?

| {{partial}} (with TFAT32 only)

| {{no}}

| {{partial}} (with VFAT LFNs only)

| {{no}}

| {{no}}

| {{no}}

GFS

| {{yes}}

| {{yes}}{{efn |Context based symlinks were supported in GFS, GFS2 only supports standard symlinks since the bind mount feature of the Linux VFS has made context based symlinks obsolete}}

| {{yes}}

| {{yes}}{{efn |Optional journaling of data}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

HPFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

NTFS

| {{yes}}

| {{yes}}{{efn |As of Windows Vista, NTFS fully supports symbolic links.{{cite magazine|url=https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc162494(v=msdn.10)|title=Windows Administration: Inside the Windows Vista Kernel: Part 1|author=Mark Russinovich|author-link=Mark Russinovich|date=February 2007|magazine=TechNet}} NTFS 3.0 (Windows 2000) and higher can create junctions, which allow entire directories (but not individual files) to be mapped to elsewhere in the directory tree of the same partition (file system). These are implemented through reparse points, which allow the normal process of filename resolution to be extended in a flexible manner.}}

| {{no}}{{efn |name=note-37 |NTFS stores everything, even the file data, as meta-data, so its log is closer to block journaling.}}

| {{yes}}{{efn |name=note-37}} (2000)

| {{yes}}{{efn |name=note-36 |While NTFS itself supports case sensitivity, the Win32 environment subsystem cannot create files whose names differ only by case for compatibility reasons. When a file is opened for writing, if there is any existing file whose name is a case-insensitive match for the new file, the existing file is truncated and opened for writing instead of a new file with a different name being created. Other subsystems like e. g. Services for Unix, that operate directly above the kernel and not on top of Win32 can have case-sensitivity.}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes|Yes}} (approximately 700 bytes)

HFS Plus

| {{yes}}{{cite web|last1=Siracusa|first1=John|title=Mac OS X 10.7 Lion: the Ars Technica review|url=https://arstechnica.com/gadgets/2011/07/mac-os-x-10-7/12/#hfs-problems|website=Ars Technica|access-date=14 December 2017|quote=To keep track of hard links, HFS+ creates a separate file for each hard link inside a hidden directory at the root level of the volume.|date=2011-07-20}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-48 |Metadata-only journaling was introduced in the Mac OS X 10.2.2 HFS Plus driver; journaling is enabled by default on Mac OS X 10.3 and later.}}

| {{maybe|Optional}}{{efn |Although often believed to be case sensitive, HFS Plus normally is not. The typical default installation is case-preserving only. From Mac OS X 10.3 on the command newfs_hfs -s will create a case-sensitive new file system.{{man|8|newfs_hfs|Darwin}} HFS Plus version 5 optionally supports case-sensitivity. However, since case-sensitivity is fundamentally different from case-insensitivity, a new signature was required so existing HFS Plus utilities would not see case-sensitivity as a file system error that needed to be corrected. Since the new signature is 'HX', it is often believed this is a new filesystem instead of a simply an upgraded version of HFS Plus.{{cite web |publisher=Apple |url=https://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Articles/Comparisons.html |title=File System Comparisons |archive-url=https://web.archive.org/web/20081006205615/https://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/Articles/Comparisons.html |archive-date=2008-10-06 |url-status=dead}} (hasn't been updated to discuss HFSX){{cite web |publisher=Apple |url=https://developer.apple.com/library/archive/technotes/tn/tn1150.html |title=Technical Note TN1150: HFS Plus Volume Format}} (Very technical overview of HFS Plus and HFSX.)}}

| {{yes}}

| {{yes}}{{efn |Mac OS X Tiger (10.4) and late versions of Panther (10.3) provide file change logging (it's a feature of the file system software, not of the volume format, actually).{{Cite web |url=http://www.kernelthread.com/software/fslogger/ |title=fslogger |access-date=2006-08-03 |archive-url=https://web.archive.org/web/20080918004451/http://www.kernelthread.com/software/fslogger/ |archive-date=2008-09-18 |url-status=dead }}}}

| {{no}}

| {{dunno}}

FFS

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

UFS1

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

UFS2

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-66 |"Soft dependencies" (softdep) in NetBSD, called "soft updates" in FreeBSD provide meta-data consistency at all times without double writes (journaling)}} {{cite web|url=https://www.mckusick.com/softdep/suj.pdf|title=Journaled Soft-updates|first1=Marshall Kirk|last1=McKusick|first2=Jeff|last2=Roberson}} {{efn|Journaled Soft Updates (SU+J) are the default as of FreeBSD 9.x-RELEASE {{Cite web | url=https://wiki.freebsd.org/NewFAQs |title = NewFAQs - FreeBSD Wiki}}{{Cite web | url=https://www.freebsd.org/releases/9.0R/announce.html | title=FreeBSD 9.0-RELEASE Announcement}}}}

| {{yes}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{no}}

HAMMER

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{dunno}}

LFS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-38 |UDF, LFS, and NILFS are log-structured file systems and behave as if the entire file system were a journal.}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

EROFS

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

ext

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

Xiafs

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

ext2

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn |name=note-65 |Linux kernel versions 2.6.12 and newer.}}

| {{dunno}}

ext3

| {{yes}}

| {{yes}}

| {{yes}} (2001) {{efn |name=note-62 |Off by default.}}

| {{yes}} (2001)

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

ext4

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-62}}

| {{yes}}

| {{yes}}, optional {{cite web |url=https://www.phoronix.com/scan.php?page=news_item&px=EXT4-Case-Insensitive-Linux-5.2|title=EXT4 Case-Insensitive Directories/File-Name Lookups Coming With Linux 5.2}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}} (approximately 160 bytes){{Cite web |title=2. High Level Design — The Linux Kernel documentation § 2.10. Inline Data |url=https://www.kernel.org/doc/html/latest/filesystems/ext4/overview.html#inline-data |access-date=2022-12-24 |website=www.kernel.org}}

NOVA

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

F2FS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-38}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

Lustre

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-62}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{dunno}}

NILFS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-38}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

ReiserFS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-44 |Full block journaling for ReiserFS was added to Linux 2.6.8.}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{dunno}}

Reiser4

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{dunno}}

OCFS

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

OCFS2

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

XFS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-62}}

| {{yes}}

| {{yes}}{{efn |name=note-40 |Optionally no on IRIX and Linux.}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{dunno}}

JFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}} (1990)

| {{yes}}{{efn |name=note-30 |Particular Installable File System drivers and operating systems may not support case sensitivity for JFS. OS/2 does not, and Linux has a mount option for disabling case sensitivity.}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{dunno}}

QFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

BFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{dunno}}

NSS

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{yes}}{{efn |name=note-20 |Case-sensitivity/Preservation depends on client. Windows, DOS, and OS/2 clients don't see/keep case differences, whereas clients accessing via NFS or AFP may.}}

| {{yes}}{{efn |name=note-20}}

| {{yes}}{{efn |name=note-6 |The file change logs, last entry change timestamps, and other filesystem metadata, are all part of the extensive suite of auditing capabilities built into NDS/eDirectory called NSure Audit.{{cite web |url=http://www.novell.com/documentation/nsureaudit/html/netware_event_data.htm |title=Filesystem Events tracked by NSure}}}}

| {{no}}

| {{dunno}}

NWFS

| {{yes}}{{efn |name=note-53 |Available only in the "NFS" namespace.}}

| {{yes}}{{efn |name=note-53}}

| {{no}}

| {{no}}

| {{yes}}{{efn |name=note-20}}

| {{yes}}{{efn |name=note-20}}

| {{yes}}{{efn |name=note-6}}

| {{no}}

| {{dunno}}

ODS-2

| {{yes}}

| {{yes}}{{efn |name=note-18 |These are referred to as "aliases".}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{dunno}}

ODS-5

| {{yes}}

| {{yes}}{{efn |name=note-18}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{dunno}}

UDF

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-38}}

| {{yes}}{{efn |name=note-38}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}{{cite web |url=http://www.osta.org/specs/pdf/udf260.pdf |title=Universal Disk Format Specification – Revision 2.60 |page=34 |quote=This file, when small, can be embedded in the [Information Control Block] that describes it.}}

VxFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{dunno}}

Fossil

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{dunno}}

ZFS

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-56 |ZFS is a transactional filesystem using copy-on-write semantics, guaranteeing an always-consistent on-disk state without the use of a traditional journal. However, it does also implement an intent log to provide better performance when synchronous writes are requested.}}

| {{no}}{{efn |name=note-56}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}} (112 bytes){{Cite web |title=zpool-features.7 - OpenZFS documentation |url=https://openzfs.github.io/openzfs-docs/man/master/7/zpool-features.7.html#embedded_data |access-date=2024-09-23 |website=openzfs.github.io}}

Btrfs

| {{yes}}

| {{yes}}

| {{yes}}{{efn |name=note-80 |Btrfs is a transactional filesystem using copy-on-write semantics, guaranteeing an always-consistent on-disk state without the use of a traditional journal. It keeps track of last five transactions and uses checksums to find problematic drives, making write intent logs unnecessary.}}

| {{no}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{yes}} (2 KiB){{cite web | url=https://btrfs.readthedocs.io/en/latest/Inline-files.html | title=Inline files — BTRFS documentation }}

Bcachefs

| {{yes}}

| {{yes}}

| {{yes}}{{efn |Bcachefs is a transactional filesystem using copy-on-write semantics, guaranteeing an always-consistent on-disk state without the use of a traditional journal. Journal commits are fairly expensive operations as they require issuing FLUSH and FUA operations to the underlying devices. By default, a journal flush is issued one second after a filesystem update has been done, which primarily records btree updates ordered by when they occurred. This option may be useful on a personal workstation or laptop, and perhaps less appropriate on a server.}}

| {{no}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

Minix V1

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

Minix V2

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

Minix V3

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

VMFS2

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

VMFS3

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

ReFS

| {{yes}}{{efn | Since Windows 10 Enterprise Insider Preview build 19536}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{yes}}{{efn |name=note-36}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

ISO 9660

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

Rock Ridge

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

Joliet ("CDFS")

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

SquashFS

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

BlueStore/Cephfs

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

class="sortbottom"

! File system

! Hard links

! Symbolic links

! Block journaling

! Metadata-only journaling

! Case-sensitive

! Case-preserving

! File Change Log

! XIP

!Resident files

=Block capabilities=

Note that in addition to the below table, block capabilities can be implemented below the file system layer in Linux (LVM, {{proper name|integritysetup}}, cryptsetup) or Windows (Volume Shadow Copy Service, SECURITY), etc.

{{sticky header}}

class="wikitable sortable sticky-header" style="width: auto; text-align: center; table-layout: fixed; margin: 0;"

! File system

! Internal snapshotting / branching

! Encryption

! Deduplication

! Data checksum/ ECC

! Persistent Cache

! Multiple Devices

! Compression

! Self-healing{{efn |name=note-82|A file system is self-healing if its capable to proactively autonomously detect and correct all but grave errors, faults and corruptions online both in internal metadata AND data. See US7694191B1 as example. This usually requires full checksumming as well as internal redundancy as well as corresponding logic.}}

DECtape

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

BeeGFS

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

Level-D

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

RT-11

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

APFS

| {{yes}}

| {{yes}}

| {{yes}} {{cite web |url=http://www.manpagez.com/man/2/clonefile/ |title=clonefile(2) | quote=The cloned file dst shares its data blocks with the src file [..]}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

Version 6 Unix file system (V6FS)

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Version 7 Unix file system (V7FS)

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

exFAT

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

FAT12

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{partial}}{{efn |name=FATcompress|only inside of Stacker 3/4 and DriveSpace 3 compressed volumes{{cite web |title=DMSDOS CVF module |type=dmsdoc.doc |version=0.9.2.0 |date=1998-11-19 |url=http://cmp.felk.cvut.cz/~pisa/dmsdos/dmsdos.html |access-date=2016-11-01 |url-status=live |archive-url=https://web.archive.org/web/20161102123812/http://cmp.felk.cvut.cz/~pisa/dmsdos/dmsdos.html |archive-date=2016-11-02 |quote=Usually all data for one cluster are stored in contiguous sectors, but if the filesystem is too fragmented there may not be a 'free hole' that is large enough for the data. […] Drivespace 3 and Stacker know a hack for that situation: they allow storing the data of one cluster in several fragments on the disk.}}}}

| {{no}}

FAT16 / FAT16B / FAT16X

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{partial}}{{efn |name=FATcompress}}

| {{no}}

FAT32 / FAT32X

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

GFS

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

HPFS

| {{dunno}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

NTFS

| {{no}}

| {{yes}}

| {{yes}}{{efn |name=note-NTFS-Dedup |Supported only on Windows Server SKUs. However, partitions deduplicated on Server can be used on Client.}}{{cite web|url=https://msdn.microsoft.com/en-us/library/hh769303(v=vs.85).aspx|title=About Data Deduplication|date=31 May 2018 }}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

HFS Plus

| {{no}}

| {{no}}{{efn |name=note-77 |HFS+ does not actually encrypt files: to implement FileVault, OS X creates an HFS+ filesystem in a sparse, encrypted disk image that is automatically mounted over the home directory when the user logs in.}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

FFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

UFS1

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

UFS2

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

HAMMER

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

LFS

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

EROFS

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

ext

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Xiafs

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ext2

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ext3

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ext4

| {{no}}

| {{yes}}, experimental {{cite web |url=https://lwn.net/Articles/639427/ |title=Ext4 encryption}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

NOVA

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

F2FS

| {{no}}

| {{yes}}, experimental {{cite web |url=https://lwn.net/Articles/677620/ |title=F2FS encryption}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

Lustre

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

NILFS

| {{yes}}, continuous{{efn |name=note-38}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ReiserFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Reiser4

| {{dunno}}

| {{yes}}{{efn |name=note-50 |Reiser4 supports transparent compression and encryption with the cryptcompress plugin which is the default file handler in version 4.1.}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

OCFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

OCFS2

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

XFS

| {{no}}

| {{no}}

| {{yes}}{{cite web |url=https://manpages.debian.org/bullseye/xfsprogs/mkfs.xfs.8.en.html|title=mkfs.xfs(8) from xfsprogs 5.10.0-4|quote=By default, mkfs.xfs [..] will enable the reflink [=deduplication] feature. }}

| {{no}}{{cite web | title=Red Hat: What is bitrot? | url=https://www.redhat.com/en/blog/what-bit-rot-and-how-can-i-detect-it-rhel}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

JFS

| {{dunno}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{yes2}} only in JFS1 on AIX{{cite web |title=JFS data compression |publisher=IBM |url=https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/devicemanagement/jfsdatacomp.html |access-date=2020-07-26}}

| {{no}}

QFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

BFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

NSS

| {{yes}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

NWFS

| {{dunno}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

ODS-2

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ODS-5

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

UDF

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

VxFS

| {{yes}}{{efn |name=note-70 |VxFS provides an optional feature called "Storage Checkpoints" which allows for advanced file system snapshots.}}

| {{no}}

| {{Yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Fossil

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

ZFS

| {{yes}}

| {{yes}}{{efn |name=zfscrypt |Applies to proprietary ZFS release 30 and ZFS On Linux. Encryption support is not yet available in all OpenZFS ports.{{cite web|title=How to Manage ZFS Data Encryption|url=https://www.oracle.com/technical-resources/articles/solaris/manage-zfs-encryption.html|first=Darren|last=Moffat|date=July 2012|access-date=2022-08-14}}{{cite web|title=Release zfs-0.8.0|website=GitHub|url=https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.8.0|date=2020-01-21}}{{cite web|title=Feature Flags - OpenZFS|url=http://open-zfs.org/wiki/Feature_Flags}}}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}{{efn | LZJB (optimized for performance while providing decent data compression)
LZ4 (faster & higher ratio than lzjb)
gzip levels: 1 (fastest) to 9 (best), default is 6
zstd positive: 1 (fastest) to 19 (best), default is 3
zstd negative: 1(best & default)-10, 20, 30, …, 100, 500, 1000(fastest)
zle: compresses runs of zeros.{{cite web|url=https://openzfs.github.io/openzfs-docs/man/master/7/zfsprops.7.html|title=zfsprops.7 — OpenZFS documentation|website=GitHub|date=2023-08-26|access-date=2023-09-14}}}}

| {{yes}}

Btrfs

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}{{efn | disabling copy-on-write (COW) to prevent fragmentation also disables data checksumming}}

| {{no}}

| {{yes}}

| {{yes}}{{efn | zlib levels: 1 to 9, default is 3
LZO (no levels) faster than ZLIB, worse ratio
zstd levels: 1 to 15, default is 3 (higher levels are not available){{cite web|url=https://btrfs.readthedocs.io/en/latest/Compression.html|title=Compression — BTRFS documentation|website=GitHub|date=2023-07-26|access-date=2023-09-14}}}}

| {{yes}}

Bcachefs

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}{{efn | none
CRC-32C (default)
crc64
chacha20/poly1305 (When encryption is enabled. Encryption can only be specified for the entire filesystem, not per file or directory){{cite web |last1=Overstreet |first1=Kent |title=bcachefs: Principles of Operation |url=https://bcachefs.org/bcachefs-principles-of-operation.pdf |access-date=10 May 2023 |date=18 Dec 2021}}}}

| {{no}}

| {{yes}}

| {{yes}}{{efn | none (default)
The three currently supported algorithms are gzip, LZ4, zstd.
The compression level may also be optionally specified, as an integer between 0 and 15, e.g. lz4:15. 0 specifies the default compression level, 1 specifies the fastest and lowest compression ratio, and 15 the slowest and best compression ratio.{{cite web |title= bcachefs/ Compression |url=https://bcachefs.org/Compression/ |access-date=14 Jan 2024 |date=11 Sep 2023}}}}

| {{no}}

Minix V1

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Minix V2

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Minix V3

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

VMFS2

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

VMFS3

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ReFS

| {{no}}{{efn |* 3.7: Added file-level snapshot (only available in Windows Server 2022).{{cite web|title=Resilient File System (ReFS) overview|url=https://docs.microsoft.com/en-us/windows-server/storage/refs/refs-overview|website=Microsoft|access-date=22 September 2020|archive-date=25 September 2020|archive-url=https://web.archive.org/web/20200925115025/https://docs.microsoft.com/en-us/windows-server/storage/refs/refs-overview|url-status=live}}}}

| {{no}}

| {{yes}}

| {{no}}{{efn |name=ReFSecc|By using the per-file "integrity stream" that internally stores a checksum per cluster. Those per cluster checksums are not accessible so it is actually a per file feature and not a per block feature. Integrity streams are not enabled by default.{{cite web|url = https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831724(v=ws.11)|title = Resilient File System Overview|date = 29 February 2012|website = Microsoft Docs|publisher = Microsoft|access-date = 24 August 2022}}}}

| {{no}}

| {{no}}

| {{no}}{{efn |* 3.9: Added post process compression with LZ4 and ZSTD and transparent decompression.}}

| {{no}}{{efn |name=ReFSecc}}

ISO 9660

| {{no}}

| {{no}}

| {{no}}{{efn|name=note-79|Some file system creation implementations reuse block references and support deduplication this way. This is not supported by the standard, but usually works well due to the file system's read-only nature.}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Rock Ridge

| {{no}}

| {{no}}

| {{no}}{{efn|name=note-79}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Joliet ("CDFS")

| {{no}}

| {{no}}

| {{no}}{{efn|name=note-79}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

SquashFS

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

BlueStore/Cephfs

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

class="sortbottom"

! File system

! Internal snapshotting / branching

! Encryption

! Deduplication

! Data checksum/ ECC

! Persistent Cache

! Multiple Devices

! Compression

! Self-healing{{efn |name=note-82}}

=Resize capabilities=

"Online" and "offline" are synonymous with "mounted" and "not mounted".

{{sort-under}}

{{sticky header}}

class="wikitable sortable sticky-header sort-under" style="width: auto; text-align: center; table-layout: fixed;"
scope="col"|File system

!scope="col"|Host OS

!scope="col"|Offline grow

!scope="col"|Online grow

!scope="col"|Offline shrink

!scope="col"|Online shrink

!scope="col"|Add and remove physical volumes

scope="row"|FAT16 / FAT16B / FAT16X

|misc.

|{{yes}}{{efn|name="libparted"|With software based on GNU Parted.}}

|{{no}}

|{{yes}}{{efn|name="libparted"}}

|{{no}}

|{{no}}

scope="row"|FAT32 / FAT32X

|misc.

|{{yes}}{{efn|name="libparted"}}

|{{no}}

|{{yes}}{{efn|name="libparted"}}

|{{no}}

|{{no}}

scope="row"|exFAT

|misc.

|{{no}}

|{{no}}

|{{no}}

|{{no}}

|{{no}}

scope="row"|NTFS

|Windows

|{{yes}}

|{{yes}}

|{{yes}}

|{{yes}}

|{{no}}

scope="row"|ReFS

|Windows

|{{dunno}}

|{{yes}}

|{{dunno}}

|{{no}}

|{{no}}

scope="row"|HFS

|macOS

|{{no}}

|{{no}}

|{{no}}

|{{no}}

|{{no}}

scope="row"|HFS+

|macOS

|{{no}}

|{{yes}}

|{{no}}

|{{yes}}

|{{no}}

scope="row"|APFS

|macOS

|{{dunno}}

|{{dunno}}

|{{dunno}}

|{{dunno}}

|{{dunno}}

scope="row"|EROFS

|Linux

|{{yes}}

|{{no}}

|{{no}}

|{{no}}

|{{yes}}

scope="row"|SquashFS

|Linux

|{{no}}

|{{no}}

|{{no}}

|{{no}}

|{{no}}

scope="row"|NOVA

|Linux

|{{no}}

|{{no}}

|{{no}}

|{{no}}

|{{no}}

scope="row"|JFS{{cite web|url=https://www.kernel.org/doc/Documentation/filesystems/jfs.txt|title=IBM's Journaled File System (JFS) for Linux}}

|Linux

|{{yes}}

|{{no}}

|{{no}}

|{{no}}

|{{no}}

scope="row"|XFS{{cite web|url=https://docs.oracle.com/cd/E37670_01/E37355/html/ol_grow_xfs.html|title=Growing an XFS File System}}

|Linux

|{{no}}

|{{yes}}

|{{no}}{{Cite web |date=2022-07-17 |title=Shrinking Support - xfs.org |url=http://xfs.org/index.php/Shrinking_Support |url-status=dead |archive-url=https://web.archive.org/web/20220717073119/http://xfs.org/index.php/Shrinking_Support |archive-date=2022-07-17 |access-date=2022-12-18 |website=XFS Wiki}}

|{{no}}

|{{no}}

scope="row"|Lustre{{cite web|url=http://wiki.lustre.org/Frequently_Asked_Questions_(Old_Wiki)|title=Frequently Asked Questions (Old Wiki)|access-date=5 May 2018}}

|Linux

|{{dunno}}

|{{yes}}

|{{no}}

|{{no}}

|{{yes}}

scope="row"|F2FS{{Cite web | url=https://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/ |title = Kernel/Git/Jaegeuk/F2fs-tools.git - Userland tools for the f2fs filesystem}}

|Linux

|{{yes}}

|{{no}}

|{{no}}

|{{no}}

|{{no}}

scope="row"|NTFS{{cite web|url=http://linux.die.net/man/8/ntfsresize|title=ntfsresize(8)}}

|Linux

|{{yes}}

|{{no}}

|{{yes}}

|{{no}}

|{{no}}

scope="row"|ext2{{man|8|resize2fs|Linux}}

|Linux

|{{yes}}

|{{no}}

|{{yes}}

|{{no}}

|{{no}}

scope="row"|ext3

|Linux

|{{yes}}

|{{yes}}

|{{yes}}

|{{no}}

|{{no}}

scope="row"|ReiserFS{{cite web|url=https://www.suse.com/documentation/sles11/stor_admin/data/biuymaa.html|title=Resizing File Systems}}

|Linux

|{{yes}}

|{{yes}}

|{{yes}}

|{{no}}

|{{no}}

scope="row"|Reiser4{{cite web|url=https://reiser4.wiki.kernel.org/index.php/Resize_reiserfs|title=Resize reiserfs|website=Reiserfs wiki}}

|Linux

|{{yes}}

|{{yes}}

|{{yes}}

|{{no}}

|{{no}}

scope="row"|ext4

|Linux

|{{yes}}

|{{yes}}

|{{yes}}

|{{no}}

|{{no}}

scope="row"|Btrfs{{cite web|title=Just Enough Operating System (JeOS): Technical Information {{!}} SUSE|url=https://www.suse.com/products/server/technical-information/|website=www.suse.com|access-date=28 April 2018|language=en}}

|Linux

|{{yes}}

|{{yes}}

|{{yes}}

|{{yes}}

|{{yes}}

scope="row"|Bcachefs

|Linux

|{{yes}}

|{{yes}}

|{{no}}

|{{no}}

|{{yes}}

scope="row"|NILFS{{cite web|url=http://nilfs.sourceforge.net/en/man8/nilfs-resize.8.html|title=nilfs-resize(8)}}

|Linux

|{{no}}

|{{yes}}

|{{no}}

|{{yes}}

|{{no}}

scope="row"|ZFS

|misc.

|{{no}}

|{{yes}}

|{{no}}

|{{yes}}

|{{partial}}Top-level vdevs can only be removed if the primary pool storage does not contain a top-level raidz vdev, all top-level vdevs have the same sector size, and the keys for all encrypted datasets are loaded. {{cite web|title=MAN Pages zpool-remove.8|url=https://openzfs.github.io/openzfs-docs/man/master/8/zpool-remove.8.html}}

scope="row"|JFS2

|AIX

|{{yes}}

|{{yes}}

|{{yes}}

|{{yes}}

|{{no}}

scope="row"|UFS2{{cite web|url=https://www.freebsd.org/doc/handbook/disks-growing.html|title=Resizing and Growing Disks}}

|FreeBSD

|{{yes}}

|{{yes}} (FreeBSD 10.0-RELEASE or later)

|{{no}}

|{{no}}

|{{no}}

scope="row"|HAMMER

|DragonflyBSD

|{{dunno}}

|{{dunno}}

|{{dunno}}

|{{dunno}}

|{{dunno}}

scope="row"|BlueStore/Cephfs

|Linux

|{{no}}

|{{yes}}

|{{no}}

|{{yes}}

|{{yes}}

= Allocation and layout policies =

{{sort-under}}

{{sticky header}}

class="wikitable sortable sticky-header sort-under" style="width: auto; text-align: center; table-layout: fixed;"

! File system

!Sparse files

!Block suballocation

! Tail packing

! Extents

! Variable file block size{{efn |name=note-41 |Variable block size refers to systems which support different block sizes on a per-file basis. (This is similar to extents but a slightly different implementational choice.) The current implementation in UFS2 is read-only.}}

! Allocate-on-flush

! Copy on write

! Trim support

DECtape

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

BeeGFS

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

Level-D

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

APFS

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{yes}}

| {{yes}}{{cite web |url=https://www.zdnet.com/article/wwdc-2017-macoss-new-file-system/|title=Mac users, meet APFS: macOS's new file system - ZDNet|website=ZDNet}}{{cite web |url=https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html|title=Apple File System Guide - FAQ}}

Version 6 Unix file system (V6FS)

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

Version 7 Unix file system (V7FS)

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

exFAT

| {{no}}

| {{no}}

| {{no}}

| {{partial}} (only if the file fits into one contiguous block range)

| {{no}}

| {{no}}

| {{no}}

| {{yes}} (Linux)

FAT12

| {{partial}} (only inside of compressed volumes)

| {{partial}} (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes)

| {{no}}

| {{partial}} (only inside of compressed volumes)

| {{no}}

| {{no}}

| {{no}}

| {{yes}} (Linux)

FAT16 / FAT16B / FAT16X

| {{partial}} (only inside of compressed volumes){{cite web|url=http://www.techhelpmanual.com/808-cvf_region__mdfat.html|title=CVF Region: MDFAT}}

| {{partial}} (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes)

| {{no}}

| {{partial}} (only inside of compressed volumes){{cite web|url=http://www.techhelpmanual.com/814-mapping_dos_fat_to_mdfat.html|title=Mapping DOS FAT to MDFAT}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}} (Linux)

FAT32 / FAT32X

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}} (Linux)

GFS

| {{yes}}

| {{no}}

| {{partial}}{{efn |Only for "stuffed" inodes}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}}

HPFS

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}} (Linux)

NTFS

| {{yes}}

| {{partial}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}} (NT 6.1+; Linux)

HFS Plus

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}} (macOS)

FFS

| {{yes}}

| {{yes2}} 8:1{{efn |name=note-45 |Other block:fragment size ratios supported; 8:1 is typical and recommended by most implementations.}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

UFS1

| {{yes}}

| {{yes2}} 8:1{{efn |name=note-45}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

UFS2

| {{yes}}

| {{yes2}} 8:1{{efn |name=note-45}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{yes}}{{Cite web | url=https://svnweb.freebsd.org/base?view=revision&revision=216796 |title = [base] Revision 216796}}{{Cite web | url=https://www.freebsd.org/cgi/man.cgi?query=newfs&sektion=8&manpath=FreeBSD+8.4-RELEASE |title = Newfs(8)}}

LFS

| {{yes}}

| {{yes2}} 8:1{{efn |name=note-45}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{dunno}}

EROFS

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ext

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Xiafs

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

ext2

| {{yes}}

| {{no}}{{efn |name=note-47 |Fragments were planned, but never actually implemented on ext2 and ext3.}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

ext3

| {{yes}}

| {{no}}{{efn |name=note-47}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

ext4

| {{yes}}

| {{no}}{{efn |name=note-47}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

NOVA

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{dunno}}

F2FS

| {{yes}}

| {{no}}

| {{no}}

| {{partial}}{{efn |name=note-75 | Stores one largest extent in disk, and caches multiple extents in DRAM dynamically.}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}{{cite mailing list |url=https://lkml.org/lkml/2014/09/23/32 |title=[PATCH 2/3] f2fs: Introduce FITRIM in f2fs_ioctl |author=Jaeguk Kim |mailing-list=linux-kernel |date=2014-09-22}}

Lustre

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{dunno}}

NILFS

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}} (Linux NILFS2)

ReiserFS

| {{yes}}

| {{yes}}{{efn |name=note-73 |Tail packing is technically a special case of block suballocation where the suballocation unit size is always 1 byte.}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

Reiser4

| {{yes}}

| {{yes}}{{efn |name=note-73}}

| {{yes}}

| {{yes}}{{efn |name=note-39 |In "extents" mode.}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{maybe|Testing}}{{cite web |title=Reiser4 discard support |url=https://reiser4.wiki.kernel.org/index.php/Reiser4_discard_support |website=Reiser4 FS Wiki}}

OCFS

| {{dunno}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

OCFS2

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}} (Linux)

XFS

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}, on request{{cite web |url=https://www.phoronix.com/scan.php?page=news_item&px=XFS-Linux-4.9-Shared-Extents|title=XFS Adds Shared Data Extents For Linux 4.9}}

| {{yes}} (Linux)

JFS

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}} (Linux)

QFS

| {{dunno}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

BFS

| {{dunno}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}} (Haiku)

NSS

| {{dunno}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{dunno}}

NWFS

| {{dunno}}

| {{yes}}{{efn |name=note-42 |Each possible size (in sectors) of file tail has a corresponding suballocation block chain in which all the tails of that size are stored. The overhead of managing suballocation block chains is usually less than the amount of block overhead saved by being able to increase the block size but the process is less efficient if there is not much free disk space.}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

ODS-5

| {{dunno}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

VxFS

| {{yes}}

| {{dunno}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

UDF

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{dunno}}{{efn |name=note-46 |Depends on UDF implementation.}}

| {{yes}}, for write once read many media

| {{no}}

Fossil

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

ZFS

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

Btrfs

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

Bcachefs

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{yes}}

| {{dunno}}

VMFS2

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

VMFS3

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

ReFS

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{dunno}}

| {{yes}}

| {{yes}} (NT 6.1+)

ISO 9660

| {{no}}

| {{no}}

| {{no}}

| {{yes}}{{efn|name=note-81|ISO 9660 Level 3 only}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Rock Ridge

| {{no}}

| {{no}}

| {{no}}

| {{yes}}{{efn|name=note-81}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Joliet ("CDFS")

| {{no}}

| {{no}}

| {{no}}

| {{yes}}{{efn|name=note-81}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

SquashFS

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

BlueStore/Cephfs

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{yes}}

| {{yes}}

class="sortbottom"

! File system

!Sparse files

!Block suballocation

! Tail packing

! Extents

! Variable file block size{{efn |name=note-41}}

! Allocate-on-flush

! Copy on write

! Trim support

OS support

{{sort-under}}

{{sticky header}}

class="wikitable sortable sticky-header sort-under" style="width: auto; text-align: center; table-layout: fixed; margin: 0;"

! File system

! DOS

! Linux

! macOS

! Windows 9x (historic)

! Windows (current)

! Classic
Mac OS

! FreeBSD

! OS/2

! BeOS

! Minix

! Solaris

! z/OS

! Android{{cite tech report |type=Documentation |title=Android Kernel File System Support |publisher=Android Open Source Project |access-date=2023-01-11 |url=https://source.android.com/docs/core/architecture/android-kernel-file-system-support}}

APFS

| {{no}}

| {{partial}} (read-only with apfs-fuse{{Cite web | url=https://github.com/sgan81/apfs-fuse |title = GitHub - sgan81/Apfs-fuse: FUSE driver for APFS (Apple File System)|website = GitHub|date = 2020-01-18}} or linux-apfs{{Cite web | url=https://github.com/eafer/linux-apfs |title = APFS module for linux, with experimental write support. This tree is just for development, please use linux-apfs-oot instead.: Linux-apfs/Linux-apfs|website = GitHub|date = 2019-12-14}})

| {{yes}}
(Since macOS Sierra)

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

BeeGFS

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

DECtape

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Level-D

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

RT-11

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Version 6 Unix file system (V6FS)

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Version 7 Unix file system (V7FS)

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

exFAT

| {{no}}

| {{yes}} (since 5.4,{{cite mailing list |mailing-list=linux-kernel |author=Namjae Jeon |title=[PATCH v12 00/13] add the latest exfat driver |url=https://lkml.org/lkml/2020/1/20/420 |date=20 January 2020 |access-date=18 December 2021 }} available as a kernel module or FUSE driver for earlier versions)

| {{yes}}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}} (available as a FUSE driver)

| {{no}}

| {{no}}

| {{no}}

| {{yes}} (available as a FUSE driver)

| {{no}}

| {{yes|With kernel 5.10}}

FAT12

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{partial}} (via dosdir, dosread, doswrite)

| {{yes}}

| {{dunno}}

| {{yes}}

FAT16 / FAT16B / FAT16X

| {{yes}} (FAT16 from DOS 3.0, FAT16B from DOS 3.31, FAT16X from DOS 7.0)

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{partial}} (via dosdir, dosread, doswrite, not FAT16X)

| {{yes}}

| {{dunno}}

| {{yes}}

FAT32 / FAT32X

| {{yes}} (from DOS 7.10)

| {{yes}}

| {{yes}}

| {{yes}} (from Windows 95 OSR2)

| {{yes}}

| {{dunno}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{yes}}

GFS

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

HPFS

| {{partial}} (with third-party drivers)

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}}

| {{yes}} (from OS/2 1.2)

| {{dunno}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

NTFS

| {{partial}} (with third-party drivers)

| {{yes}} Native since Linux Kernel 5.15 NTFS3. Older kernels may use backported NTFS3 driver or ntfs-3g{{cite web |title=NTFS3 Pull Request acceptance|url=https://lkml.iu.edu/hypermail/linux/kernel/2109.0/03731.html}}

| {{partial|Read only, write support needs Paragon NTFS or ntfs-3g}}

| {{needs}} 3rd-party drivers like Paragon NTFS for Win98, DiskInternals NTFS Reader

| {{yes}}

| {{no}}

| {{yes}} with ntfs-3g

| {{dunno}}

| {{yes}} with ntfs-3g

| {{no}}

| {{yes}} with ntfs-3g

| {{dunno}}

| {{needs|With third party tools}}

Apple HFS

| {{no}}

| {{yes}}

| {{no}} write support since Mac OS X 10.6 and no support at all since macOS 10.15

| {{no}}

| {{needs}} Paragon HFS+ {{cite web |title=Paragon HFS+ for Windows 10 |url=http://www.paragon-software.com/home/hfs-windows/download.html}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

Apple HFS Plus

| {{no}}

| {{partial}} - writing support only to unjournalled FS

| {{yes}}

| {{no}}

| {{needs}} Paragon HFS+

| {{yes}} from Mac OS 8.1

| {{no}}

| {{dunno}}

| {{yes2|with addon}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

FFS

| {{no}}

| {{dunno}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

UFS1

| {{no}}

| {{partial}} - read only

| {{yes}}

| {{no}}

| {{partial}} (with ufs2tools, read only)

| {{dunno}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{no}}

UFS2

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{partial}} (with ufs2tools, read only)

| {{dunno}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

LFS

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

EROFS

| {{no}}

| {{yes}}

| {{needs}} - since erofs-utils 1.4

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

ext

| {{no}}

| {{yes}} - until 2.1.20

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Xiafs

| {{no}}

| {{yes}} - until 2.1.20

Experimental port available to 2.6.32 and later {{cite web |title=Porting an Ancient Filesystem to Modern Linux |website=Time To Pull The Plug |url=http://time.to.pullthepl.ug/blog/2013/6/24/porting-an-ancient-filesystem-to-modern-linux/ |access-date=2016-04-22 |archive-url=https://web.archive.org/web/20170621190933/http://time.to.pullthepl.ug/blog/2013/6/24/porting-an-ancient-filesystem-to-modern-linux/ |archive-date=2017-06-21 |url-status=dead }}{{cite web |title=A port of the xiafs filesystem to modern Linux kernels. |website=Github (cdtk) |url=https://github.com/ctdk/modern-xiafs|date=2019-06-28 }}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

ext2

| {{no}}

| {{yes}}

| {{needs}} Paragon ExtFS {{cite web |title=Paragon ExtFS for Mac |url=https://www.paragon-software.com/ufsdhome/extfs-mac}} or ext2fsx

| {{partial}} (read-only, with explore2fs){{cite web|url=http://www.chrysocome.net/explore2fs|title= Explore2fs|website=chrysocome.net}}

| {{needs}} Paragon ExtFS {{cite web |title=Paragon ExtFS for Windows |url=https://www.paragon-software.com/home/extfs-windows}} or partial with Ext2 IFS{{cite web |title=FAQ |website=Ext2 Installable File System For Windows |url=http://www.fs-driver.org/faq.html}} (Provides kernel level read/write access to Ext2 and Ext3 volumes in Windows NT4, 2000, XP and Vista.) or ext2fsd{{cite web |last1=Branten |first1=Bo |url=http://www.ext2fsd.com/ |title=Ext2Fsd Project: Open source ext3/4 file system driver for Windows (2K/XP/WIN7/WIN8) |access-date=2012-07-24 |archive-url=https://web.archive.org/web/20120723091043/http://www.ext2fsd.com/ |archive-date=2012-07-23 |url-status=dead }}

| {{no}}

| {{yes}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

ext3

| {{no}}

| {{yes}}

| {{needs}} Paragon ExtFS or partial with ext2fsx (journal not updated on writing)

| {{partial}} (read-only, with explore2fs)

| {{needs}} Paragon ExtFS or partial with Ext2 IFS or ext2fsd

| {{partial}} (read only){{citation needed|date=October 2016}}

| {{yes}}{{cite web |title=FreeBSD Handbook |url=https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/filesystems-linux.html}}

| {{no}}

| {{yes2|with addon}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{yes}}

ext4

| {{no}}

| {{yes}}

| {{needs}} Paragon ExtFS

| {{no}}

| {{yes}}, with the optional WSL2; physical and VHDX virtual disks.

{{cite web |first=Scott |last=Hanselman |website=Newsletter of Wonderful Things

|title=WSL2 can now mount Linux ext4 disks directly |date=2021-11-02 |access-date=2023-10-01

|url=https://www.hanselman.com/blog/wsl2-can-now-mount-linux-ext4-disks-directly}}

{{cite web |author=Microsoft Corp. |website=Microsoft Learn |date=2023-07-17

|title=Windows technical documentation: Windows development environment: Windows Subsystem for Linux.

|url=https://learn.microsoft.com/windows/wsl/basic-commands#mount-a-disk-or-device |url-status=live

|archive-url=https://web.archive.org/web/20211227193303/https://docs.microsoft.com/en-us/windows/wsl/wsl2-mount-disk

|publication-date=2021-12-09 |archive-date=2021-12-27 |access-date=2023-10-01}}

| {{dunno}}

| {{yes}} since FreeBSD 12.0

| {{no}}

| {{yes2|with addon}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{yes}}

NOVA

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

Lustre

| {{no}}

| {{yes}}{{cite web |title=Lustre Wiki |url=http://wiki.lustre.org/index.php?title=Main_Page}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{no}}

NILFS

| {{no}}

| {{yes}} as an external kernel module

| {{dunno}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

F2FS

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

ReiserFS

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{partial}} - Read Only from 6.0 to 10.x{{Cite web |url=https://www.freebsd.org/cgi/man.cgi?query=reiserfs&apropos=0&sektion=0&manpath=FreeBSD+10.4-RELEASE&arch=default&format=html |title=FreeBSD 10.4 MAN page - reiserfs |website=www.freebsd.org |access-date=2019-08-05}} and dropped in 11.0{{Cite web |url=https://www.linuxquestions.org/questions/%2Absd-17/freebsd-11-and-reiserfs-4175595198/ |title=FreeBSD 11 and Reiserfs |date=2016-12-19 |website=www.linuxquestions.org |language=en |access-date=2019-08-05}}{{Cite web |url=https://marc.info/?l=freebsd-commits-all&m=146349940607224&w=2 |title='svn commit: r300062 - in head/sys: gnu/fs modules modules/reiserfs' - MARC |website=marc.info |access-date=2019-08-05}}

| {{dunno}}

| {{yes2|with addon}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

Reiser4

| {{no}}

| {{yes}} with a kernel patch

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

SpadFS

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

OCFS

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

OCFS2

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

XFS

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{partial}}

| {{dunno}}

| {{partial|with addon (read only)}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

JFS

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

QFS

| {{no}}

| {{partial}} - client only{{cite web |url=https://docs.oracle.com/cd/E22586_01/html/E22570/gledk.html |title=About Shared File Systems and the Linux Client - Sun QFS and Sun Storage Archive Manager 5.3 Installation Guide |access-date=2016-03-14}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{no}}

Be File System

| {{no}}

| {{partial}} - read-only

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

NSS

| {{no}}

| {{yes}} via EVMS{{efn |name=EVMS |Supported using only EVMS; not currently supported using LVM}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

NWFS

| {{partial}} (with Novell drivers)

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{yes}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

ODS-2

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

ODS-5

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

UDF

| {{no}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{no}}

VxFS

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{no}}

Fossil

| {{no}}

| {{yes}}{{efn |name=fossil-p9p |Provided in Plan 9 from User Space}}

| {{yes}}{{efn |name=fossil-p9p}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}{{efn |name=fossil-p9p}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}{{efn |name=fossil-p9p}}

| {{dunno}}

| {{no}}

ZFS

| {{no}}

| {{yes}} with FUSE{{cite web |title=ZFS Filesystem for FUSE/Linux |website=Wizy Wiki |date=30 November 2009 |url=http://www.wizy.org/wiki/ZFS_on_FUSE |archive-url=https://web.archive.org/web/20130513101601/http://www.wizy.org/wiki/ZFS_on_FUSE |archive-date=13 May 2013 |url-status=dead}} or as an external kernel module{{cite web |title=ZFS on Linux |url=http://zfsonlinux.org/ |publisher=Lawrence Livermore National Laboratory}}

| {{yes}} with Read/Write Developer Preview{{cite web |last1=Kim |first1=Arnold |date=4 October 2007 |url=http://www.macrumors.com/2007/10/04/apple-seeds-zfs-read-write-developer-preview-1-1-for-leopard/ |title=Apple Seeds ZFS Read/Write Developer Preview 1.1 for Leopard |website=Mac Rumors}}

| {{no}}

| {{yes}}{{cite web|title=OpenZFS on Windows|url=https://openzfsonwindows.org/}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

Btrfs

| {{no}}

| {{yes}}

| {{dunno}}

| {{no}}

| {{yes}} with WinBtrfs{{cite web |title=WinBtrfs |website=Github (maharmstone) |url=https://github.com/maharmstone/btrfs|date=2020-11-22 }}

| {{dunno}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

Bcachefs

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

VMFS2

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

VMFS3

| {{no}}

| {{dunno}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{no}}

| {{no}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

IBM HFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

IBM zFS

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

ReFS

| {{no}}

| {{needs}} Paragon ReFS for Linux

| {{dunno}}

| {{no}}

| {{yes}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{no}}

ISO 9660

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{no}}

Rock Ridge

| {{no}}

| {{yes}}

| {{yes}}

| {{no}}

| {{no}}

| {{no}}

| {{yes}}

| {{no}}

| {{no}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{no}}

Joliet ("CDFS")

| {{no}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{yes}}

| {{yes}}

| {{dunno}}

| {{yes}}

| {{dunno}}

| {{no}}

SquashFS

| {{no}}

| {{yes}}

| {{partial}} (There are ports of unsquashfs and mksquashfs.)

| {{no}}

| {{partial}} (There are ports of unsquashfs and mksquashfs.)

| {{no}}

| {{partial}} (There are ports of unsquashfs and mksquashfs and fusefs-port.{{cite web|url=http://www.freshports.org/sysutils/squashfs-tools/|title=squashfs-tools|website=Freshports}}{{cite web|url=http://www.freshports.org/sysutils/fusefs-squashfuse/|title=fusefs-squashfuse|website=Freshports}})

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

BlueStore/Cephfs

| {{no}}

| {{yes}}

| {{no}}{{efn|name=cephfs-fuse-driver|FUSE based driver available that can eliminate need for iSCSI gateways or SMB shares, but the physical backend store BlueStore only runs on Linux.}}

| {{no}}

| {{no}}{{efn|name=cephfs-dokany-driver|Filesystem driver "Dokany" available that can eliminate need for iSCSI gateways or SMB shares, but the physical backend store BlueStore only runs on Linux.}}

| {{no}}

| {{no}}{{efn|name=cephfs-fuse-driver}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

| {{no}}

class="sortbottom"

! File system

! DOS

! Linux

! macOS

! Windows 9x (historic)

! Windows (current)

! Classic
Mac OS

! FreeBSD

! OS/2

! BeOS

! Minix

! Solaris

! z/OS

! Android

Limits

While storage devices usually have their size expressed in powers of 10 (for instance a 1 TB Solid State Drive will contain at least 1,000,000,000,000 (1012, 10004) bytes), filesystem limits are invariably powers of 2, so usually expressed with IEC prefixes. For instance, a 1 TiB limit means 240, 10244 bytes. Approximations (rounding down) using power of 10 are also given below to clarify.

{{sort-under}}

{{sticky header}}

class="wikitable sortable sticky-header sort-under" style="width: auto; text-align: center; table-layout: fixed;"

! File system

! Maximum filename length

! Allowable characters in directory entries{{efn |name=note-25 |These are the restrictions imposed by the on-disk directory entry structures themselves. Particular Installable File System drivers may place restrictions of their own on file and directory names; operating systems may also place restrictions of their own, across all filesystems. DOS, Windows, and OS/2 allow only the following characters from the current 8-bit OEM codepage in SFNs: A-Z, 0-9, characters ! # $ % & ' ( ) - @ ^ _ ` { } ~, as well as 0x80-0xFF and 0x20 (SPACE). Specifically, lowercase letters a-z, characters " * / : < > ? \ | + , . ; = [ ], control codes 0x00-0x1F, 0x7F and in some cases also 0xE5 are not allowed.) In LFNs, any UCS-2 Unicode except \ / : ? * " > < | and NUL are allowed in file and directory names across all filesystems. Unix-like systems disallow the characters / and NUL in file and directory names across all filesystems.}}

! Maximum pathname length

! Maximum file size

! Maximum volume size{{efn |name=note-4 |For filesystems that have variable allocation unit (block/cluster) sizes, a range of size are given, indicating the maximum volume sizes for the minimum and the maximum possible allocation unit sizes of the filesystem (e.g. 512 bytes and 128 KiB (131.0 KB) for FAT — which is the cluster size range allowed by the on-disk data structures, although some Installable File System drivers and operating systems do not support cluster sizes larger than 32 KiB (32.76 KB)).}}

! Max number of files

{{rh}} class="table-rh" |AdvFS

| 255 characters

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="17592186044416" | 16 TiB (17.59 TB)

| data-sort-type="number" data-sort-value="17592186044416" | 16 TiB (17.59 TB)

| {{dunno}}

{{rh}} class="table-rh" | APFS

| 255 UTF-8 characters

| Unicode 9.0 encoded in UTF-8{{Cite web |title=Frequently Asked Questions |url=https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html}}

| {{dunno}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 8 EiB (9.223 EB)

| data-sort-type="number" data-sort-value="0" {{dunno}}

|263 {{Cite web |title=Volume Format Comparison |url=https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/VolumeFormatComparison/VolumeFormatComparison.html}}

{{rh}} class="table-rh" |Bcachefs

| 255 bytes

| Any byte except '/' and NUL

| No limit defined

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

|264

{{rh}} class="table-rh" |BeeGFS

|255 bytes

|Any byte except NUL{{efn |name=note-26}}

|No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| {{dunno}}

{{rh}} class="table-rh" |BFS

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="279172874240" | 12,288 bytes to 260 GiB (279.1 GB){{efn |name=note-3 |Varies wildly according to block size and fragmentation of block allocation groups.}}

| data-sort-type="number" data-sort-value="2305843009213693952" | 256 PiB (288.2 PB) to 2 EiB (2.305 EB)

| Unlimited

{{rh}} class="table-rh" |BlueStore/Cephfs

| 255 characters

| any byte, except null, "/"

| No limit defined

| Max. 264 bytes, 1 TiB (1.099 TB) by default {{cite web |title=CephFS Maximum File Sizes and Performance |url=https://docs.ceph.com/en/mimic/cephfs/administration/}}

| Not limited

| Not limited, default is 100,000 files per directory {{cite web |title=CephFS Directory Fragmentation |url=https://docs.ceph.com/en/latest/cephfs/dirfrags/}}

{{rh}} class="table-rh" |Btrfs

| 255 bytes

| Any byte except '/' and NUL

| No limit defined

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

|264

{{rh}} class="table-rh" | CBM DOS

| 16 bytes

| Any byte except NUL

| 0 (no directory hierarchy)

| data-sort-type="number" data-sort-value="16777216" | 16 MiB (16.77 MB)

| data-sort-type="number" data-sort-value="16777216" | 16 MiB (16.77 MB)

| {{dunno}}

{{rh}} class="table-rh" | CP/M file system

| 8.3

| ASCII except for < > . , ; : = ? * [ ]

| No directory hierarchy (but accessibility of files depends on user areas via USER command since CP/M 2.2)

| data-sort-type="number" data-sort-value="0" | 32 MiB (33.55 MB)

| data-sort-type="number" data-sort-value="0" | 512 MiB (536.8 MB)

| {{dunno}}

{{rh}} class="table-rh" | DECtape

| 6.3

| A–Z, 0–9

| DTxN:FILNAM.EXT = 15

| data-sort-type="number" data-sort-value="369280" | 369,280 bytes
(577{{times}}640)

| data-sort-type="number" data-sort-value="369280" | 369,920 bytes
(578{{times}}640)

| {{dunno}}

{{rh}} class="table-rh" | Disk Operating System (GEC DOS)

| {{dunno}}

| {{dunno}}

| {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}} at least 131,072 bytes

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" | Elektronika BK tape format

| 16 bytes

| {{dunno}}

| No directory hierarchy

| data-sort-type="number" data-sort-value="65536" | 64 KiB (65.53 KB)

| data-sort-type="number" data-sort-value="800000" | Not limited. Approx. 800 KiB (819.2 KB) (one side) for 90 min cassette

| {{dunno}}

{{rh}} class="table-rh" | EROFS

| 255 bytes

| Any byte except NUL, /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="1152921504606846976" | 1 EiB (1.152 EB)

| 264

{{rh}} class="table-rh" | exFAT

| 255 UTF-16 characters

| Unicode except for control codes 0x0000 - 0x001F or " * / : < > ? \ | {{cite web | url=https://www.ntfs.com/exfat-filename-dentry.htm | title=ExFAT: File Name Directory Entry }}

| 32,760 characters with each path component no more than 255 characters{{cite web |date=2021-01-07 |title=File System Functionality Comparison |url=https://docs.microsoft.com/en-us/windows/win32/fileio/filesystem-functionality-comparison?redirectedfrom=MSDN#limits |access-date=2022-08-14 |website=Microsoft Docs |publisher=Microsoft}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="75557863725914323419136" | 64 ZiB (75.55 ZB) (276 bytes)

| {{dunno}}

{{rh}} class="table-rh" |ext

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2147483648" | 2 GiB (2.147 GB)

| data-sort-type="number" data-sort-value="2147483648" | 2 GiB (2.147 GB)

| {{dunno}}

{{rh}} class="table-rh" |ext2

| 255 bytes

| Any byte except NUL, /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2199023255552" | 16 GiB (17.17 GB) to 2 TiB (2.199 TB){{efn |name=note-4}}

| data-sort-type="number" data-sort-value="35184372088832" | 2 TiB (2.199 TB) to 32 TiB (35.18 TB)

| {{dunno}}

{{rh}} class="table-rh" |ext3

| 255 bytes

| Any byte except NUL, /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2199023255552" | 16 GiB (17.17 GB) to 2 TiB (2.199 TB){{efn |name=note-4}}

| data-sort-type="number" data-sort-value="35184372088832" | 2 TiB (2.199 TB) to 32 TiB (35.18 TB)

| {{dunno}}

{{rh}} class="table-rh" |ext4

| 255 bytes{{cite web |author=Vimal A.R |date=16 July 2016 |title=Max file-name length in an EXT4 file system. |url=https://arvimal.blog/2016/07/21/max-file-name-length-in-an-ext4-file-system/ |archive-url=https://web.archive.org/web/20210228121426/https://arvimal.blog/2016/07/21/max-file-name-length-in-an-ext4-file-system/ |archive-date=28 February 2021 |url-status=dead |website=arvimal.blog}}

| Any byte except NUL, /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="17592186044416" | 16 GiB (17.17 GB) to 16 TiB (17.59 TB){{efn |name=note-4}}{{cite web |date=9 June 2008 |title=Interviews/EricSandeen |url=http://fedoraproject.org/wiki/Interviews/EricSandeen |website=Fedora Project Wiki}}

| data-sort-type="number" data-sort-value="1152921504606846976" | 1 EiB (1.152 EB)

|232 (static inode limit specified at creation)

{{rh}} class="table-rh" | F2FS

| 255 bytes

| Any byte except NUL, /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="4329690886144" | 4,228,213,756 KiB (4.329 TB)

| data-sort-type="number" data-sort-value="17592186044416" | 16 TiB (17.59 TB)

| {{dunno}}

{{rh}} class="table-rh" | FAT (8-bit)

| 6.3 (binary files) / 9 characters (ASCII files)

| ASCII (0x00 and 0xFF not allowed in first character)

| No directory hierarchy

| data-sort-type="number" data-sort-value="0" {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" | FAT12/FAT16

| 8.3 (255 UCS-2 characters with LFN){{efn |name=note-24 |Depends on whether the FAT12, FAT16, and FAT32 implementation has support for LFNs. Where it does not, as in OS/2, DOS, Windows 95, Windows 98 in DOS-only mode and the Linux "msdos" driver, file names are limited to 8.3 format of 8-bit OEM characters (space padded in both the basename and extension parts) and may not contain NUL (end-of-directory marker) or character 5 (replacement for character 229 which itself is used as deleted-file marker). Short names also must not contain lowercase letters. A few special device names (CON, NUL, AUX, PRN, LPT1, COM1, etc.) should be avoided, as some operating systems (notably DOS, OS/2 and Windows) reserve them.}}

| SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | {{efn |name=note-25}}{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="33554432" | 32 MiB (33.55 MB) (4 GiB (4.294 GB)){{efn |name="note-fsize"|On-disk structures would support up to 4 GiB (4.294 GB), but practical file size is limited by volume size.}}

| data-sort-type="number" data-sort-value="33554432" | 1 MiB (1.048 MB) to 32 MiB (33.55 MB)

| {{dunno}}

{{rh}} class="table-rh" | FAT16B/FAT16X

| 8.3 (255 UCS-2 characters with LFN){{efn |name=note-24}}

| SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | {{efn |name=note-25}}{{efn |name=note-24}}{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2147483648" | 2 (4) GiB{{efn |name="note-fsize"}} (2.147 GB)

| data-sort-type="number" data-sort-value="2147483648" | 16 MiB (16.77 MB) to 2 (4) GiB (2.147 GB)

| {{dunno}}

{{rh}} class="table-rh" | FAT32/FAT32X

| 8.3 (255 UCS-2 characters with LFN){{efn |name=note-24}}

| SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | {{efn |name=note-25}}{{efn |name=note-24}}{{efn |name=note-26}}

| 32,760 characters with each path component no more than 255 characters

| data-sort-type="number" data-sort-value="4294967295" | 4 GiB (4.294 GB)

| data-sort-type="number" data-sort-value="17592186044415" | 512 MiB (536.8 MB) to 16 TiB (17.59 TB){{efn |While FAT32 partitions this large work fine once created, some software won't allow creation of FAT32 partitions larger than 32 GiB (34.35 GB). This includes, notoriously, the Windows XP installation program and the Disk Management console in Windows 2000, XP, 2003 and Vista. Use FDISK from a Windows ME Emergency Boot Disk to avoid.{{cite web |title= Limitations of the FAT32 File System in Windows XP |publisher=Microsoft |url=http://support.microsoft.com/kb/314463 |archive-url=https://web.archive.org/web/20140330033436/http://support.microsoft.com/kb/314463 |archive-date=2014-03-30 |url-status=dead}}}}

| {{dunno}}

{{rh}} class="table-rh" | FATX

| 42 bytes{{efn |name=note-24}}

| ASCII.

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2147483648" | 2 GiB (2.147 GB)

| data-sort-type="number" data-sort-value="2147483648" | 16 MiB (16.77 MB) to 2 GiB (2.147 GB)

| {{dunno}}

{{rh}} class="table-rh" |FFS

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="4294967296" | 4 GiB (4.294 GB)

| data-sort-type="number" data-sort-value="281474976710656" | 256 TiB (281.4 TB)

| {{dunno}}

{{rh}} class="table-rh" | Fossil

| {{dunno}}

| {{dunno}}

| {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" | GEC DOS filing system extended

| 8 bytes

| A–Z, 0–9. Period was directory separator

| {{dunno}} No limit defined (workaround for OS limit)

| data-sort-type="number" data-sort-value="0" {{dunno}} at least 131,072 bytes

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" | GEMDOS

| 8.3

| A-Z, a-z, 0-9 ! @ # $ % ^ & ( ) + - = ~ ` ; ' " , < > | [ ] ( ) _{{cite web |title=GEMDOS Overview |url=http://cd.textfiles.com/ataricompendium/BOOK/HTML/CHAP2.HTM}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" |GFS2

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 100 TiB (109.95 TB) to 8 EiB (9.223 EB){{efn |name=note-83 |Depends on CPU arch. For 32bit kernels the max is 16 TiB (17.59 TB). {{cite web|url=https://access.redhat.com/solutions/1532|title=What are the file and file system size limitations for Red Hat Enterprise Linux?|website=Red Hat|date=2023-03-21}}}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 100 TiB (109.95 TB) to 8 EiB (9.223 EB){{efn |name=note-84 |Depends on CPU arch. For 32bit kernels the max is 16 TiB (17.59 TB). {{cite web|url=https://access.redhat.com/solutions/1532|title=What are the file and file system size limitations for Red Hat Enterprise Linux?|website=Red Hat|date=2023-03-21}}}}

| {{dunno}}

{{rh}} class="table-rh" |GFS

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 2 TiB (2.199 TB) to 8 EiB (9.223 EB){{efn |name=note-63 |Depends on kernel version and arch. For 2.4 kernels the max is 2 TiB (2.199 TB). For 32-bit 2.6 kernels it is 16 TiB (17.59 TB). For 64-bit 2.6 kernels it is 8 EiB (9.223 EB).}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 2 TiB (2.199 TB) to 8 EiB (9.223 EB){{efn |name=note-63}}

| {{dunno}}

{{rh}} class="table-rh" |GPFS

| 255 UTF-8 codepoints

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="0" | 9 EiB (10.37 EB)

| data-sort-type="number" data-sort-value="633825300114114700748351602688" | 524,288 YiB (299 bytes)

| {{dunno}}

{{rh}} class="table-rh" |HAMMER

| 1023 bytes{{cite web |author=Matthew Dillon |title=HAMMER2 Design Document |url=http://apollo.backplane.com/DFlyMisc/hammer2.txt |quote=we can allow filenames up to 1023 bytes long}}

| Any byte except NUL{{efn |name=note-26}}

| {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| data-sort-type="number" data-sort-value="1152921504606846976" | 1 EiB (1.152 EB){{cite web |author=Matthew Dillon |date=June 21, 2008 |title=The HAMMER Filesystem |url=http://www.dragonflybsd.org/hammer/hammer.pdf}}

| {{dunno}}

{{rh}} class="table-rh" | HFS

| 31 bytes

| Any byte except :

| Unlimited

| data-sort-type="number" data-sort-value="2147483648" | 2 GiB (2.147 GB)

| data-sort-type="number" data-sort-value="2199023255552" | 2 TiB (2.199 TB)

| {{dunno}}

{{rh}} class="table-rh" |HFS Plus

| 255 UTF-16 characters{{efn |name=note-1 |The "classic" Mac OS provides two sets of functions to retrieve file names from an HFS Plus volume, one of them returning the full Unicode names, the other shortened names fitting in the older 31 byte limit to accommodate older applications.}}

| Any valid Unicode{{efn |name=note-26}}{{efn |name=note-2 |HFS Plus mandates support for an escape sequence to allow arbitrary Unicode. Users of older software might see the escape sequences instead of the desired characters.}}

| Unlimited

| data-sort-type="number" data-sort-value="9223372036854775808" | slightly less than 8 EiB (9.223 EB)

| data-sort-type="number" data-sort-value="9223372036854775808" | slightly less than 8 EiB (9.223 EB){{cite web |date=July 26, 2016 |title=Mac OS X: Mac OS Extended format (HFS Plus) volume and file limits |url=https://support.apple.com/en-us/HT201711 |url-status=dead |archive-url=https://web.archive.org/web/20190408213105/https://support.apple.com/en-us/HT201711 |archive-date=2019-04-08 |website=support.apple.com}}{{cite web |date=February 20, 2012 |title=Mac OS 8, 9: Mac OS Extended Format - Volume and File Limits |url=https://support.apple.com/kb/TA21924 |website=support.apple.com}}

| {{dunno}}

{{rh}} class="table-rh" |High Sierra Format

| {{dunno}}

| {{dunno}}

| {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" | HPFS

| 255 bytes

| Any byte except NUL{{efn |name=note-27 |The "." and ".." directory entries in HPFS that are seen by applications programs are a partial fiction created by the Installable File System drivers. The on-disk data structure for a directory does not contain entries by those names, but instead contains a special "start" entry. Whilst on-disk directory entries by those names are not physically prohibited, they cannot be created in normal operation, and a directory containing such entries is corrupt.}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2147483648" | 2 GiB (2.147 GB)

| data-sort-type="number" data-sort-value="2199023255552" | 2 TiB (2.199 TB){{efn |name=note-13 |This is the limit of the on-disk structures. The HPFS Installable File System driver for OS/2 uses the top 5 bits of the volume sector number for its own use, limiting the volume size that it can handle to 64 GiB (68.71 GB).}}

| {{dunno}}

{{rh}} class="table-rh" | IBM SFS

| 8.8

| {{dunno}}

| {{dunno}}

| data-sort-type="number" data-sort-value="0" | Non-hierarchical{{cite web |date=2015-06-03 |title=SFS file system |url=https://www.ibm.com/docs/en/cobol-aix/5.1?topic=systems-sfs-file-system |url-status=live |archive-url=https://web.archive.org/web/20220913063022/https://www.ibm.com/docs/en/cobol-aix/5.1?topic=systems-sfs-file-system |archive-date=2022-09-13 |access-date=2022-09-13 |website=www.ibm.com}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" |ISO 9660:1988

| Level 1: 8.3,
Level 2 & 3: ~ 180

| Depends on Level{{efn |ISO 9660#Restrictions}}

| ~ 180 bytes?

| data-sort-type="number" data-sort-value="8796093022208" | 4 GiB (4.294 GB) (Level 1 & 2) to 8 TiB (8.796 TB) (Level 3){{efn |Through the use of multi-extents, a file can consist of multiple segments, each up to 4 GiB (4.294 GB) in size. See ISO 9660#The 2 GiB (2.147 GB) (or 4 GiB (4.294 GB) depending on implementation) file size limit}}

| data-sort-type="number" data-sort-value="8796093022208" | 8 TiB (8.796 TB){{efn |Assuming the typical 2048 Byte sector size. The volume size is specified as a 32 bit value identifying the number of sectors on the volume.}}

| {{dunno}}

{{rh}} class="table-rh" |ISO 9660:1999

| {{dunno}}

| {{dunno}}

| {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" |JFS

| 255 bytes

| Any Unicode except NUL

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="4503599627370496" | 4 PiB (4.503 PB)

| data-sort-type="number" data-sort-value="36028797018963968" | 32 PiB (36.02 PB)

| {{dunno}}

{{rh}} class="table-rh" |JFS1

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 8 EiB (9.223 EB)

| data-sort-type="number" data-sort-value="4503599627370496" | 512 TiB (562.9 TB) to 4 PiB (4.503 PB)

| {{dunno}}

{{rh}} class="table-rh" |Joliet ("CDFS")

| 64 characters

| All UCS-2 code except *, /, \, :, ;, and ?{{cite web |date=22 May 1995 |title=Joliet Specification |url=http://bmrc.berkeley.edu/people/chaffee/jolspec.html |archive-url=https://web.archive.org/web/20090414104421/http://bmrc.berkeley.edu/people/chaffee/jolspec.html |archive-date=14 April 2009 |url-status=dead}}

| {{dunno}}

| data-sort-type="number" data-sort-value="8796093022208" | same as ISO 9660:1988

| data-sort-type="number" data-sort-value="8796093022208" | same as ISO 9660:1988

| {{dunno}}

{{rh}} class="table-rh" | Level-D

| 6.3

| A–Z, 0–9

| DEVICE:FILNAM.EXT[PROJCT,PROGRM] = 7 + 10 + 15 = 32; + 5*7 for SFDs = 67

| data-sort-type="number" data-sort-value="206158430208" | 34,359,738,368 words (235); 206,158,430,208 SIXBIT bytes

| data-sort-type="number" data-sort-value="11392000000" | Approx 12 GiB (12.88 GB) (64{{times}}178 MiB (186.6 MB))

| {{dunno}}

{{rh}} class="table-rh" |Lustre

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB) on ZFS

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| {{dunno}}

{{rh}} class="table-rh" | MFS

| 255 bytes

| Any byte except :

| No path (flat filesystem)

| data-sort-type="number" data-sort-value="268435456" | 256 MiB (268.4 MB)

| data-sort-type="number" data-sort-value="268435456" | 256 MiB (268.4 MB)

| {{dunno}}

{{rh}} class="table-rh" | MicroDOS file system

| 14 bytes

| {{dunno}}

| {{dunno}}

| data-sort-type="number" data-sort-value="16777216" | 16 MiB (16.77 MB)

| data-sort-type="number" data-sort-value="33554432" | 32 MiB (33.55 MB)

| {{dunno}}

{{rh}} class="table-rh" |Minix V1 FS

| 14 or 30 bytes, set at filesystem creation time

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="268966912" | 256.5 MiB (268.9 MB) {{efn |name=note-file-size-vs-filesystem-size |Sparse files can be larger than the file system size, even though they can't contain more data.}}

| data-sort-type="number" data-sort-value="67108864" | 64 MiB (67.10 MB)

| {{dunno}}

{{rh}} class="table-rh" |Minix V2 FS

| 14 or 30 bytes, set at filesystem creation time

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2147483647" | 2 GiB (2.147 GB) {{efn |name=note-file-size-vs-filesystem-size}}

| data-sort-type="number" data-sort-value="1073741824" | 1 GiB (1.073 GB)

| {{dunno}}

{{rh}} class="table-rh" |Minix V3 FS

| 60 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="2147483647" | 2 GiB (2.147 GB)

| data-sort-type="number" data-sort-value="4294967296" | 4 GiB (4.294 GB)

| {{dunno}}

{{rh}} class="table-rh" |NILFS

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 8 EiB (9.223 EB)

| data-sort-type="number" data-sort-value="9223372036854775808" | 8 EiB (9.223 EB)

| {{dunno}}

{{rh}} class="table-rh" |NOVA

| 255 bytes

| Any byte except NUL, /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| {{dunno}}

{{rh}} class="table-rh" |NSS

| 256 characters

| Depends on namespace used{{efn |name=note-28 |NSS allows files to have multiple names, in separate namespaces.}}

| Only limited by client

| data-sort-type="number" data-sort-value="8796093022208" | 8 TiB (8.796 TB)

| data-sort-type="number" data-sort-value="8796093022208" | 8 TiB (8.796 TB)

| {{dunno}}

{{rh}} class="table-rh" | NTFS

| 255 characters

| In Win32 namespace: any UTF-16 code unit (case-insensitive) except /\:*"?<>| as well as NUL

In POSIX namespace: any UTF-16 code unit (case-sensitive) except / as well as NUL{{cite web |last1=Russon |first1=Richard |last2=Fledel |first2=Yuval |title=NTFS Documentation |url=http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf}}

| 32,767 characters with each path component (directory or filename) up to 255 characters long{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 TiB (17.59 TB) to 8 PiB (9.007 PB){{efn |name=note-55 |This is the limit of the on-disk structures. The NTFS driver for Windows NT limits the volume size that it can handle to 256 TiB (281.4 TB) and the file size to 16 TiB (17.59 TB) respectively; in Windows 10 version 1709, the limit is 8 PiB (9.007 PB) when using 2 MiB (2.097 MB) cluster size.}}{{Cite web |date=2022-05-26 |title=NTFS overview |url=https://docs.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview |url-status=live |archive-url=https://web.archive.org/web/20220526213037/https://docs.microsoft.com/en-us/windows-server/storage/file-server/ntfs-overview |archive-date=2022-05-26 |access-date=2022-06-05 |website=Microsoft Docs}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 TiB (17.59 TB) to 8 PiB (9.007 PB){{efn |name=note-55}}

| 232

{{rh}} class="table-rh" |NWFS

| 80 bytes{{efn |name=note-52 |Some namespaces had lower name length limits. "LONG" had an 80-byte limit, "NWFS" 80 bytes, "NFS" 40 bytes and "DOS" imposed 8.3 filename.}}

| Depends on namespace used{{efn |name=note-28}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="4294967296" | 4 GiB (4.294 GB)

| data-sort-type="number" data-sort-value="1099511627776" | 1 TiB (1.099 TB)

| {{dunno}}

{{rh}} class="table-rh" |OCFS

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="8796093022208" | 8 TiB (8.796 TB)

| data-sort-type="number" data-sort-value="8796093022208" | 8 TiB (8.796 TB)

| {{dunno}}

{{rh}} class="table-rh" |OCFS2

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="4503599627370496" | 4 PiB (4.503 PB)

| data-sort-type="number" data-sort-value="4503599627370496" | 4 PiB (4.503 PB)

| {{dunno}}

{{rh}} class="table-rh" |ODS-5

| 236 bytes{{efn |name=note-15 |Maximum combined filename/filetype length is 236 bytes; each component has an individual maximum length of 255 bytes.}}

| {{dunno}}

| 4,096 bytes{{efn |name=note-16 |Maximum pathname length is 4,096 bytes, but quoted limits on individual components add up to 1,664 bytes.}}

| data-sort-type="number" data-sort-value="1099511627776" | 1 TiB (1.099 TB)

| data-sort-type="number" data-sort-value="1099511627776" | 1 TiB (1.099 TB)

| {{dunno}}

{{rh}} class="table-rh" |QFS

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB){{efn |name=note-72 |QFS allows files to exceed the size of disk when used with its integrated HSM, as only part of the file need reside on disk at any one time.}}

| data-sort-type="number" data-sort-value="4503599627370496" | 4 PiB (4.503 PB){{efn |name=note-72}}

| {{dunno}}

{{rh}} class="table-rh" |ReFS

| 255 UTF-16 characters{{cite web |author=Steven Sinofsky |author-link=Steven Sinofsky |date=January 16, 2012 |title=Building the next generation file system for Windows: ReFS |url=https://blogs.msdn.microsoft.com/b8/2012/01/16/building-the-next-generation-file-system-for-windows-refs/}}

| In Win32 namespace: any UTF-16 code unit (case-insensitive) except /\:*"?<>| as well as NUL

In POSIX namespace: any UTF-16 code unit (case-sensitive) except / as well as NUL{{Cite web |last=Amigo |date=2015-04-02 |title=Invalid Characters in File Names |url=https://amigotechnotes.wordpress.com/2015/04/02/invalid-characters-in-file-names/ |access-date=2020-10-20 |website=Amigo's Technical Notes |language=en}}

| 32,767 characters with each path component (directory or filename) up to 255 characters long

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB){{Cite web |title=Resilient File System (ReFS) overview |url=https://docs.microsoft.com/en-us/windows-server/storage/refs/refs-overview |access-date=2017-11-07 |website=Microsoft Docs |language=en-us}}

| data-sort-type="number" data-sort-value="1208925819614629174706176" | 1 YiB (1.208 YB)

| {{dunno}}

{{rh}} class="table-rh" |ReiserFS

| 4,032 bytes/255 characters

| Any byte except NUL or '/'{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="8796093022208" | 8 TiB (8.796 TB){{efn |ReiserFS has a theoretical maximum file size of 1 EiB (1.152 EB), but "page cache limits this to 8 Ti on architectures with 32 bit int"{{cite web |title=FAQ |date=15 October 2003 |website=namesys |url=http://www.namesys.com/faq.html#reiserfsspecs |archive-url=https://web.archive.org/web/20060719110322/http://www.namesys.com/faq.html#reiserfsspecs |archive-date=19 July 2006}}}} (v3.6), 4 GiB (4.294 GB) (v3.5)

| data-sort-type="number" data-sort-value="17592186044416" | 16 TiB (17.59 TB)

| {{dunno}}

{{rh}} class="table-rh" |Reiser4

| 3,976 bytes

| Any byte except / and NUL

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="8796093022208" | 8 TiB (8.796 TB) on x86

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" |Rock Ridge

| 255 bytes

| Any byte except NUL or /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="8796093022208" | same as ISO 9660:1988

| data-sort-type="number" data-sort-value="8796093022208" | same as ISO 9660:1988

| {{dunno}}

{{rh}} class="table-rh" | RT-11

| 6.3

| A–Z, 0–9, $

| 0 (no directory hierarchy)

| data-sort-type="number" data-sort-value="33554432" | 33,554,432 bytes
(65536{{times}}512)

| data-sort-type="number" data-sort-value="33554432" | 33,554,432 bytes

| {{dunno}}

{{rh}} class="table-rh" |SquashFS

| 256 bytes

| {{dunno}}

| No limit defined

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| {{dunno}}

{{rh}} class="table-rh" |UDF

| 255 bytes

| Any Unicode except NUL

| 1,023 bytes{{efn |name=note-43 |This restriction might be lifted in newer versions.}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="17592186044415" | 512 MiB (536.8 MB) to 16 TiB (17.59 TB)

| {{dunno}}

{{rh}} class="table-rh" |UFS1

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="281474976710656" | 16 GiB (17.17 GB) to 256 TiB (281.4 TB)

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| Subdirectory per directory is 32,767{{cite web |title=Maximum Number of UFS Subdirectories |url=https://docs.oracle.com/cd/E19120-01/open.solaris/819-2723/fsfilesysappx-5/index.html |access-date=2019-02-12 |publisher=Oracle}}

{{rh}} class="table-rh" |UFS2

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="36028797018963968" | 512 GiB (549.7 GB) to 32 PiB (36.02 PB)

| data-sort-type="number" data-sort-value="649037107316853896642560" | 512 ZiB (604.4 ZB){{cite web |title=Frequently Asked Questions for FreeBSD 9.X and 10.X |url=https://www.freebsd.org/doc/faq/book.html |access-date=2016-03-20 |publisher=FreeBSD Documentation Project |quote=If there was not a fsck(8) memory limit the maximum filesystem size would be 2 ^ 64 (blocks) * 32 KiB (32.76 KB) => 16 Exa * 32 KiB (32.76 KB) => 512 ZettaBytes.}} (279 bytes)

| Subdirectory per directory is 32,767

{{rh}} class="table-rh" |UniFS

| No limit defined (depends on client)

| {{dunno}}

| No limit defined (depends on client)

| Available cache space at time of write (depends on platform)

| No limit defined

| No limit defined

{{rh}} class="table-rh" |VaultFS

| configurable (1024 default)

| Any byte except NUL

| No limit defined

| No limit defined

| No limit defined

| No limit defined

{{rh}} class="table-rh" | Version 6 Unix file system (V6FS)

| 14 bytes

| Any byte except NUL and /{{efn |name=note-26 |In these filesystems the directory entries named "." and ".." have special status. Directory entries with these names are not prohibited, and indeed exist as normal directory entries in the on-disk data structures. However, they are mandatory directory entries, with mandatory values, that are automatically created in each directory when it is created; and directories without them are considered corrupt.}}

| No limit defined{{efn |name=note-12 |The on-disk structures have no inherent limit. Particular Installable File System drivers and operating systems may impose limits of their own, however. Limited by its Current Directory Structure (CDS), DOS does not support more than 32 directory levels (except for DR DOS 3.31-6.0) or full pathnames longer than 66 bytes for FAT, or 255 characters for LFNs. Windows NT does not support full pathnames longer than 32,767 bytes for NTFS. Older POSIX APIs which rely on the PATH_MAX constant have a limit of 4,096 bytes on Linux but this can be worked around. Linux itself has no hard path length limits.{{cite web|url=https://eklitzke.org/path-max-is-tricky|title=PATH_MAX Is Tricky|website=Evan Klitzke’s web log}}{{cite web|url=https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html|title=PATH_MAX simply isn't|website=Insane Coding|date=2007-11-03}}}}

| data-sort-type="number" data-sort-value="16777216" | 16 MiB (16.77 MB){{efn |name=note-57 |The file size in the inode is 1 8-bit byte followed by 1 16-bit word, for 24 bits. The actual maximum was 8,847,360 bytes, with 7 singly-indirect blocks and 1 doubly-indirect block; PWB/UNIX 1.0's variant had 8 singly-indirect blocks, making the maximum 524,288 bytes or half a MB.}}

| data-sort-type="number" data-sort-value="33554432" | 32 MiB (33.55 MB)

| {{dunno}}

{{rh}} class="table-rh" | Version 7 Unix file system (V7FS)

| 14 bytes

| Any byte except NUL or /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="1073741824" | 1 GiB (1.073 GB){{efn |name=note-58 |The actual maximum was 1,082,201,088 bytes, with 10 direct blocks, 1 singly-indirect block, 1 doubly-indirect block, and 1 triply-indirect block. The 4.0BSD and 4.1BSD versions, and the System V version, used 1,024-byte blocks rather than 512-byte blocks, making the maximum 4,311,812,608 bytes or approximately 4 GiB (4.294 GB).}}

| data-sort-type="number" data-sort-value="2199023255552" | 2 TiB (2.199 TB)

| {{dunno}}

{{rh}} class="table-rh" |VMFS2

| 128

| Any byte except NUL or /{{efn |name=note-26}}

| 2,048

| data-sort-type="number" data-sort-value="4398046511104" | 4 TiB (4.398 TB){{efn |name=note-74 |Maximum file size on a VMFS volume depends on the block size for that VMFS volume. The figures here are obtained by using the maximum block size.}}

| data-sort-type="number" data-sort-value="70368744177664" | 64 TiB (70.36 TB)

| {{dunno}}

{{rh}} class="table-rh" |VMFS3

| 128

| Any byte except NUL or /{{efn |name=note-26}}

| 2,048

| data-sort-type="number" data-sort-value="2199023255552" | 2 TiB (2.199 TB){{efn |name=note-74}}

| data-sort-type="number" data-sort-value="70368744177664" | 64 TiB (70.36 TB)

| {{dunno}}

{{rh}} class="table-rh" |VxFS

| 255 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="0" {{dunno}}

| {{dunno}}

{{rh}} class="table-rh" |XFS

| 255 bytes{{efn |Note that the filename can be much longer XFS#Extended attributes}}

| Any byte except NUL or /{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 8 EiB (9.223 EB){{efn |name=note-9 |XFS has a limitation under Linux 2.4 of 64 TiB (70.36 TB) file size, but Linux 2.4 only supports a maximum block size of 2 TiB (2.199 TB). This limitation is not present under IRIX.}}

| data-sort-type="number" data-sort-value="9223372036854775808" | 8 EiB (9.223 EB){{efn |name=note-9}}

| 264

{{rh}} class="table-rh" |Xiafs

| 248 bytes

| Any byte except NUL{{efn |name=note-26}}

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="67108864" | 64 MiB (67.10 MB)

| data-sort-type="number" data-sort-value="2147483648" | 2 GiB (2.147 GB)

| {{dunno}}

{{rh}} class="table-rh" |ZFS

| 1023 bytes

| Any Unicode except NUL

| No limit defined{{efn |name=note-12}}

| data-sort-type="number" data-sort-value="18446744073709551616" | 16 EiB (18.44 EB)

| data-sort-type="number" data-sort-value="340282366920938463463374607431768211456" | 281,474,976,710,656 YiB (2128 bytes)

|2128

class="sortbottom"

! File system

! Maximum filename length

! Allowable characters in directory entries{{efn |name=note-25}}

! Maximum pathname length

! Maximum file size

! Maximum volume size{{efn |name=note-4}}

! Max number of files

See also

Notes

{{notelist|30em}}

References

{{reflist|30em}}