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

General information

File systemCreatorYear of introductionOriginal operating system
DECtapeDEC1964PDP-6 Monitor
OS/3x0 FSIBM1964OS/360
Level-DDEC1968TOPS-10
George 3ICT (later ICL)1968George 3
Version 6 Unix file system (V6FS)Bell Labs1972Version 6 Unix
RT-11 file systemDEC1973RT-11
Disk Operating System (GEC DOS)GEC1973Core Operating System
CP/M file systemDigital Research (Gary Kildall)1974CP/M
Files-11 ODS-1DEC1975RSX-11
GEC DOS filing system extendedGEC1977OS4000
FAT (8-bit)Microsoft (Marc McDonald) for NCR1977Microsoft Standalone Disk BASIC-80 (later Microsoft Standalone Disk BASIC-86)
DOS 3.xApple1978Apple DOS
UCSD p-SystemUCSD1978UCSD p-System
CBM DOSCommodore1978Commodore BASIC
Atari DOSAtari1979Atari 8-bit
Version 7 Unix file system (V7FS)Bell Labs1979Version 7 Unix
Files-11 ODS-2DEC1979OpenVMS
FAT12Seattle Computer Products (Tim Paterson)1980QDOS/86-DOS (later IBM PC DOS 1.0)
ProDOSApple1980Apple SOS (later ProDOS 8)
DFSAcorn Computers Ltd1982Acorn BBC Micro MOS
ADFSAcorn Computers Ltd1983Acorn Electron (later Arthur/RISC OS)
FFSKirk McKusick19834.2BSD
FAT16IBM, Microsoft1984PC DOS 3.0, MS-DOS 3.0
MFSApple1984System 1
Elektronika BK tape formatNPO "Scientific centre" (now Sitronics)1985Vilnius Basic, BK monitor program
HFSApple1985System 2.1
Amiga OFS[1]Metacomco for Commodore1985Amiga OS
GEMDOSDigital Research1985Atari TOS
NWFSNovell1985NetWare 286
High SierraEcma International1986MSCDEX for MS-DOS 3.1/3.2
FAT16BCompaq1987Compaq MS-DOS 3.31
Minix V1 FSAndrew S. Tanenbaum1987MINIX 1.0
Amiga FFSCommodore1988Amiga OS 1.3
ISO 9660:1988Ecma International, ISO1988MS-DOS, "classic" Mac OS, and AmigaOS
HPFSIBM & Microsoft1989OS/2 1.2
ISO 9660: Rock Ridge extensionIEEE1990c.1990Unix
JFS1IBM1990AIX
VxFSVERITAS1991SVR4.0
extRémy Card1992Linux
AdvFSDEC1993Digital Unix
NTFSMicrosoft (Gary Kimura, Tom Miller)1993Windows NT 3.1
LFSMargo Seltzer1993Berkeley Sprite
ext2Rémy Card1993Linux, Hurd
XiafsQ. Frank Xia1993Linux
UFS1Kirk McKusick19944.4BSD
XFSSGI1994IRIX
HFSIBM1994MVS/ESA (now z/OS)
FAT16XMicrosoft1995MS-DOS 7.0 / Windows 95
ISO 9660: Joliet extensionMicrosoft1995Microsoft Windows, Linux, "classic" Mac OS, and FreeBSD
UDFISO/ECMA/OSTA1995—N/a
FAT32, FAT32XMicrosoft1996MS-DOS 7.1 / Windows 95 OSR2
QFSSun Microsystems1996Solaris
GPFSIBM1996AIX, Linux
Be File SystemBe Inc. (D. Giampaolo, Cyril Meurillon)1996BeOS
Minix V2 FSAndrew S. Tanenbaum1997MINIX 2.0
HFS PlusApple1998Mac OS 8.1
NSSNovell1998NetWare 5
PolyServe File System (PSFS)PolyServe1998Windows, Linux
Files-11 ODS-5DEC1998OpenVMS V7.2
WAFLNetApp1998Data ONTAP
ext3Stephen Tweedie1999Linux
ISO 9660:1999Ecma International, ISO1999Microsoft Windows, Linux, "classic" Mac OS, FreeBSD, and AmigaOS
JFSIBM1999OS/2 Warp Server for e-business
GFSSistina (Red Hat)2000Linux
ReiserFSNamesys2001Linux
zFSIBM2001z/OS (backported to OS/390)
FATXMicrosoft2002Xbox
UFS2Kirk McKusick2002FreeBSD 5.0
OCFSOracle Corporation2002Linux
SquashFSPhillip Lougher, Robert Lougher2002Linux
VMFS2VMware2002VMware ESX Server 2.0
LustreCluster File Systems2002Linux
FossilBell Labs2003Plan 9 version 4
Google File SystemGoogle2003Linux
ZFSSun Microsystems2004Solaris
Reiser4Namesys2004Linux
Non-Volatile File SystemPalm, Inc.2004Palm OS Garnet
BeeGFSFraunhofer/2005Linux
GlusterFSGluster Inc.2005Linux
Minix V3 FSAndrew S. Tanenbaum2005MINIX 3
OCFS2Oracle Corporation2005Linux
NILFSNTT2005Linux
VMFS3VMware2005VMware ESX Server 3.0
GFS2Red Hat2006Linux
ext4various2006Linux
exFATMicrosoft2006Windows CE 6.0
BtrfsChris Mason2007Linux
JXFSHyperion Entertainment2008AmigaOS 4.1
HAMMERMatthew Dillon2008DragonFly BSD 2.0
LSFSStarWind Software2009Linux, FreeBSD, Windows
UniFSNasuni2009Cloud
CASLNimble Storage2010Linux
OrangeFSOmnibond and others2011Linux
VMFS5VMware2011vSphere 5.0+
CHFSUniversity of Szeged2011NetBSD 6.0+
ReFSMicrosoft2012Windows Server 2012
F2FSSamsung Electronics2012Linux
bcachefsKent Overstreet2015Linux
APFSApple2016macOS High Sierra, iOS 10.3
NOVAUniversity of California, San Diego2017Linux
BlueStore/CephFSRed Hat, UC, Santa Cruz2017Linux
HAMMER2Matthew Dillon2017DragonFly BSD 5.0
EROFSHuawei2018Linux, Android
VaultFSSwiss Vault2022Linux / Unix

Metadata

File systemStores file ownerPOSIX file permissionsCreation timestampsLast access/ read timestampsLast metadata change timestampsLast archive timestampsAccess control listsSecurity/ MAC labelsExtended attributes/ Alternate data streams/ forksMetadata checksum/ ECC
bcachefsYesYesYesYesYesNoYesYesYesYes
BeeGFSYesYesNoYesYesNoYes?YesYes
CP/M file systemNoNoYesNoNoNoNoNoNoNo
DECtapeNoNoYesNoNoNoNoNoNoNo
Elektronika BK tape formatNoNoNoNoNoNoNoNoNoYes
Level-DYesYesYesYes (date only)YesYesYes (FILDAE)NoNoNo
RT-11NoNoYes (date only)NoNoNoNoNoNoYes
Version 6 Unix file system (V6FS)YesYesNoYesNoNoNoNoNoNo
Version 7 Unix file system (V7FS)YesYesNoYesNoNoNoNoNoNo
exFATNoNoYesYesNoNoNoNoNoNo
FAT12/FAT16/FAT32NoNoYesYesNoNoNoNoNoNo
HPFSYesNoYesYesNoNoNo?YesNo
NTFSYesYesYesYesYesNoYesYesYesNo
ReFSYesYesYesYesYesNoYes?YesYes
HFSNoNoYesNoNoYesNoNoYesNo
HFS PlusYesYesYesYesYesYesYes?YesNo
FFSYesYesNoYesYesNoNoNoNoNo
UFS1YesYesNoYesYesNoYesYesNoNo
UFS2YesYesYesYesYesNoYesYesYesPartial
HAMMERYesYesYesYesYes?YesYesNoYes
HAMMER2YesYes????????
LFSYesYesNoYesYesNoNoNoNoNo
EROFSYesYesNoNoYesNoYesYesYesNo
extYesYesNoNoNoNoNoNoNoNo
XiafsYesYesNoYesYesNoNoNoNoNo
ext2YesYesNoYesYesNoYesYesYesNo
ext3YesYesNoYesYesNoYesYesYesNo
ext4YesYesYesYesYesNoYesYesYesPartial
NOVAYesYesYesYesYesNoNoNoNoYes
LustreYesYesNoYesYesNoYesYesYesNo
F2FSYesYesYesYesYesNoYesYesYesNo
GPFSYesYesYesYesYesNoYesYesYesYes
GFSYesYesNoYesYesNoYesYesYesNo
NILFSYesYesYesNoYesNoNoNoNoYes
ReiserFSYesYesNoYesYesNoYesYesYesNo
Reiser4YesYesNoYesYesNoNoNoNoNo
OCFSNoYesNoNoYesYesNoNoNoNo
OCFS2YesYesNoYesYesNoNoNoNoNo
XFSYesYesYesYesYesNoYesYesYesYes
JFSYesYesYesYesYesNoYesYesYesNo
QFSYesYesYesYesYesYesYesNoYesNo
BFSYesYesYesNoNoNoNoNoYesNo
AdvFSYesYesNoYesYesNoYesNoYesNo
NSSYesYesYesYesYesYesYes?YesNo
NWFSYes?YesYesYesYesYes?YesNo
Files-11 ODS-1YesYesYesNoNoNoNoNoYesNo
Files-11 ODS-2YesYesYesNoNoYesYes?YesNo
Files-11 ODS-5YesYesYes??YesYes?YesNo
APFSYesYesYesYesYesYesYesYesYesYes
VxFSYesYesYesYesYesNoYes?YesNo
UDFYesYesYesYesYesYesYesNoYesYes
FossilYesYesNoYesYesNoNoNoNoNo
ZFSYesYesYesYesYesYesYesYesYesYes
BtrfsYesYesYesYesYesNoYesYesYesYes
Minix V1YesYesNoNoNoNoNoNoNoNo
Minix V2YesYesNoYesYesNoNoNoNoNo
Minix V3YesYesNoYesYesNoNoNoNoNo
VMFS2YesYesNoYesYesNoNoNoNoNo
VMFS3YesYesNoYesYesNoNoNoNoNo
ISO 9660:1988NoNoYesNoNoNoNoNoNoNo
ISO 9660: Rock Ridge extensionYesYesNoYesYesNoNoNoNoNo
ISO 9660: Joliet extensionNoNoYesNoNoNoNoNoNoNo
ISO 9660:1999NoNoYesNoNoNoNoNoNoNo
High SierraNoNoYesNoNoNoNoNoNoNo
SquashFSYesYesNoNoYesNoNoYesYesNo
BlueStore/CephFSYesYesYesYes?NoYesYesYesYes
File systemStores file ownerPOSIX file permissionsCreation timestampsLast access/ read timestampsLast metadata change timestampsLast archive timestampsAccess control listsSecurity/ MAC labelsExtended attributes/ Alternate data streams/ forksMetadata checksum/ ECC

All widely used file systems record a last modified time stamp (also known as "mtime"). It is not included in the table.

Individual file systems may record additional special types of date and time stamps. For example, the specification of ISO 9660 includes a "File Expiration Date and Time" and a "File Effective Date and Time".

Features

File capabilities

File systemHard linksSymbolic linksBlock journalingMetadata-only journalingCase-sensitiveCase-preservingFile Change LogXIP
DECtapeNoNoNoNoNoNoNoNo
BeeGFSNoYesYesYesYesYesNoNo
Level-DNoNoNoNoNoNoNoNo
RT-11NoNoNoNoNoNoNoNo
APFSYesYes??OptionalYes??
Version 6 Unix file system (V6FS)YesNoNoNoYesYesNoNo
Version 7 Unix file system (V7FS)YesNoNoNoYesYesNoNo
exFATNoNoNoPartial (with TexFAT only)NoYesNoNo
FAT12NoNoNoPartial (with TFAT12 only)NoPartial (with VFAT LFNs only)NoNo
FAT16 / FAT16B / FAT16XNoNoNoPartial (with TFAT16 only)NoPartial (with VFAT LFNs only)NoNo
FAT32 / FAT32XNoNoNo?Partial (with TFAT32 only)NoPartial (with VFAT LFNs only)NoNo
GFSYesYesYesYesYesYesNoNo
HPFSNoNoNoNoNoYesNoNo
NTFSYesYesNoYes (2000)YesYesYes?
HFS PlusYesYesNoYesOptionalYesYesNo
FFSYesYesNoNoYesYesNoNo
UFS1YesYesNoNoYesYesNoNo
UFS2YesYesNoYesYesYesNo?
HAMMERYesYesYesYesYesYes?No
HAMMER2YesYes??????
LFSYesYesYesNoYesYesNoNo
EROFSYesYesNoNoYesYesNoNo
extYesYesNoNoYesYesNoNo
XiafsYesYesNoNoYesYesNoNo
ext2YesYesNoNoYesYesNoYes
ext3YesYesYes (2001)Yes (2001)YesYesNoYes
ext4YesYesYesYesYes, optionalYesNoYes
NOVAYesYesNoYesYesYesNoYes
F2FSYesYesYesNoYesYesNoNo
LustreYesYesYesYesYesYesYesNo
NILFSYesYesYesNoYesYesNoNo
ReiserFSYesYesYesYesYesYesNo?
Reiser4YesYesYesNoYesYesNo?
OCFSNoYesNoNoYesYesNoNo
OCFS2YesYesYesYesYesYesNoNo
XFSYesYesYesYesYesYesYes?
JFSYesYesYesYes (1990)YesYesNo?
QFSYesYesNoYesYesYesNoNo
BFSYesYesNoYesYesYes?No
NSSYesYes?YesYesYesYesNo
NWFSYesYesNoNoYesYesYesNo
Files-11 ODS-1YesNoNoNoNoNoNoNo
Files-11 ODS-2YesYesNoYesNoNoYesNo
Files-11 ODS-5YesYesNoYesNoYesYes?
UDFYesYesYesYesYesYesNoYes
VxFSYesYesYesNoYesYesYes?
FossilNoNoNoNoYesYesYesNo
ZFSYesYesYesNoYesYesNoNo
BtrfsYesYesYesNoYesYes??
bcachefsYesYesYesNoYes, optionalYes??
Minix V1YesYesNoNoYesYesNoNo
Minix V2YesYesNoNoYesYesNoNo
Minix V3YesYesNoNoYesYesNoNo
VMFS2YesYesNoYesYesYesNoNo
VMFS3YesYesNoYesYesYesNoNo
ReFSYesYes??YesYes??
ISO 9660NoNoNoNoNoNoNoNo
ISO 9660: Rock Ridge extensionYesYesNoNoYesYesNoNo
ISO 9660: Joliet extensionNoNoNoNoNoYesNoNo
SquashFSYesYesNoNoYesYesNoNo
BlueStore/CephFSYesYesYesYesYesYesNoNo
File systemHard linksSymbolic linksBlock journalingMetadata-only journalingCase-sensitiveCase-preservingFile Change LogXIP

Block capabilities

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

File systemInternal snapshotting / branchingEncryptionDeduplicationData checksum/ ECCPersistent CacheMultiple DevicesCompressionSelf-healing
DECtapeNoNoNoNoNoNoNoNo
BeeGFSNoNoYesNoNoNoYesNo
Level-DNoNoNoNoNoNoNoNo
RT-11NoNoNoNoNoNoNoNo
APFSYesYesYesNoNoNoYesNo
Version 6 Unix file system (V6FS)NoNoNoNoNoNoNoNo
Version 7 Unix file system (V7FS)NoNoNoNoNoNoNoNo
exFATNoNoNoNoNoNoNoNo
FAT12NoNoNoNoNoNoPartialNo
FAT16 / FAT16B / FAT16XNoNoNoNoNoNoPartialNo
FAT32 / FAT32XNoNoNoNoNoNoNoNo
GFSNoNo?NoNoNoNoNo
HPFS?No?NoNoNoNoNo
NTFSNoYesYesNoNoNoYesNo
HFS PlusNoNoNoNoNoNoNoNo
FFSNoNoNoNoNoNoNoNo
UFS1NoNoNoNoNoNoNoNo
UFS2YesNoNoNoNoNoNoNo
HAMMERYesNoYesYesNoNoNoNo
HAMMER2Yes?YesYes??YesPending
LFSYesNoNoNoNoNoNoNo
EROFSNoNoYesNoNoYesYesNo
extNoNoNoNoNoNoNoNo
XiafsNoNoNoNoNoNoNoNo
ext2NoNoNoNoNoNoNoNo
ext3NoNoNoNoNoNoNoNo
ext4NoYes, experimentalNoNoNoNoNoNo
NOVAYesNoNoYesNoNoNo?
F2FSNoYes, experimentalNoNoNoNoYesNo
LustreNoNoNoNoYesYesNoNo
NILFSYes, continuousNoNoYesNoNoNoNo
ReiserFSNoNoNoNoNoNoNoNo
Reiser4?Yes?NoNoNoYesNo
OCFSNoNoNoNoNoNoNoNo
OCFS2NoNoNoNoNoNoNoNo
XFSNoNoYesNoNoNoNoNo
JFS?No?NoNoNoonly in JFS1 on AIXNo
QFSNoNoNoNoNoNoNoNo
BFSNoNoNoNoNoNoNoNo
NSSYesYes?NoNoNoYesNo
NWFS?No?NoNoNoYesNo
Files-11 ODS-2YesNoNoNoNoNoNoNo
Files-11 ODS-5YesNoNoNoNoNoNo?
UDFNoNoNoNoNoNoNoNo
VxFSYesNoYesNoNoNoNoNo
FossilYesNoYesNoNoNoYesNo
ZFSYesYesYesYesYesYesYesYes
BtrfsYesNoYesYesNoYesYesYes
bcachefsYesYesNoYesYesYesYesYes
Minix V1NoNoNoNoNoNoNoNo
Minix V2NoNoNoNoNoNoNoNo
Minix V3NoNoNoNoNoNoNoNo
VMFS2NoNoNoNoNoNoNoNo
VMFS3NoNoNoNoNoNoNoNo
ReFSYesNoYesNoNoNoNoNo
ISO 9660NoNoNoNoNoNoNoNo
ISO 9660: Rock Ridge extensionNoNoNoNoNoNoNoNo
ISO 9660: Joliet extensionNoNoNoNoNoNoNoNo
SquashFSNoNoYesYesNoNoYesNo
BlueStore/CephFSYesNoNoYesYesYesYesYes
File systemInternal snapshotting / branchingEncryptionDeduplicationData checksum/ ECCPersistent CacheMultiple DevicesCompressionSelf-healing

Resize capabilities

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

File systemHost OSOffline growOnline growOffline shrinkOnline shrinkAdd and remove physical volumes
exFATmisc.NoNoNoNoNo
FAT16 / FAT16B / FAT16Xmisc.YesNoYesNoNo
FAT32 / FAT32Xmisc.YesNoYesNoNo
NTFSWindowsYesYesYesYesNo
ReFSWindows?Yes?NoNo
HFSmacOSNoNoNoNoNo
HFS PlusmacOSNoYesNoYesNo
APFSmacOS?Yes?Yes?
HAMMERDragonflyBSD?????
EROFSLinuxYesNoNoNoYes
ext2LinuxYesNoYesNoNo
ext3LinuxYesYesYesNoNo
ext4LinuxYesYesYesNoNo
NOVALinuxNoNoNoNoNo
F2FSLinuxYesNoNoNoNo
LustreLinux?YesNoNoYes
XFSLinuxNoYesNoNoNo
JFS2AIXYesYesYesYesNo
JFSLinuxYesNoNoNoNo
NTFSLinuxYesNoYesNoNo
ReiserFSLinuxYesYesYesNoNo
Reiser4LinuxYesYesYesNoNo
BtrfsLinuxYesYesYesYesYes
bcachefsLinuxYesYesNoNoYes
NILFSLinuxNoYesNoYesNo
ZFSmisc.NoYesNoYesPartial
UFS2FreeBSDYesYes (FreeBSD 10.0-RELEASE or later)NoNoNo
SquashFSLinuxNoNoNoNoNo
BlueStore/CephFSLinuxNoYesNoYesYes

Allocation and layout policies

File systemSparse filesBlock suballocationTail packingExtentsVariable block sizeInline data (resident files)Allocate-on-flushCopy on writeTrim support
DECtapeNoNoNoNoNo?NoNoNo
BeeGFSYesNoNoYesYes?YesYes?
Level-DNoNoNoYesNo?NoNo?
APFSYes??Yes??YesYesYes
Version 6 Unix file system (V6FS)YesNoNoNoNoNoNo?No
Version 7 Unix file system (V7FS)YesNoNoNoNoNoNo?No
exFATNoNoNoPartial (only if the file fits into one contiguous block range)NoNoNoNoYes (Linux)
FAT12Partial (only inside of compressed volumes)Partial (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes)NoPartial (only inside of compressed volumes)NoNoNoNoYes (Linux)
FAT16 / FAT16B / FAT16XPartial (only inside of compressed volumes)Partial (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes)NoPartial (only inside of compressed volumes)NoNoNoNoYes (Linux)
FAT32 / FAT32XNoNoNoNoNoNoNoNoYes (Linux)
GFSYesNoPartialNoNo?No?Yes
HPFSNoNoNoYesNo?No?Yes (Linux)
NTFSYesPartialNoYesNoYes (approximately 700 bytes)No?Yes (NT 6.1+; Linux)
HFS PlusNoNoNoYesNo?No?Yes (macOS)
FFSYes8:1NoNoNoNoNo?No
UFS1Yes8:1NoNoNoNoNo?No
UFS2Yes8:1NoNoRead-only so farNoNo?Yes
HAMMER???????Yes?
HAMMER2?????Yes?Yes?
LFSYes8:1NoNoNo?NoYes?
EROFSYesYesYesYesNoYesNoNoNo
extYesNoNoNoNo?NoNoNo
XiafsYesNoNoNoNo?No??
ext2YesNoNoNoNo?NoNoYes
ext3YesNoNoNoNo?NoNoYes
ext4YesNoNoYesNoYes (inode size - 96B)YesNoYes
NOVAYesNoNoYesNo?NoYes?
F2FSYesNoNoPartialNoYes (approximately 3.4KB)YesYesYes
LustreYesNoNoYesNo?Yes??
NILFSYesNoNoNoNo?YesYesYes (Linux NILFS2)
ReiserFSYesYesYesNoNoNoNo??
Reiser4YesYesYesYesNoNoYes?Testing
OCFS?NoNoYesNo?No??
OCFS2YesNoNoYesNoYesNo?Yes (Linux)
XFSYesNoNoYesNoNo (not accepted)YesYes, on requestYes (Linux)
JFSYesYesNoYesNoYes (256 bytes)No?Yes (Linux)
QFS?YesNoNoNo?No??
BFS?NoNoYesNo?No?Yes (Haiku)
NSS?NoNoYesNo?Yes??
NWFS?YesNoNoNo?No??
Files-11 ODS-5?NoNoYesNoNoNo??
VxFSYes?NoYesNo?No??
UDFYesNoNoYesNoYesDepends on implementation.Yes, for write once read many mediaNo
Fossil?NoNoNoNo?No??
ZFSYesYesNoNoYesYes (112 bytes)YesYesYes
BtrfsYesYesNoYesYesYes (2 KiB)YesYesYes
bcachefsYesYesYesYesNoYes (half block size)YesYesYes
VMFS2YesYesNoNoNo?No??
VMFS3YesYesNoNoNo?No??
ReFSYes???No??YesYes (NT 6.1+)
ISO 9660NoNoNoISO 9660 Level 3 onlyNo?NoNoNo
ISO 9660: Rock Ridge extensionNoNoNoextended from ISO 9660No?NoNoNo
ISO 9660: Joliet extensionNoNoNoextended from ISO 9660No?NoNoNo
SquashFSYesNoYesNoNo?NoNoNo
BlueStore/CephFSYes?????NoYesYes
File systemSparse filesBlock suballocationTail packingExtentsVariable block sizeInline data (resident files)Allocate-on-flushCopy on writeTrim support

OS support

File systemDOSLinuxmacOSWindows 9x (historic)Windows (current)Classic Mac OSFreeBSDOS/2BeOSMinixSolarisz/OSAndroid
DECtapeNoNoNoNoNoNoNoNoNoNoNoNoNo
BeeGFSNoYes?NoNoNoNoNo???NoNo
Level-DNo??NoNoNoNoNoNoNo??No
RT-11NoNoNoNoNoNoNoNoNoNoNoNoNo
APFSNoPartial (read-only with apfs-fuse or linux-apfs)Yes (Since macOS Sierra)NoNoNoNoNoNoNoNoNoNo
Version 6 Unix file system (V6FS)No?NoNoNoNoNoNoNoNoNoNoNo
Version 7 Unix file system (V7FS)NoYesNoNoNoNoNoNo???NoNo
exFATNoYes (since 5.4, available as a kernel module or FUSE driver for earlier versions)YesNoYesNoYes (available as a FUSE driver)NoNoNoYes (available as a FUSE driver)NoWith kernel 5.10
FAT12YesYesYesYesYesYesYesYesYesPartial (via dosdir, dosread, doswrite)Yes?Yes
FAT16 / FAT16B / FAT16XYes (FAT16 from DOS 3.0, FAT16B from DOS 3.31, FAT16X from DOS 7.0)YesYesYesYesYesYesYesYesPartial (via dosdir, dosread, doswrite, not FAT16X)Yes?Yes
FAT32 / FAT32XYesYesYesYesYes?YesYesYesNoYes?Yes
GFSNoYes?NoNoNoNo?????No
HPFSPartial (with third-party drivers)Yes?NoNo?YesYes (from OS/2 1.2)?No??No
NTFSNeeds 3rd-party driversYes Native since Linux Kernel 5.15 NTFS3. Older kernels may use backported NTFS3 driver or ntfs-3gRead only, write support needs Paragon NTFS or ntfs-3gNeeds 3rd-party drivers like Paragon NTFS for Win98, DiskInternals NTFS ReaderYesNoYes with ntfs-3g?Yes with ntfs-3gNoYes with ntfs-3g?With third party tools
HFSNoYesNo write support since Mac OS X 10.6 and no support at all since macOS 10.15NoNeeds Paragon HFS+YesNo?YesNo?NoNo
HFS PlusNoPartial - writing support only to unjournalled FSYesNoNeeds Paragon HFS+Yes from Mac OS 8.1No?with addonNo?NoNo
FFSNo?YesNo??Yes?????No
UFS1NoPartial - read onlyYesNoPartial (with ufs2tools, read only)?YesNo??Yes?No
UFS2NoYesYesNoPartial (with ufs2tools, read only)?YesNo????No
LFSNo??NoNo?NoNo????No
EROFSNoYesNeeds - since erofs-utils 1.4NoNoNoNoNoNoNoNoNoYes
extNoYes - until 2.1.20NoNoNoNoNoNoNoNoNoNoNo
XiafsNoYes - until 2.1.20 Experimental port available to 2.6.32 and laterNoNoNoNoNoNoNoNoNoNoNo
ext2NoYesNeeds Paragon ExtFS or ext2fsxPartial (read-only, with explore2fs)Needs Paragon ExtFS or partial with Ext2 IFS or ext2fsdNoYesNoYes???No
ext3NoYesNeeds 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 ext2fsdPartial (read only)[citation needed]YesNowith addon?Yes?Yes
ext4NoYesNeeds Paragon ExtFSNoYes, with the optional WSL2; physical and VHDX virtual disks.?Yes since FreeBSD 12.0Nowith addon???Yes
NOVANoYesNoNoNoNoNoNoNoNoNoNoNo
F2FSNoYesNoNoNoNoNoNoNoNoNoNoYes
LustreNoYes?NoNo?No???Yes?No
NILFSNoYes as an external kernel module?No??No?????No
ReiserFSNoYes - until 6.13?NoNo?Partial - Read Only from 6.0 to 10.x and dropped in 11.0?with addon???No
Reiser4NoYes with a kernel patch?NoNo?No?????No
SpadFSNoYesNoNoNoNo?NoNoNoNoNoNo
OCFSNoYes?NoNo?NoNo????No
OCFS2NoYes?NoNo?NoNo????No
XFSNoYes?NoNo?Partial?with addon (read only)???No
JFSNoYes?NoNo?NoYes????No
QFSNoClient?NoNo?NoNo??Yes?No
Be File SystemNoPartial - read-only?NoNo?NoNoYes???No
NSSNoYes via EVMS?NoNo?NoNo????No
NWFSPartial (with Novell drivers)??NoNo?YesNo????No
Files-11 ODS-2No??NoNo?NoNo????No
Files-11 ODS-5No??NoNo?NoNo????No
UDFNoYesYes?Yes?Yes???Yes?No
VxFSNoYes?NoNo?NoNo??Yes?No
FossilNoYesYesNoNoNoYesNoNoNoYes?No
ZFSNoYes with FUSE or as an external kernel moduleYes with Read/Write Developer PreviewNoWith third-party software (OpenZFS).NoYesNoNoNoYesNoNo
BtrfsNoYes?NoYes with WinBtrfs?No?????No
bcachefsNoYesNoNoNoNoNoNoNoNoNoNoNo
VMFS2No??NoNo?NoNo????No
VMFS3No??NoNo?NoNo????No
IBM HFSNoNoNoNoNoNoNoNoNoNoNoYesNo
IBM zFSNoNoNoNoNoNoNoNoNoNoNoYesNo
ReFSNoNeeds Paragon ReFS for Linux?NoYes???????No
ISO 9660YesYesYesYesYesYesYesYesYesYesYesYesNo
ISO 9660: Rock Ridge extensionNoYesYesNoNoNoYesNoNoYesYes?No
ISO 9660: Joliet extensionNoYesYesYesYes?YesYesYes?Yes?No
SquashFSNoYesPartial (There are ports of unsquashfs and mksquashfs.)NoPartial (There are ports of unsquashfs and mksquashfs.)NoPartial (There are ports of unsquashfs and mksquashfs and fusefs-port.)NoNoNoNoNoNo
BlueStore/CephFSNoYesClientNoClientNoClientNoNoNoNoNoNo
File systemDOSLinuxmacOSWindows 9x (historic)Windows (current)Classic Mac OSFreeBSDOS/2BeOSMinixSolarisz/OSAndroid

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.

No filesystem has ever allowed NUL, so it won't be listed in the table below even if the text says “Any byte” or “?”.

File systemMaximum filename lengthAllowable characters in directory entriesMaximum pathname lengthMaximum file sizeMaximum volume sizeMax number of files
AdvFS255 bytesAny byte except /No limit defined16 TiB (17.59 TB)16 TiB (17.59 TB)?
APFS255 bytesAny Unicode 9.0 character except /?8 EiB (9.223 EB)?263
bcachefs512 bytesAny byte except /No limit defined8 EiB (9.22 EB)2040 PiB (2.3 EB)264
BeeGFS255 bytesAny byteNo limit defined16 EiB (18.44 EB)16 EiB (18.44 EB)?
BFS255 bytesAny byteNo limit defined12,288 bytes to 260 GiB (279.1 GB)256 PiB (288.2 PB) to 2 EiB (2.305 EB)Unlimited
BlueStore/CephFS255 charactersany byte, except "/"No limit definedMax. 264 bytes, 1 TiB (1.099 TB) by defaultNot limitedNot limited, default is 100,000 files per directory
Btrfs255 bytesAny byte except /No limit defined16 EiB (18.44 EB)16 EiB (18.44 EB)264
CBM DOS16 bytesAny byteNo directory hierarchy (flat file system)16 MiB (16.77 MB)16 MiB (16.77 MB)?
CP/M file system8.3ASCII except for < > . , ; : = ? * [ ]No directory hierarchy (but accessibility of files depends on user areas via USER command since CP/M 2.2)32 MiB (33.55 MB)512 MiB (536.8 MB)?
DECtape6.3A–Z, 0–9DTxN:FILNAM.EXT = 15369,280 bytes (577×640)369,920 bytes (578×640)?
Disk Operating System (GEC DOS)???? at least 131,072 bytes??
Elektronika BK tape format16 bytes?No directory hierarchy (flat file system)64 KiB (65.53 KB)Not limited. Approx. 800 KiB (819.2 KB) (one side) for 90 min cassette?
EROFS255 bytesAny byte except /No limit defined16 EiB (18.44 EB)1 EiB (1.152 EB)264
exFAT255 UTF-16 charactersUnicode except for control codes 0x0000 - 0x001F or " * / : < > ? \ |32,760 characters with each path component no more than 255 characters16 EiB (18.44 EB)64 ZiB (75.55 ZB) (276 bytes)?
ext255 bytesAny byte except /No limit defined2 GiB (2.147 GB)2 GiB (2.147 GB)?
ext2255 bytesAny byte except /No limit defined16 GiB (17.17 GB) to 2 TiB (2.199 TB)2 TiB (2.199 TB) to 32 TiB (35.18 TB)?
ext3255 bytesAny byte except /No limit defined16 GiB (17.17 GB) to 2 TiB (2.199 TB)2 TiB (2.199 TB) to 32 TiB (35.18 TB)?
ext4255 bytesAny byte except /No limit defined16 GiB (17.17 GB) to 16 TiB (17.59 TB)1 EiB (1.152 EB)232 (static inode limit specified at creation)
F2FS255 bytesAny byte except /No limit defined4,228,213,756 KiB (4.329 TB)16 TiB (17.59 TB)?
FAT (8-bit)6.3 (binary files) / 9 characters (ASCII files)ASCII (0x00 and 0xFF not allowed in first character)No directory hierarchy (flat file system)???
FAT12/FAT168.3 (255 UCS-2 characters with LFN)SFN: OEM A-Z, 0–9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except " * / : < > ? \ |No limit defined32 MiB (33.55 MB) (4 GiB (4.294 GB))1 MiB (1.048 MB) to 32 MiB (33.55 MB)?
FAT16B/FAT16X8.3 (255 UCS-2 characters with LFN)SFN: OEM A-Z, 0–9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except " * / : < > ? \ |No limit defined2 (4) GiB (2.147 GB)16 MiB (16.77 MB) to 2 (4) GiB (2.147 GB)?
FAT32/FAT32X8.3 (255 UCS-2 characters with LFN)SFN: OEM A-Z, 0–9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except " * / : < > ? \ |32,760 characters with each path component no more than 255 characters4 GiB (4.294 GB)512 MiB (536.8 MB) to 16 TiB (17.59 TB)?
FATX42 bytesASCII.No limit defined2 GiB (2.147 GB)16 MiB (16.77 MB) to 2 GiB (2.147 GB)?
FFS255 bytesAny byte except /No limit defined4 GiB (4.294 GB)256 TiB (281.4 TB)?
Files-11 ODS-19.3 in RADIX-50A–Z, 0–9, $No limit defined; only two-level paths supported by operating systems2 TiB (2.199 TB)2 TiB (2.199 TB)216-1
Files-11 ODS-220 bytesA–Z, 0–9, $, -, _4,096 bytes2 TiB (2.199 TB)2 TiB (2.199 TB)224-1
Files-11 ODS-5236 bytesISO 8859-1 or UCS-24,096 bytes2 TiB (2.199 TB)2 TiB (2.199 TB)?
Fossil??????
GEC DOS filing system extended8 bytesA–Z, 0–9. Period was directory separator? No limit defined (workaround for OS limit)? at least 131,072 bytes??
GEMDOS8.3A-Z, a-z, 0-9 ! @ # $ % ^ & ( ) + - = ~ ` ; ' " , < > | [ ] ( ) _????
GFS2255 bytesAny byte except /No limit defined100 TiB (109.95 TB) to 8 EiB (9.223 EB)100 TiB (109.95 TB) to 8 EiB (9.223 EB)?
GFS255 bytesAny byte except /No limit defined2 TiB (2.199 TB) to 8 EiB (9.223 EB)2 TiB (2.199 TB) to 8 EiB (9.223 EB)?
GPFS255 UTF-8 codepoints[citation needed]Any byteNo limit defined9 EiB (10.37 EB)524,288 YiB (299 bytes)?
HAMMER1023 bytesAny byte except /??1 EiB (1.152 EB)?
HFS31 bytesAny byte except :; in macOS, : in file names is converted to / in the file system, and / are disallowedUnlimited2 GiB (2.147 GB)2 TiB (2.199 TB)?
HFS Plus255 UTF-16 code unitsAny valid Unicode character except :; in macOS, : in file names is converted to / in the file system, and / are disallowedUnlimitedslightly less than 8 EiB (9.223 EB)slightly less than 8 EiB (9.223 EB)?
High Sierra Format??????
HPFS255 bytesAny byteNo limit defined2 GiB (2.147 GB)2 TiB (2.199 TB)?
IBM SFS8.8?Non-hierarchical???
ISO 9660:1988Level 1: 8.3, Level 2 & 3: ~ 180Depends on Level~ 180 bytes?4 GiB (4.294 GB) (Level 1 & 2) to 8 TiB (8.796 TB) (Level 3)8 TiB (8.796 TB)?
ISO 9660:1999??????
JFS255 bytesAny UnicodeNo limit defined4 PiB (4.503 PB)32 PiB (36.02 PB)?
JFS1255 bytesAny byte except /No limit defined8 EiB (9.223 EB)512 TiB (562.9 TB) to 4 PiB (4.503 PB)?
ISO 9660: Joliet extension64 charactersAll UCS-2 code except *, /, \, :, ;, and ??same as ISO 9660:1988same as ISO 9660:1988?
Level-D6.3A–Z, 0–9DEVICE:FILNAM.EXT[PROJCT,PROGRM] = 7 + 10 + 15 = 32; + 5*7 for SFDs = 6734,359,738,368 words (235); 206,158,430,208 SIXBIT bytesApprox 12 GiB (12.88 GB) (64×178 MiB (186.6 MB))?
Lustre255 bytesAny byteNo limit defined16 EiB (18.44 EB) on ZFS16 EiB (18.44 EB)?
MFS255 bytesAny byte except :No directory hierarchy (flat file system)256 MiB (268.4 MB)256 MiB (268.4 MB)?
MicroDOS file system14 bytes??16 MiB (16.77 MB)32 MiB (33.55 MB)?
Minix V1 FS14 or 30 bytes, set at filesystem creation timeAny byteNo limit defined256.5 MiB (268.9 MB)64 MiB (67.10 MB)?
Minix V2 FS14 or 30 bytes, set at filesystem creation timeAny byteNo limit defined2 GiB (2.147 GB)1 GiB (1.073 GB)?
Minix V3 FS60 bytesAny byteNo limit defined2 GiB (2.147 GB)4 GiB (4.294 GB)?
NILFS255 bytesAny byte except /No limit defined8 EiB (9.223 EB)8 EiB (9.223 EB)?
NOVA255 bytesAny byte except /No limit defined16 EiB (18.44 EB)16 EiB (18.44 EB)?
NSS256 UTF-16 code unitsDepends on namespace usedOnly limited by client8 TiB (8.796 TB)8 TiB (8.796 TB)?
NTFS255 UTF-16 code unitsIn Win32 namespace: any UTF-16 code unit (case-insensitive) except /\:*"?<>| In POSIX namespace: any UTF-16 code unit (case-sensitive) except /32,767 UTF-16 code units with each path component (directory or filename) up to 255 UTF-16 code units long. However, the limit is approximate due to UNC, and some limitations may be removed on demand.16 TiB (17.59 TB) to 8 PiB (9.007 PB)16 TiB (17.59 TB) to 8 PiB (9.007 PB)232
NWFS80 bytesDepends on namespace usedNo limit defined4 GiB (4.294 GB)1 TiB (1.099 TB)?
OCFS255 bytesAny byteNo limit defined8 TiB (8.796 TB)8 TiB (8.796 TB)?
OCFS2255 bytesAny byteNo limit defined4 PiB (4.503 PB)4 PiB (4.503 PB)?
QFS255 bytesAny byteNo limit defined16 EiB (18.44 EB)4 PiB (4.503 PB)?
ReFS255 UTF-16 code unitsIn Win32 namespace: any UTF-16 code unit (case-insensitive) except /\:*"?<>| In POSIX namespace: any UTF-16 code unit (case-sensitive) except /32,767 characters with each path component (directory or filename) up to 255 characters long16 EiB (18.44 EB)1 YiB (1.208 YB)?
ReiserFS4032 bytes/255 charactersAny byte except /No limit defined8 TiB (8.796 TB) (v3.6), 4 GiB (4.294 GB) (v3.5)16 TiB (17.59 TB)?
Reiser43976 bytesAny byte except /No limit defined8 TiB (8.796 TB) on x86??
ISO 9660: Rock Ridge extension255 bytesAny byte except /No limit definedsame as ISO 9660:1988same as ISO 9660:1988?
RT-116.3 in RADIX-50A–Z, 0–9, $No directory hierarchy (flat file system)33,554,432 bytes (65536×512)33,554,432 bytes?
SquashFS256 bytes?No limit defined16 EiB (18.44 EB)16 EiB (18.44 EB)?
UDF255 bytesAny Unicode1,023 bytes16 EiB (18.44 EB)512 MiB (536.8 MB) to 16 TiB (17.59 TB)?
UFS1255 bytesAny byte except /No limit defined16 GiB (17.17 GB) to 256 TiB (281.4 TB)16 EiB (18.44 EB)Subdirectory per directory is 32,767
UFS2255 bytesAny byte except /No limit defined512 GiB (549.7 GB) to 32 PiB (36.02 PB)512 ZiB (604.4 ZB) (279 bytes)Subdirectory per directory is 32,767
UniFSNo limit defined (depends on client)?No limit defined (depends on client)Available cache space at time of write (depends on platform)No limit definedNo limit defined
VaultFSconfigurable (1024 default)Any byteNo limit definedNo limit definedNo limit definedNo limit defined
Version 6 Unix file system (V6FS)14 bytesAny byte except /No limit defined16 MiB (16.77 MB)32 MiB (33.55 MB)?
Version 7 Unix file system (V7FS)14 bytesAny byte except /No limit defined1 GiB (1.073 GB)2 TiB (2.199 TB)?
VMFS2128Any byte except /2,0484 TiB (4.398 TB)64 TiB (70.36 TB)?
VMFS3128Any byte except /2,0482 TiB (2.199 TB)64 TiB (70.36 TB)?
VxFS255 bytesAny byte except /No limit defined16 EiB (18.44 EB)??
XFS255 bytesAny byte except /No limit defined8 EiB (9.223 EB)8 EiB (9.223 EB)264
Xiafs248 bytesAny byteNo limit defined64 MiB (67.10 MB)2 GiB (2.147 GB)?
ZFS1023 bytesAny byte except /No limit defined16 EiB (18.44 EB)268,435,456 QiB (2128 bytes)2128
File systemMaximum filename lengthAllowable characters in directory entriesMaximum pathname lengthMaximum file sizeMaximum volume sizeMax number of files
Date ranges and time granularity
File systemStart date (time)End date (time)Granularity (last modified time)
APFS1970-01-01 00:00:002554-07-21 23:34:330.000000001 seconds (1 nanosecond)
Btrfs1970-01-01 - ~292 billion years1970-01-01 + ~292 billion years0.000000001 seconds (1 nanosecond)
exFAT1980-01-01 00:00:002107-12-31 23:59:590.01 seconds (10 milliseconds)
ext2, ext31901-12-14 20:45:522038-01-19 03:14:071 second
ext41901-12-14 20:45:522446-05-10 22:38:550.000000001 seconds (1 nanosecond)
FAT12, FAT16, FAT321980-01-01 00:00:002107-12-31 23:59:582 seconds
ISO 96600001-01-019999-12-310.01 seconds (10 milliseconds)
JFSUnknownUnknown0.000000001 seconds (1 nanosecond)
MFS, HFS, HFS Plus1904-01-01 00:00:002040-02-06 06:28:151 second
NTFS1601-01-0160056-05-280.0000001 seconds (100 nanoseconds)
ReiserFS1901-12-14 20:45:522038-01-191 second
tux3UnknownUnknown0.00390625 seconds (1/256th of a second)
UDF0001-01-019999-12-310.000001 seconds (1 microsecond)
UFS11901-12-14 20:45:522038-01-19 03:14:07Originally one second; 0.000000001 seconds (1 nanosecond) in 4.4BSD and 4.4BSD-derived systems.
UFS21970-01-01 - ~292 billion years1970-01-01 + ~292 billion years0.000000001 seconds (1 nanosecond)
XFS1901-12-132486-07-020.000000001 seconds (1 nanosecond)

See also

Notes

External links