The following tables compare general and technical information for a number of file systems.
File system | Stores file owner | POSIX file permissions | Creation timestamps | Last access/ read timestamps | Last metadata change timestamps | Last archive timestamps | Access control lists | Security/ MAC labels | Extended attributes/ Alternate data streams/ forks | Metadata checksum/ ECC | File system |
---|---|---|---|---|---|---|---|---|---|---|---|
Bcachefs | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Bcachefs |
BeeGFS | Yes | Yes | No | Yes | Yes | No | Yes | ? | Yes | Yes | BeeGFS |
CP/M file system | No | No | Yes [c] | No | No | No | No | No | No | No | CP/M file system |
DECtape [8] | No | No | Yes | No | No | No | No | No | No | No | DECtape |
Elektronika BK tape format | No | No | No | No | No | No | No | No | No | Yes | Elektronika BK |
Level-D | Yes | Yes | Yes | Yes (date only) | Yes | Yes | Yes (FILDAE) | No | No | No | Level-D |
RT-11 [9] | No | No | Yes (date only) | No | No | No | No | No | No | Yes | RT-11 |
Version 6 Unix file system (V6FS) [10] | Yes | Yes | No | Yes | No | No | No | No | No | No | Version 6 Unix file system (V6FS) |
Version 7 Unix file system (V7FS) [11] | Yes | Yes | No | Yes | No | No | No | No | No | No | Version 7 Unix file system (V7FS) |
exFAT | No | No | Yes | Yes | No | No | No | No | No | No | exFAT |
FAT12/ FAT16/ FAT32 | No | No | Yes | Yes | No [d] | No | No | No | No [e] | No | FAT12/ FAT16/ FAT32 |
HPFS | Yes [f] | No | Yes | Yes | No | No | No | ? | Yes | No | HPFS |
NTFS | Yes | Yes [g] | Yes | Yes | Yes | No | Yes | Yes [h] | Yes | No | NTFS |
ReFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes [i] | Yes | ReFS |
HFS | No | No | Yes | No | No | Yes | No | No | Yes | No | HFS |
HFS Plus | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | No | HFS Plus |
FFS | Yes | Yes | No | Yes | Yes | No | No | No | No | No | FFS |
UFS1 | Yes | Yes | No | Yes | Yes | No | Yes [j] | Yes [j] | No [k] | No | UFS1 |
UFS2 | Yes | Yes | Yes | Yes | Yes | No | Yes [j] | Yes [j] | Yes | Partial | UFS2 |
HAMMER | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | No | Yes | HAMMER |
LFS | Yes | Yes | No | Yes | Yes | No | No | No | No | No | LFS |
ext | Yes | Yes | No | No | No | No | No | No | No | No | ext |
Xiafs | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Xiafs |
ext2 | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | ext2 |
ext3 | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | ext3 |
ext4 | Yes | Yes | Yes | Yes | Yes | No | Yes [l] | Yes [l] | Yes | Partial [m] | ext4 |
NOVA | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | NOVA |
Lustre | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Lustre |
F2FS | Yes | Yes | Yes | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | F2FS |
GPFS | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | GPFS |
GFS | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | GFS |
NILFS | Yes | Yes | Yes | No | Yes | No | No | No | No | Yes | NILFS |
ReiserFS | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | ReiserFS |
Reiser4 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Reiser4 |
OCFS | No | Yes | No | No | Yes | Yes | No | No | No | No | OCFS |
OCFS2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | OCFS2 |
XFS | Yes | Yes | Partial [n] | Yes | Yes | No | Yes | Yes [l] | Yes | Yes | XFS |
JFS | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | JFS |
QFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | QFS |
BFS | Yes | Yes | Yes | No | No | No | No | No | Yes | No | BFS |
AdvFS | Yes | Yes | No | Yes | Yes | No | Yes | No | Yes | No | AdvFS |
NSS | Yes | Yes | Yes [o] | Yes [o] | Yes | Yes [o] | Yes | ? | Yes [p] [q] | No | NSS |
NWFS | Yes | ? | Yes [o] | Yes [o] | Yes | Yes [o] | Yes | ? | Yes [p] [q] | No | NWFS |
ODS-5 | Yes | Yes | Yes | ? | ? | Yes | Yes | ? | Yes [r] | No | ODS-5 |
APFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | APFS |
VxFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes [l] | No | VxFS |
UDF | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | UDF |
Fossil | Yes | Yes [s] | No | Yes | Yes | No | No | No | No | No | Fossil |
ZFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [t] | Yes [u] | Yes | ZFS |
Btrfs | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Btrfs |
Minix V1 | Yes | Yes | No | No | No | No | No | No | No | No | Minix V1 |
Minix V2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Minix V2 |
Minix V3 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Minix V3 |
VMFS2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | VMFS2 |
VMFS3 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | VMFS3 |
ISO 9660:1988 | No | No | Yes | No | No | No | No | No | No | No | ISO 9660:1988 |
Rock Ridge | Yes | Yes | No | Yes [v] | Yes | No | No [w] | No [x] | No [x] | No | Rock Ridge |
Joliet ("CDFS") | No | No | Yes | No | No | No | No | No | No | No | Joliet ("CDFS") |
ISO 9660:1999 | No | No | Yes | No | No | No | No | No | No | No | ISO 9660:1999 |
High Sierra | No | No | Yes | No | No | No | No | No | No | No | High Sierra |
SquashFS | Yes | Yes | No | No | Yes | No | No | Yes | Yes | No | SquashFS |
BlueStore/Cephfs | Yes | Yes | Yes | Yes | ? | No | Yes | Yes | Yes | Yes | BlueStore/Cephfs |
File system | Stores file owner | POSIX file permissions | Creation timestamps | Last access/read timestamps | Last metadata change timestamps | Last archive timestamps | Access control lists | Security/ MAC labels | Extended attributes/ Alternate data streams/ forks | Metadata checksum/ ECC | File system |
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 | ? |
BeeGFS | No | Yes | Yes | Yes | Yes | Yes | No | No | ? |
Level-D | No | No | No | No | No | No | No | No | ? |
RT-11 | No | No | No | No | No | No | No | No | ? |
APFS | Yes | Yes | ? | ? | Optional | Yes | ? | ? | ? |
Version 6 Unix file system (V6FS) | Yes | No | No | No | Yes | Yes | No | No | No |
Version 7 Unix file system (V7FS) | Yes | No [y] | 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 [z] | Yes | Yes [aa] | Yes | Yes | No | No | ? |
HPFS | No | No | No | No | No | Yes | No | No | ? |
NTFS | Yes | Yes [ab] | No [ac] | Yes [ac] (2000) | Yes [ad] | Yes | Yes | ? | Yes (approximately 700 bytes) |
HFS Plus | Yes [16] | Yes | No | Yes [ae] | Optional [af] | Yes | Yes [ag] | No | ? |
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 [ah] [21] [ai] | Yes | Yes | No | ? | No |
HAMMER | Yes | Yes | Yes | Yes | Yes | Yes | ? | No | ? |
LFS | Yes | Yes | Yes [aj] | No | Yes | Yes | No | No | ? |
ext | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Xiafs | Yes | Yes | No | No | Yes | Yes | No | No | ? |
ext2 | Yes | Yes | No | No | Yes | Yes | No | Yes [ak] | ? |
ext3 | Yes | Yes | Yes (2001) [al] | Yes (2001) | Yes | Yes | No | Yes | ? |
ext4 | Yes | Yes | Yes [al] | Yes | Yes, optional [24] | Yes | No | Yes | Yes (approximately 160 bytes) [25] |
NOVA | Yes | Yes | No | Yes | Yes | Yes | No | Yes | ? |
F2FS | Yes | Yes | Yes [aj] | No | Yes | Yes | No | No | ? |
Lustre | Yes | Yes | Yes [al] | Yes | Yes | Yes | Yes | No | ? |
NILFS | Yes | Yes | Yes [aj] | No | Yes | Yes | No | No | ? |
ReiserFS | Yes | Yes | Yes [am] | Yes | Yes | Yes | No | ? | ? |
Reiser4 | Yes | Yes | Yes | No | Yes | Yes | No | ? | ? |
OCFS | No | Yes | No | No | Yes | Yes | No | No | ? |
OCFS2 | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ? |
XFS | Yes | Yes | Yes | Yes | Yes [an] | Yes | Yes | ? | ? |
JFS | Yes | Yes | Yes | Yes (1990) | Yes [ao] | Yes | No | ? | ? |
QFS | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
BFS | Yes | Yes | No | Yes | Yes | Yes | ? | No | ? |
NSS | Yes | Yes | ? | Yes | Yes [ap] | Yes [ap] | Yes [aq] | No | ? |
NWFS | Yes [ar] | Yes [ar] | No | No | Yes [ap] | Yes [ap] | Yes [aq] | No | ? |
ODS-2 | Yes | Yes [as] | No | Yes | No | No | Yes | No | ? |
ODS-5 | Yes | Yes [as] | No | Yes | No | Yes | Yes | ? | ? |
UDF | Yes | Yes | Yes [aj] | Yes [aj] | Yes | Yes | No | Yes | Yes [27] |
VxFS | Yes | Yes | Yes | No | Yes | Yes | Yes | ? | ? |
Fossil | No | No | No | No | Yes | Yes | Yes | No | ? |
ZFS | Yes | Yes | Yes [at] | No [at] | Yes | Yes | No | No | ? |
Btrfs | Yes | Yes | Yes [au] | No | Yes | Yes | ? | ? | ? |
Bcachefs | Yes | Yes | Yes [av] | No | Yes | Yes | ? | ? | ? |
Minix V1 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Minix V2 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Minix V3 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
VMFS2 | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
VMFS3 | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
ReFS | Yes [aw] | Yes | ? | ? | Yes [ad] | Yes | ? | ? | ? |
ISO 9660 | No | No | No | No | No | No | No | No | ? |
Rock Ridge | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Joliet ("CDFS") | No | No | No | No | No | Yes | No | No | ? |
SquashFS | Yes | Yes | No | No | Yes | Yes | No | No | ? |
BlueStore/Cephfs | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ? |
File system | Hard links | Symbolic links | Block journaling | Metadata-only journaling | Case-sensitive | Case-preserving | File Change Log | XIP | Resident files |
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 system | Internal snapshotting / branching | Encryption | Deduplication | Data checksum/ ECC | Persistent Cache | Multiple Devices | Compression | Self-healing [ax] |
---|---|---|---|---|---|---|---|---|
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 [28] | 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 [ay] | No |
FAT16 / FAT16B / FAT16X | No | No | No | No | No | No | Partial [ay] | No |
FAT32 / FAT32X | No | No | No | No | No | No | No | No |
GFS | No | No | ? | No | No | No | No | No |
HPFS | ? | No | ? | No | No | No | No | No |
NTFS | No | Yes | Yes [az] [30] | No | No | No | Yes | No |
HFS Plus | No | No [ba] | 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 |
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 [31] | No | No [32] | No | No | No | No |
NOVA | Yes | No | No | Yes | No | No | No | ? |
F2FS | No | Yes, experimental [33] | No | No | No | No | Yes | No |
Lustre | No | No | No | No | Yes | Yes | No | No |
NILFS | Yes, continuous [aj] | No | No | Yes | No | No | No | No |
ReiserFS | No | No | No | No | No | No | No | No |
Reiser4 | ? | Yes [bb] | ? | 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 [34] | No [32] | No | No | No | No |
JFS | ? | No | ? | No | No | No | only in JFS1 on AIX [35] | No |
QFS | No | No | No | No | No | No | No | No |
BFS | No | No | No | No | No | No | No | No |
NSS | Yes | Yes | ? | No | No | No | Yes | No |
NWFS | ? | No | ? | 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 [bc] | No | Yes | No | No | No | No | No |
Fossil | Yes | No | Yes | No | No | No | Yes | No |
ZFS | Yes | Yes [bd] | Yes | Yes | Yes | Yes | Yes [be] | Yes |
Btrfs | Yes | No | Yes | Yes [bf] | No | Yes | Yes [bg] | Yes |
Bcachefs | Yes | Yes | No | Yes [bh] | No | Yes | Yes [bi] | 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 | Yes | Yes [bj] | No | No | No | Yes |
ISO 9660 | No | No | No [bk] | No | No | No | No | No |
Rock Ridge | No | No | No [bk] | No | No | No | No | No |
Joliet ("CDFS") | No | No | No [bk] | No | No | No | No | No |
SquashFS | No | No | Yes | Yes | No | No | Yes | No |
BlueStore/Cephfs | Yes | No | No | Yes | Yes | Yes | Yes | Yes |
File system | Internal snapshotting / branching | Encryption | Deduplication | Data checksum/ ECC | Persistent Cache | Multiple Devices | Compression | Self-healing [ax] |
"Online" and "offline" are synonymous with "mounted" and "not mounted".
File system | Host OS | Offline grow | Online grow | Offline shrink | Online shrink | Add and remove physical volumes |
---|---|---|---|---|---|---|
FAT16 / FAT16B / FAT16X | misc. | Yes [bl] | No | Yes [bl] | No | No |
FAT32 / FAT32X | misc. | Yes [bl] | No | Yes [bl] | No | No |
exFAT | misc. | No | No | No | No | No |
NTFS | Windows | Yes | Yes | Yes | Yes | No |
ReFS | Windows | ? | Yes | ? | No | No |
HFS | macOS | No | No | No | No | No |
HFS+ | macOS | No | Yes | No | Yes | No |
APFS | macOS | ? | ? | ? | ? | ? |
SquashFS | Linux | No | No | No | No | No |
NOVA | Linux | No | No | No | No | No |
JFS [43] | Linux | Yes | No | No | No | No |
XFS [44] | Linux | No | Yes | No [45] | No [45] | No |
Lustre [46] | Linux | ? | Yes | No | No | Yes |
F2FS [47] | Linux | Yes | No | No | No | No |
NTFS [48] | Linux | Yes | No | Yes | No | No |
ext2 [49] | Linux | Yes | No | Yes | No | No |
ext3 [49] | Linux | Yes | Yes | Yes | No | No |
ReiserFS [50] | Linux | Yes | Yes | Yes | No | No |
Reiser4 [51] | Linux | Yes | Yes | Yes | No | No |
ext4 [49] | Linux | Yes | Yes | Yes | No | No |
Btrfs [52] | Linux | Yes | Yes | Yes | Yes | Yes |
Bcachefs [41] | Linux | Yes | Yes | No | No | Yes |
NILFS [53] | Linux | No | Yes | No | Yes | No |
ZFS | misc. | No | Yes | No | Partial [54] | Yes |
JFS2 | AIX | Yes | Yes | Yes | Yes | No |
UFS2 [55] | FreeBSD | Yes | Yes (FreeBSD 10.0-RELEASE or later) | No | No | No |
HAMMER | DragonflyBSD | ? | ? | ? | ? | ? |
BlueStore/Cephfs | Linux | No | Yes | No | Yes | Yes |
File system | Sparse files | Block suballocation | Tail packing | Extents | Variable file block size [bm] | 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 | ? |
Level-D | No | No | No | Yes | No | No | No | ? |
APFS | Yes | ? | ? | Yes | ? | Yes | Yes | Yes [56] [57] |
Version 6 Unix file system (V6FS) | Yes | No | No | No | No | No | ? | No |
Version 7 Unix file system (V7FS) | Yes | No | No | No | No | No | ? | 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) [58] | Partial (only inside of Stacker 3/ 4 and DriveSpace 3 compressed volumes [29]) | No | Partial (only inside of compressed volumes) [59] | No | No | No | Yes (Linux) |
FAT16 / FAT16B / FAT16X | Partial (only inside of compressed volumes) [58] | Partial (only inside of Stacker 3/ 4 and DriveSpace 3 compressed volumes [29]) | No | Partial (only inside of compressed volumes) [59] | No | No | No | Yes (Linux) |
FAT32 / FAT32X | No | No | No | No | No | No | No | Yes (Linux) |
GFS | Yes | No | Partial [bn] | No | No | No | ? | Yes |
HPFS | No | No | No | Yes | No | No | ? | Yes (Linux) |
NTFS | Yes | Partial | No | Yes | No | No | ? | Yes (NT 6.1+; Linux) |
HFS Plus | No | No | No | Yes | No | No | ? | Yes (macOS) |
FFS | Yes | 8:1 [bo] | No | No | No | No | ? | No |
UFS1 | Yes | 8:1 [bo] | No | No | No | No | ? | No |
UFS2 | Yes | 8:1 [bo] | No | No | Yes | No | ? | Yes [60] [61] |
LFS | Yes | 8:1 [bo] | No | No | No | No | Yes | ? |
ext | Yes | No | No | No | No | No | No | No |
Xiafs | Yes | No | No | No | No | No | ? | ? |
ext2 | Yes | No [bp] | No | No | No | No | No | Yes |
ext3 | Yes | No [bp] | No | No | No | No | No | Yes |
ext4 | Yes | No [bp] | No | Yes | No | Yes | No | Yes |
NOVA | Yes | No | No | Yes | No | No | Yes | ? |
F2FS | Yes | No | No | Partial [bq] | No | Yes | Yes | Yes [62] |
Lustre | Yes | No | No | Yes | No | Yes | ? | ? |
NILFS | Yes | No | No | No | No | Yes | Yes | Yes (Linux NILFS2) |
ReiserFS | Yes | Yes [br] | Yes | No | No | No | ? | ? |
Reiser4 | Yes | Yes [br] | Yes | Yes [bs] | No | Yes | ? | Testing [63] |
OCFS | ? | No | No | Yes | No | No | ? | ? |
OCFS2 | Yes | No | No | Yes | No | No | ? | Yes (Linux) |
XFS | Yes | No | No | Yes | No | Yes | Yes, on request [64] | Yes (Linux) |
JFS | Yes | Yes | No | Yes | No | No | ? | Yes (Linux) |
QFS | ? | Yes | No | No | No | No | ? | ? |
BFS | ? | No | No | Yes | No | No | ? | Yes ( Haiku) |
NSS | ? | No | No | Yes | No | Yes | ? | ? |
NWFS | ? | Yes [bt] | No | No | No | No | ? | ? |
ODS-5 | ? | No | No | Yes | No | No | ? | ? |
VxFS | Yes | ? | No | Yes | No | No | ? | ? |
UDF | Yes | No | No | Yes | No | ? [bu] | Yes, for write once read many media | No |
Fossil | ? | No | No | No | No | No | ? | ? |
ZFS | Yes | Yes | No | No | Yes | Yes | Yes | Yes |
Btrfs | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Bcachefs | ? | ? | ? | Yes | ? | Yes | Yes | ? |
VMFS2 | Yes | Yes | No | No | No | No | ? | ? |
VMFS3 | Yes | Yes | No | No | No | No | ? | ? |
ReFS | Yes | ? | ? | ? | No | ? | Yes | Yes (NT 6.1+) |
ISO 9660 | No | No | No | Yes [bv] | No | No | No | No |
Rock Ridge | No | No | No | Yes [bv] | No | No | No | No |
Joliet ("CDFS") | No | No | No | Yes [bv] | No | No | No | No |
SquashFS | Yes | No | Yes | No | No | No | No | No |
BlueStore/Cephfs | Yes | ? | ? | ? | ? | No | Yes | Yes |
File system | Sparse files | Block suballocation | Tail packing | Extents | Variable file block size [bm] | Allocate-on-flush | Copy on write | Trim support |
File system | DOS | Linux | macOS | Windows 9x (historic) | Windows (current) |
Classic Mac OS |
FreeBSD | OS/2 | BeOS | Minix | Solaris | z/OS |
Android |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
APFS | No | Partial (read-only with apfs-fuse [66] or linux-apfs [67]) | Yes (Since macOS Sierra) |
No | No | No | No | No | No | No | No | No | No |
BeeGFS | No | Yes | ? | No | No | No | No | No | ? | ? | ? | No | No |
DECtape | No | No | No | No | No | No | No | No | No | No | No | No | No |
Level-D | No | ? | ? | No | No | No | No | No | No | No | ? | ? | No |
RT-11 | No | No | No | No | No | No | No | No | No | No | No | No | No |
Version 6 Unix file system (V6FS) | No | ? | 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 | ? | ? | ? | No | No |
exFAT | No | Yes (since 5.4, [68] 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 | With kernel 5.10 |
FAT12 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial (via dosdir, dosread, doswrite) | Yes | ? | 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 | ? | Yes |
FAT32 / FAT32X | Yes (from DOS 7.10) | Yes | Yes | Yes (from Windows 95 OSR2) | Yes | ? | Yes | Yes | Yes | No | Yes | ? | Yes |
GFS | No | Yes | ? | No | No | No | No | ? | ? | ? | ? | ? | No |
HPFS | Partial (with third-party drivers) | Yes | ? | No | No | ? | Yes | Yes (from OS/2 1.2) | ? | No | ? | ? | 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 [69] | 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 | ? | Yes with ntfs-3g | No | Yes with ntfs-3g | ? | 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+ [70] | Yes | No | ? | Yes | No | ? | No | No |
Apple HFS Plus | No | Partial - writing support only to unjournalled FS | Yes | No | Needs Paragon HFS+ [70] | Yes from Mac OS 8.1 | No | ? | with addon | No | ? | No | No |
FFS | No | ? | Yes | No | ? | ? | Yes | ? | ? | ? | ? | ? | No |
UFS1 | No | Partial - read only | Yes | No | Partial (with ufs2tools, read only) | ? | Yes | No | ? | ? | Yes | ? | No |
UFS2 | No | Yes | Yes | No | Partial (with ufs2tools, read only) | ? | Yes | No | ? | ? | ? | ? | No |
LFS | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
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 |
No | No | No | No | No | No | No | No | No | No | No |
ext2 | No | Yes | Needs Paragon ExtFS [73] or ext2fsx | Partial (read-only, with explore2fs) [74] | Needs Paragon ExtFS [75] or partial with Ext2 IFS [76] or ext2fsd [77] | No | Yes | No | Yes | ? | ? | ? | No |
ext3 | No | Yes | Needs Paragon ExtFS [73] or partial with ext2fsx (journal not updated on writing) | Partial (read-only, with explore2fs) [74] | Needs Paragon ExtFS [75] or partial with Ext2 IFS [76] or ext2fsd [77] | Partial (read only)[ citation needed] | Yes [78] | No | with addon | ? | Yes | ? | Yes |
ext4 | No | Yes | Needs Paragon ExtFS [73] | No | Yes, with the optional WSL2; physical and VHDX virtual disks. [79] [80] | ? | Yes since FreeBSD 12.0 [78] | No | with addon | ? | ? | ? | Yes |
NOVA | No | Yes | No | No | No | No | No | No | No | No | No | No | No |
Lustre | No | Yes [81] | ? | No | No | ? | No | ? | ? | ? | Yes | ? | No |
NILFS | No | Yes as an external kernel module | ? | No | ? | ? | No | ? | ? | ? | ? | ? | No |
F2FS | No | Yes | No | No | No | No | No | No | No | No | No | No | Yes |
ReiserFS | No | Yes | ? | No | No | ? | Partial - Read Only from 6.0 to 10.x [82] and dropped in 11.0 [83] [84] | ? | with addon | ? | ? | ? | No |
Reiser4 | No | Yes with a kernel patch | ? | No | No | ? | No | ? | ? | ? | ? | ? | No |
SpadFS | No | Yes | No | No | No | No | ? | No | No | No | No | No | No |
OCFS | No | Yes | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
OCFS2 | No | Yes | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
XFS | No | Yes | ? | No | No | ? | Partial | ? | with addon (read only) | ? | ? | ? | No |
JFS | No | Yes | ? | No | No | ? | No | Yes | ? | ? | ? | ? | No |
QFS | No | Partial - client only [85] | ? | No | No | ? | No | No | ? | ? | Yes | ? | No |
Be File System | No | Partial - read-only | ? | No | No | ? | No | No | Yes | ? | ? | ? | No |
NSS | No | Yes via EVMS [bw] | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
NWFS | Partial (with Novell drivers) | ? | ? | No | No | ? | Yes | No | ? | ? | ? | ? | No |
ODS-2 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
ODS-5 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
UDF | No | Yes | Yes | ? | Yes | ? | Yes | ? | ? | ? | Yes | ? | No |
VxFS | No | Yes | ? | No | No | ? | No | No | ? | ? | Yes | ? | No |
Fossil | No | Yes [bx] | Yes [bx] | No | No | No | Yes [bx] | No | No | No | Yes [bx] | ? | No |
ZFS | No | Yes with FUSE [86] or as an external kernel module [87] | Yes with Read/Write Developer Preview [88] | No | Yes [89] | No | Yes | No | No | No | Yes | No | No |
Btrfs | No | Yes | ? | No | Yes with WinBtrfs [90] | ? | No | ? | ? | ? | ? | ? | No |
Bcachefs | No | Yes | No | No | No | No | No | No | No | No | No | No | No |
VMFS2 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
VMFS3 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | 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 | ? | No | Yes | ? | ? | ? | ? | ? | ? | ? | 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 | ? | No |
Joliet ("CDFS") | No | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | ? | Yes | ? | 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. [91] [92]) | No | No | No | No | No | No |
BlueStore/Cephfs | No | Yes | No [by] | No | No [bz] | No | No [by] | No | No | No | No | No | No |
File system | DOS | Linux | macOS | Windows 9x (historic) | Windows (current) |
Classic Mac OS |
FreeBSD | OS/2 | BeOS | Minix | Solaris | z/OS | Android |
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.
File system | Maximum filename length | Allowable characters in directory entries [ca] | Maximum pathname length | Maximum file size | Maximum volume size [cb] | Max number of files |
---|---|---|---|---|---|---|
AdvFS | 255 characters | Any byte except NUL [cc] | No limit defined [cd] | 16 TiB (17.59 TB) | 16 TiB (17.59 TB) | ? |
APFS | 255 UTF-8 characters | Unicode 9.0 encoded in UTF-8 [93] | ? | 8 EiB (9.223 EB) | ? | 263 [94] |
Bcachefs | 255 bytes | Any byte except '/' and NUL | No limit defined | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | 264 |
BeeGFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
BFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 12,288 bytes to 260 GiB (279.1 GB) [ce] | 256 PiB (288.2 PB) to 2 EiB (2.305 EB) | Unlimited |
BlueStore/Cephfs | 255 characters | any byte, except null, "/" | No limit defined | Max. 264 bytes, 1 TiB (1.099 TB) by default [95] | Not limited | Not limited, default is 100,000 files per directory [96] |
Btrfs | 255 bytes | Any byte except '/' and NUL | No limit defined | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | 264 |
CBM DOS | 16 bytes | Any byte except NUL | 0 (no directory hierarchy) | 16 MiB (16.77 MB) | 16 MiB (16.77 MB) | ? |
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) | 32 MiB (33.55 MB) | 512 MiB (536.8 MB) | ? |
DECtape | 6.3 | A–Z, 0–9 | DTxN:FILNAM.EXT = 15 | 369,280 bytes (577 * 640) | 369,920 bytes (578 * 640) | ? |
Disk Operating System ( GEC DOS) | ? | ? | ? | ? at least 131,072 bytes | ? | ? |
Elektronika BK tape format | 16 bytes | ? | No directory hierarchy | 64 KiB (65.53 KB) | Not limited. Approx. 800 KiB (819.2 KB) (one side) for 90 min cassette | ? |
exFAT | 255 UTF-16 characters | Unicode except for control codes 0x0000 - 0x001F or " * / : < > ? \ | [97] | 32,760 characters with each path component no more than 255 characters [98] | 16 EiB (18.44 EB) [98] | 64 ZiB (75.55 ZB) (276 bytes) | ? |
ext | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 2 GiB (2.147 GB) | 2 GiB (2.147 GB) | ? |
ext2 | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB) [cb] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext3 | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB) [cb] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext4 | 255 bytes [99] | Any byte except NUL, / [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 16 TiB (17.59 TB) [cb] [100] | 1 EiB (1.152 EB) | 232 (static inode limit specified at creation) |
F2FS | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 4,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 | ? | ? | ? |
FAT12/ FAT16 | 8.3 (255 UCS-2 characters with LFN) [cf] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [ca] [cc] | No limit defined [cd] | 32 MiB (33.55 MB) (4 GiB (4.294 GB)) [cg] | 1 MiB (1.048 MB) to 32 MiB (33.55 MB) | ? |
FAT16B/ FAT16X | 8.3 (255 UCS-2 characters with LFN) [cf] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [ca] [cf] [cc] | No limit defined [cd] | 2 (4) GiB [cg] (2.147 GB) | 16 MiB (16.77 MB) to 2 (4) GiB (2.147 GB) | ? |
FAT32/ FAT32X | 8.3 (255 UCS-2 characters with LFN) [cf] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [ca] [cf] [cc] | 32,760 characters with each path component no more than 255 characters [98] | 4 GiB (4.294 GB) [98] | 512 MiB (536.8 MB) to 16 TiB (17.59 TB) [ch] | ? |
FATX | 42 bytes [cf] | ASCII. | No limit defined [cd] | 2 GiB (2.147 GB) | 16 MiB (16.77 MB) to 2 GiB (2.147 GB) | ? |
FFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 4 GiB (4.294 GB) | 256 TiB (281.4 TB) | ? |
Fossil | ? | ? | ? | ? | ? | ? |
GEC DOS filing system extended | 8 bytes | A–Z, 0–9. Period was directory separator | ? No limit defined (workaround for OS limit) | ? at least 131,072 bytes | ? | ? |
GEMDOS | 8.3 | A-Z, a-z, 0-9 ! @ # $ % ^ & ( ) + - = ~ ` ; ' " , < > | [ ] ( ) _ [102] | ? | ? | ? | ? |
GFS2 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB) [ci] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB) [cj] | ? |
GFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB) [ck] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB) [ck] | ? |
GPFS | 255 UTF-8 codepoints | Any byte except NUL [cc] | No limit defined [cd] | 9 EiB (10.37 EB) | 524,288 YiB (299 bytes) | ? |
HAMMER | 1023 bytes [105] | Any byte except NUL [cc] | ? | ? | 1 EiB (1.152 EB) [106] | ? |
HFS | 31 bytes | Any byte except :
|
Unlimited | 2 GiB (2.147 GB) | 2 TiB (2.199 TB) | ? |
HFS Plus | 255 UTF-16 characters [cl] | Any valid Unicode [cc] [cm] | Unlimited | slightly less than 8 EiB (9.223 EB) | slightly less than 8 EiB (9.223 EB) [107] [108] | ? |
High Sierra Format | ? | ? | ? | ? | ? | ? |
HPFS | 255 bytes | Any byte except NUL [cn] | No limit defined [cd] | 2 GiB (2.147 GB) | 2 TiB (2.199 TB) [co] | ? |
IBM SFS | 8.8 | ? | ? | Non-hierarchical [109] | ? | ? |
ISO 9660:1988 | Level 1: 8.3, Level 2 & 3: ~ 180 |
Depends on Level [cp] | ~ 180 bytes? | 4 GiB (4.294 GB) (Level 1 & 2) to 8 TiB (8.796 TB) (Level 3) [cq] | 8 TiB (8.796 TB) [cr] | ? |
ISO 9660:1999 | ? | ? | ? | ? | ? | ? |
JFS | 255 bytes | Any Unicode except NUL | No limit defined [cd] | 4 PiB (4.503 PB) | 32 PiB (36.02 PB) | ? |
JFS1 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 8 EiB (9.223 EB) | 512 TiB (562.9 TB) to 4 PiB (4.503 PB) | ? |
Joliet ("CDFS") | 64 characters | All UCS-2 code except *, /, \, :, ;, and ? [110] | ? | same as ISO 9660:1988 | same as ISO 9660:1988 | ? |
Level-D | 6.3 | A–Z, 0–9 | DEVICE:FILNAM.EXT[PROJCT,PROGRM] = 7 + 10 + 15 = 32; + 5*7 for SFDs = 67 | 34,359,738,368 words (235); 206,158,430,208 SIXBIT bytes | Approx 12 GiB (12.88 GB) (64 * 178 MiB (186.6 MB)) | ? |
Lustre | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) on ZFS | 16 EiB (18.44 EB) | ? |
MFS | 255 bytes | Any byte except :
|
No path (flat filesystem) | 256 MiB (268.4 MB) | 256 MiB (268.4 MB) | ? |
MicroDOS file system | 14 bytes | ? | ? | 16 MiB (16.77 MB) | 32 MiB (33.55 MB) | ? |
Minix V1 FS | 14 or 30 bytes, set at filesystem creation time | Any byte except NUL [cc] | No limit defined [cd] | 256.5 MiB (268.9 MB) [cs] | 64 MiB (67.10 MB) | ? |
Minix V2 FS | 14 or 30 bytes, set at filesystem creation time | Any byte except NUL [cc] | No limit defined [cd] | 2 GiB (2.147 GB) [cs] | 1 GiB (1.073 GB) | ? |
Minix V3 FS | 60 bytes | Any byte except NUL [cc] | No limit defined [cd] | 2 GiB (2.147 GB) | 4 GiB (4.294 GB) | ? |
NILFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 8 EiB (9.223 EB) | 8 EiB (9.223 EB) | ? |
NOVA | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
NSS | 256 characters | Depends on namespace used [ct] | Only limited by client | 8 TiB (8.796 TB) | 8 TiB (8.796 TB) | ? |
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 |
32,767 characters with each path component (directory or filename) up to 255 characters long [cd] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB) [cu] [112] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB) [cu] [112] | 232 |
NWFS | 80 bytes [cv] | Depends on namespace used [ct] | No limit defined [cd] | 4 GiB (4.294 GB) | 1 TiB (1.099 TB) | ? |
OCFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 8 TiB (8.796 TB) | 8 TiB (8.796 TB) | ? |
OCFS2 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 4 PiB (4.503 PB) | 4 PiB (4.503 PB) | ? |
ODS-5 | 236 bytes [cw] | ? | 4,096 bytes [cx] | 1 TiB (1.099 TB) | 1 TiB (1.099 TB) | ? |
QFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) [cy] | 4 PiB (4.503 PB) [cy] | ? |
ReFS | 255 UTF-16 characters [113] | 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 |
32,767 characters with each path component (directory or filename) up to 255 characters long [113] | 16 EiB (18.44 EB) [113] [115] | 1 YiB (1.208 YB) [113] | ? |
ReiserFS | 4,032 bytes/255 characters | Any byte except NUL or '/'
[cc]
|
No limit defined [cd] | 8 TiB (8.796 TB) [cz] (v3.6), 4 GiB (4.294 GB) (v3.5) | 16 TiB (17.59 TB) | ? |
Reiser4 | 3,976 bytes | Any byte except / and NUL
|
No limit defined [cd] | 8 TiB (8.796 TB) on x86 | ? | ? |
Rock Ridge | 255 bytes | Any byte except NUL or / [cc] | No limit defined [cd] | same as ISO 9660:1988 | same as ISO 9660:1988 | ? |
RT-11 | 6.3 | A–Z, 0–9, $ | 0 (no directory hierarchy) | 33,554,432 bytes (65536 * 512) | 33,554,432 bytes | ? |
SquashFS | 256 bytes | ? | No limit defined | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
UDF | 255 bytes | Any Unicode except NUL | 1,023 bytes [da] | 16 EiB (18.44 EB) | 512 MiB (536.8 MB) to 16 TiB (17.59 TB) | ? |
UFS1 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 256 TiB (281.4 TB) | 16 EiB (18.44 EB) | Subdirectory per directory is 32,767 [117] |
UFS2 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 512 GiB (549.7 GB) to 32 PiB (36.02 PB) | 512 ZiB (604.4 ZB) [118] (279 bytes) | Subdirectory per directory is 32,767 [117] |
UniFS | No limit defined (depends on client) | ? | No limit defined (depends on client) | Available cache space at time of write (depends on platform) | No limit defined | No limit defined |
Version 6 Unix file system (V6FS) | 14 bytes | Any byte except
NUL and /
[cc]
|
No limit defined [cd] | 16 MiB (16.77 MB) [db] | 32 MiB (33.55 MB) | ? |
Version 7 Unix file system (V7FS) | 14 bytes | Any byte except NUL or /
[cc]
|
No limit defined [cd] | 1 GiB (1.073 GB) [dc] | 2 TiB (2.199 TB) | ? |
VMFS2 | 128 | Any byte except NUL or /
[cc]
|
2,048 | 4 TiB (4.398 TB) [dd] | 64 TiB (70.36 TB) | ? |
VMFS3 | 128 | Any byte except NUL or /
[cc]
|
2,048 | 2 TiB (2.199 TB) [dd] | 64 TiB (70.36 TB) | ? |
VxFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) | ? | ? |
XFS | 255 bytes [de] | Any byte except NUL [cc] | No limit defined [cd] | 8 EiB (9.223 EB) [df] | 8 EiB (9.223 EB) [df] | ? |
Xiafs | 248 bytes | Any byte except NUL [cc] | No limit defined [cd] | 64 MiB (67.10 MB) | 2 GiB (2.147 GB) | ? |
ZFS | 255 bytes | Any Unicode except NUL | No limit defined [cd] | 16 EiB (18.44 EB) | 281,474,976,710,656 YiB (2128 bytes) | 2128 |
File system | Maximum filename length | Allowable characters in directory entries [ca] | Maximum pathname length | Maximum file size | Maximum volume size [cb] | Max number of files |
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.
[119]
[120]
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.
This file, when small, can be embedded in the [Information Control Block] that describes it.
The cloned file dst shares its data blocks with the src file [..]
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.
By default, mkfs.xfs [..] will enable the reflink [=deduplication] feature.
ntfsresize(8)
".
nilfs-resize(8)
".
we can allow filenames up to 1023 bytes long
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.
The following tables compare general and technical information for a number of file systems.
File system | Stores file owner | POSIX file permissions | Creation timestamps | Last access/ read timestamps | Last metadata change timestamps | Last archive timestamps | Access control lists | Security/ MAC labels | Extended attributes/ Alternate data streams/ forks | Metadata checksum/ ECC | File system |
---|---|---|---|---|---|---|---|---|---|---|---|
Bcachefs | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Bcachefs |
BeeGFS | Yes | Yes | No | Yes | Yes | No | Yes | ? | Yes | Yes | BeeGFS |
CP/M file system | No | No | Yes [c] | No | No | No | No | No | No | No | CP/M file system |
DECtape [8] | No | No | Yes | No | No | No | No | No | No | No | DECtape |
Elektronika BK tape format | No | No | No | No | No | No | No | No | No | Yes | Elektronika BK |
Level-D | Yes | Yes | Yes | Yes (date only) | Yes | Yes | Yes (FILDAE) | No | No | No | Level-D |
RT-11 [9] | No | No | Yes (date only) | No | No | No | No | No | No | Yes | RT-11 |
Version 6 Unix file system (V6FS) [10] | Yes | Yes | No | Yes | No | No | No | No | No | No | Version 6 Unix file system (V6FS) |
Version 7 Unix file system (V7FS) [11] | Yes | Yes | No | Yes | No | No | No | No | No | No | Version 7 Unix file system (V7FS) |
exFAT | No | No | Yes | Yes | No | No | No | No | No | No | exFAT |
FAT12/ FAT16/ FAT32 | No | No | Yes | Yes | No [d] | No | No | No | No [e] | No | FAT12/ FAT16/ FAT32 |
HPFS | Yes [f] | No | Yes | Yes | No | No | No | ? | Yes | No | HPFS |
NTFS | Yes | Yes [g] | Yes | Yes | Yes | No | Yes | Yes [h] | Yes | No | NTFS |
ReFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes [i] | Yes | ReFS |
HFS | No | No | Yes | No | No | Yes | No | No | Yes | No | HFS |
HFS Plus | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | No | HFS Plus |
FFS | Yes | Yes | No | Yes | Yes | No | No | No | No | No | FFS |
UFS1 | Yes | Yes | No | Yes | Yes | No | Yes [j] | Yes [j] | No [k] | No | UFS1 |
UFS2 | Yes | Yes | Yes | Yes | Yes | No | Yes [j] | Yes [j] | Yes | Partial | UFS2 |
HAMMER | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | No | Yes | HAMMER |
LFS | Yes | Yes | No | Yes | Yes | No | No | No | No | No | LFS |
ext | Yes | Yes | No | No | No | No | No | No | No | No | ext |
Xiafs | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Xiafs |
ext2 | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | ext2 |
ext3 | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | ext3 |
ext4 | Yes | Yes | Yes | Yes | Yes | No | Yes [l] | Yes [l] | Yes | Partial [m] | ext4 |
NOVA | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | NOVA |
Lustre | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Lustre |
F2FS | Yes | Yes | Yes | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | F2FS |
GPFS | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | GPFS |
GFS | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | GFS |
NILFS | Yes | Yes | Yes | No | Yes | No | No | No | No | Yes | NILFS |
ReiserFS | Yes | Yes | No | Yes | Yes | No | Yes [l] | Yes [l] | Yes | No | ReiserFS |
Reiser4 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Reiser4 |
OCFS | No | Yes | No | No | Yes | Yes | No | No | No | No | OCFS |
OCFS2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | OCFS2 |
XFS | Yes | Yes | Partial [n] | Yes | Yes | No | Yes | Yes [l] | Yes | Yes | XFS |
JFS | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | JFS |
QFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | QFS |
BFS | Yes | Yes | Yes | No | No | No | No | No | Yes | No | BFS |
AdvFS | Yes | Yes | No | Yes | Yes | No | Yes | No | Yes | No | AdvFS |
NSS | Yes | Yes | Yes [o] | Yes [o] | Yes | Yes [o] | Yes | ? | Yes [p] [q] | No | NSS |
NWFS | Yes | ? | Yes [o] | Yes [o] | Yes | Yes [o] | Yes | ? | Yes [p] [q] | No | NWFS |
ODS-5 | Yes | Yes | Yes | ? | ? | Yes | Yes | ? | Yes [r] | No | ODS-5 |
APFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | APFS |
VxFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes [l] | No | VxFS |
UDF | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | UDF |
Fossil | Yes | Yes [s] | No | Yes | Yes | No | No | No | No | No | Fossil |
ZFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [t] | Yes [u] | Yes | ZFS |
Btrfs | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Btrfs |
Minix V1 | Yes | Yes | No | No | No | No | No | No | No | No | Minix V1 |
Minix V2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Minix V2 |
Minix V3 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | Minix V3 |
VMFS2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | VMFS2 |
VMFS3 | Yes | Yes | No | Yes | Yes | No | No | No | No | No | VMFS3 |
ISO 9660:1988 | No | No | Yes | No | No | No | No | No | No | No | ISO 9660:1988 |
Rock Ridge | Yes | Yes | No | Yes [v] | Yes | No | No [w] | No [x] | No [x] | No | Rock Ridge |
Joliet ("CDFS") | No | No | Yes | No | No | No | No | No | No | No | Joliet ("CDFS") |
ISO 9660:1999 | No | No | Yes | No | No | No | No | No | No | No | ISO 9660:1999 |
High Sierra | No | No | Yes | No | No | No | No | No | No | No | High Sierra |
SquashFS | Yes | Yes | No | No | Yes | No | No | Yes | Yes | No | SquashFS |
BlueStore/Cephfs | Yes | Yes | Yes | Yes | ? | No | Yes | Yes | Yes | Yes | BlueStore/Cephfs |
File system | Stores file owner | POSIX file permissions | Creation timestamps | Last access/read timestamps | Last metadata change timestamps | Last archive timestamps | Access control lists | Security/ MAC labels | Extended attributes/ Alternate data streams/ forks | Metadata checksum/ ECC | File system |
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 | ? |
BeeGFS | No | Yes | Yes | Yes | Yes | Yes | No | No | ? |
Level-D | No | No | No | No | No | No | No | No | ? |
RT-11 | No | No | No | No | No | No | No | No | ? |
APFS | Yes | Yes | ? | ? | Optional | Yes | ? | ? | ? |
Version 6 Unix file system (V6FS) | Yes | No | No | No | Yes | Yes | No | No | No |
Version 7 Unix file system (V7FS) | Yes | No [y] | 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 [z] | Yes | Yes [aa] | Yes | Yes | No | No | ? |
HPFS | No | No | No | No | No | Yes | No | No | ? |
NTFS | Yes | Yes [ab] | No [ac] | Yes [ac] (2000) | Yes [ad] | Yes | Yes | ? | Yes (approximately 700 bytes) |
HFS Plus | Yes [16] | Yes | No | Yes [ae] | Optional [af] | Yes | Yes [ag] | No | ? |
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 [ah] [21] [ai] | Yes | Yes | No | ? | No |
HAMMER | Yes | Yes | Yes | Yes | Yes | Yes | ? | No | ? |
LFS | Yes | Yes | Yes [aj] | No | Yes | Yes | No | No | ? |
ext | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Xiafs | Yes | Yes | No | No | Yes | Yes | No | No | ? |
ext2 | Yes | Yes | No | No | Yes | Yes | No | Yes [ak] | ? |
ext3 | Yes | Yes | Yes (2001) [al] | Yes (2001) | Yes | Yes | No | Yes | ? |
ext4 | Yes | Yes | Yes [al] | Yes | Yes, optional [24] | Yes | No | Yes | Yes (approximately 160 bytes) [25] |
NOVA | Yes | Yes | No | Yes | Yes | Yes | No | Yes | ? |
F2FS | Yes | Yes | Yes [aj] | No | Yes | Yes | No | No | ? |
Lustre | Yes | Yes | Yes [al] | Yes | Yes | Yes | Yes | No | ? |
NILFS | Yes | Yes | Yes [aj] | No | Yes | Yes | No | No | ? |
ReiserFS | Yes | Yes | Yes [am] | Yes | Yes | Yes | No | ? | ? |
Reiser4 | Yes | Yes | Yes | No | Yes | Yes | No | ? | ? |
OCFS | No | Yes | No | No | Yes | Yes | No | No | ? |
OCFS2 | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ? |
XFS | Yes | Yes | Yes | Yes | Yes [an] | Yes | Yes | ? | ? |
JFS | Yes | Yes | Yes | Yes (1990) | Yes [ao] | Yes | No | ? | ? |
QFS | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
BFS | Yes | Yes | No | Yes | Yes | Yes | ? | No | ? |
NSS | Yes | Yes | ? | Yes | Yes [ap] | Yes [ap] | Yes [aq] | No | ? |
NWFS | Yes [ar] | Yes [ar] | No | No | Yes [ap] | Yes [ap] | Yes [aq] | No | ? |
ODS-2 | Yes | Yes [as] | No | Yes | No | No | Yes | No | ? |
ODS-5 | Yes | Yes [as] | No | Yes | No | Yes | Yes | ? | ? |
UDF | Yes | Yes | Yes [aj] | Yes [aj] | Yes | Yes | No | Yes | Yes [27] |
VxFS | Yes | Yes | Yes | No | Yes | Yes | Yes | ? | ? |
Fossil | No | No | No | No | Yes | Yes | Yes | No | ? |
ZFS | Yes | Yes | Yes [at] | No [at] | Yes | Yes | No | No | ? |
Btrfs | Yes | Yes | Yes [au] | No | Yes | Yes | ? | ? | ? |
Bcachefs | Yes | Yes | Yes [av] | No | Yes | Yes | ? | ? | ? |
Minix V1 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Minix V2 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Minix V3 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
VMFS2 | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
VMFS3 | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
ReFS | Yes [aw] | Yes | ? | ? | Yes [ad] | Yes | ? | ? | ? |
ISO 9660 | No | No | No | No | No | No | No | No | ? |
Rock Ridge | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Joliet ("CDFS") | No | No | No | No | No | Yes | No | No | ? |
SquashFS | Yes | Yes | No | No | Yes | Yes | No | No | ? |
BlueStore/Cephfs | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ? |
File system | Hard links | Symbolic links | Block journaling | Metadata-only journaling | Case-sensitive | Case-preserving | File Change Log | XIP | Resident files |
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 system | Internal snapshotting / branching | Encryption | Deduplication | Data checksum/ ECC | Persistent Cache | Multiple Devices | Compression | Self-healing [ax] |
---|---|---|---|---|---|---|---|---|
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 [28] | 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 [ay] | No |
FAT16 / FAT16B / FAT16X | No | No | No | No | No | No | Partial [ay] | No |
FAT32 / FAT32X | No | No | No | No | No | No | No | No |
GFS | No | No | ? | No | No | No | No | No |
HPFS | ? | No | ? | No | No | No | No | No |
NTFS | No | Yes | Yes [az] [30] | No | No | No | Yes | No |
HFS Plus | No | No [ba] | 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 |
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 [31] | No | No [32] | No | No | No | No |
NOVA | Yes | No | No | Yes | No | No | No | ? |
F2FS | No | Yes, experimental [33] | No | No | No | No | Yes | No |
Lustre | No | No | No | No | Yes | Yes | No | No |
NILFS | Yes, continuous [aj] | No | No | Yes | No | No | No | No |
ReiserFS | No | No | No | No | No | No | No | No |
Reiser4 | ? | Yes [bb] | ? | 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 [34] | No [32] | No | No | No | No |
JFS | ? | No | ? | No | No | No | only in JFS1 on AIX [35] | No |
QFS | No | No | No | No | No | No | No | No |
BFS | No | No | No | No | No | No | No | No |
NSS | Yes | Yes | ? | No | No | No | Yes | No |
NWFS | ? | No | ? | 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 [bc] | No | Yes | No | No | No | No | No |
Fossil | Yes | No | Yes | No | No | No | Yes | No |
ZFS | Yes | Yes [bd] | Yes | Yes | Yes | Yes | Yes [be] | Yes |
Btrfs | Yes | No | Yes | Yes [bf] | No | Yes | Yes [bg] | Yes |
Bcachefs | Yes | Yes | No | Yes [bh] | No | Yes | Yes [bi] | 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 | Yes | Yes [bj] | No | No | No | Yes |
ISO 9660 | No | No | No [bk] | No | No | No | No | No |
Rock Ridge | No | No | No [bk] | No | No | No | No | No |
Joliet ("CDFS") | No | No | No [bk] | No | No | No | No | No |
SquashFS | No | No | Yes | Yes | No | No | Yes | No |
BlueStore/Cephfs | Yes | No | No | Yes | Yes | Yes | Yes | Yes |
File system | Internal snapshotting / branching | Encryption | Deduplication | Data checksum/ ECC | Persistent Cache | Multiple Devices | Compression | Self-healing [ax] |
"Online" and "offline" are synonymous with "mounted" and "not mounted".
File system | Host OS | Offline grow | Online grow | Offline shrink | Online shrink | Add and remove physical volumes |
---|---|---|---|---|---|---|
FAT16 / FAT16B / FAT16X | misc. | Yes [bl] | No | Yes [bl] | No | No |
FAT32 / FAT32X | misc. | Yes [bl] | No | Yes [bl] | No | No |
exFAT | misc. | No | No | No | No | No |
NTFS | Windows | Yes | Yes | Yes | Yes | No |
ReFS | Windows | ? | Yes | ? | No | No |
HFS | macOS | No | No | No | No | No |
HFS+ | macOS | No | Yes | No | Yes | No |
APFS | macOS | ? | ? | ? | ? | ? |
SquashFS | Linux | No | No | No | No | No |
NOVA | Linux | No | No | No | No | No |
JFS [43] | Linux | Yes | No | No | No | No |
XFS [44] | Linux | No | Yes | No [45] | No [45] | No |
Lustre [46] | Linux | ? | Yes | No | No | Yes |
F2FS [47] | Linux | Yes | No | No | No | No |
NTFS [48] | Linux | Yes | No | Yes | No | No |
ext2 [49] | Linux | Yes | No | Yes | No | No |
ext3 [49] | Linux | Yes | Yes | Yes | No | No |
ReiserFS [50] | Linux | Yes | Yes | Yes | No | No |
Reiser4 [51] | Linux | Yes | Yes | Yes | No | No |
ext4 [49] | Linux | Yes | Yes | Yes | No | No |
Btrfs [52] | Linux | Yes | Yes | Yes | Yes | Yes |
Bcachefs [41] | Linux | Yes | Yes | No | No | Yes |
NILFS [53] | Linux | No | Yes | No | Yes | No |
ZFS | misc. | No | Yes | No | Partial [54] | Yes |
JFS2 | AIX | Yes | Yes | Yes | Yes | No |
UFS2 [55] | FreeBSD | Yes | Yes (FreeBSD 10.0-RELEASE or later) | No | No | No |
HAMMER | DragonflyBSD | ? | ? | ? | ? | ? |
BlueStore/Cephfs | Linux | No | Yes | No | Yes | Yes |
File system | Sparse files | Block suballocation | Tail packing | Extents | Variable file block size [bm] | 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 | ? |
Level-D | No | No | No | Yes | No | No | No | ? |
APFS | Yes | ? | ? | Yes | ? | Yes | Yes | Yes [56] [57] |
Version 6 Unix file system (V6FS) | Yes | No | No | No | No | No | ? | No |
Version 7 Unix file system (V7FS) | Yes | No | No | No | No | No | ? | 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) [58] | Partial (only inside of Stacker 3/ 4 and DriveSpace 3 compressed volumes [29]) | No | Partial (only inside of compressed volumes) [59] | No | No | No | Yes (Linux) |
FAT16 / FAT16B / FAT16X | Partial (only inside of compressed volumes) [58] | Partial (only inside of Stacker 3/ 4 and DriveSpace 3 compressed volumes [29]) | No | Partial (only inside of compressed volumes) [59] | No | No | No | Yes (Linux) |
FAT32 / FAT32X | No | No | No | No | No | No | No | Yes (Linux) |
GFS | Yes | No | Partial [bn] | No | No | No | ? | Yes |
HPFS | No | No | No | Yes | No | No | ? | Yes (Linux) |
NTFS | Yes | Partial | No | Yes | No | No | ? | Yes (NT 6.1+; Linux) |
HFS Plus | No | No | No | Yes | No | No | ? | Yes (macOS) |
FFS | Yes | 8:1 [bo] | No | No | No | No | ? | No |
UFS1 | Yes | 8:1 [bo] | No | No | No | No | ? | No |
UFS2 | Yes | 8:1 [bo] | No | No | Yes | No | ? | Yes [60] [61] |
LFS | Yes | 8:1 [bo] | No | No | No | No | Yes | ? |
ext | Yes | No | No | No | No | No | No | No |
Xiafs | Yes | No | No | No | No | No | ? | ? |
ext2 | Yes | No [bp] | No | No | No | No | No | Yes |
ext3 | Yes | No [bp] | No | No | No | No | No | Yes |
ext4 | Yes | No [bp] | No | Yes | No | Yes | No | Yes |
NOVA | Yes | No | No | Yes | No | No | Yes | ? |
F2FS | Yes | No | No | Partial [bq] | No | Yes | Yes | Yes [62] |
Lustre | Yes | No | No | Yes | No | Yes | ? | ? |
NILFS | Yes | No | No | No | No | Yes | Yes | Yes (Linux NILFS2) |
ReiserFS | Yes | Yes [br] | Yes | No | No | No | ? | ? |
Reiser4 | Yes | Yes [br] | Yes | Yes [bs] | No | Yes | ? | Testing [63] |
OCFS | ? | No | No | Yes | No | No | ? | ? |
OCFS2 | Yes | No | No | Yes | No | No | ? | Yes (Linux) |
XFS | Yes | No | No | Yes | No | Yes | Yes, on request [64] | Yes (Linux) |
JFS | Yes | Yes | No | Yes | No | No | ? | Yes (Linux) |
QFS | ? | Yes | No | No | No | No | ? | ? |
BFS | ? | No | No | Yes | No | No | ? | Yes ( Haiku) |
NSS | ? | No | No | Yes | No | Yes | ? | ? |
NWFS | ? | Yes [bt] | No | No | No | No | ? | ? |
ODS-5 | ? | No | No | Yes | No | No | ? | ? |
VxFS | Yes | ? | No | Yes | No | No | ? | ? |
UDF | Yes | No | No | Yes | No | ? [bu] | Yes, for write once read many media | No |
Fossil | ? | No | No | No | No | No | ? | ? |
ZFS | Yes | Yes | No | No | Yes | Yes | Yes | Yes |
Btrfs | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Bcachefs | ? | ? | ? | Yes | ? | Yes | Yes | ? |
VMFS2 | Yes | Yes | No | No | No | No | ? | ? |
VMFS3 | Yes | Yes | No | No | No | No | ? | ? |
ReFS | Yes | ? | ? | ? | No | ? | Yes | Yes (NT 6.1+) |
ISO 9660 | No | No | No | Yes [bv] | No | No | No | No |
Rock Ridge | No | No | No | Yes [bv] | No | No | No | No |
Joliet ("CDFS") | No | No | No | Yes [bv] | No | No | No | No |
SquashFS | Yes | No | Yes | No | No | No | No | No |
BlueStore/Cephfs | Yes | ? | ? | ? | ? | No | Yes | Yes |
File system | Sparse files | Block suballocation | Tail packing | Extents | Variable file block size [bm] | Allocate-on-flush | Copy on write | Trim support |
File system | DOS | Linux | macOS | Windows 9x (historic) | Windows (current) |
Classic Mac OS |
FreeBSD | OS/2 | BeOS | Minix | Solaris | z/OS |
Android |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
APFS | No | Partial (read-only with apfs-fuse [66] or linux-apfs [67]) | Yes (Since macOS Sierra) |
No | No | No | No | No | No | No | No | No | No |
BeeGFS | No | Yes | ? | No | No | No | No | No | ? | ? | ? | No | No |
DECtape | No | No | No | No | No | No | No | No | No | No | No | No | No |
Level-D | No | ? | ? | No | No | No | No | No | No | No | ? | ? | No |
RT-11 | No | No | No | No | No | No | No | No | No | No | No | No | No |
Version 6 Unix file system (V6FS) | No | ? | 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 | ? | ? | ? | No | No |
exFAT | No | Yes (since 5.4, [68] 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 | With kernel 5.10 |
FAT12 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Partial (via dosdir, dosread, doswrite) | Yes | ? | 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 | ? | Yes |
FAT32 / FAT32X | Yes (from DOS 7.10) | Yes | Yes | Yes (from Windows 95 OSR2) | Yes | ? | Yes | Yes | Yes | No | Yes | ? | Yes |
GFS | No | Yes | ? | No | No | No | No | ? | ? | ? | ? | ? | No |
HPFS | Partial (with third-party drivers) | Yes | ? | No | No | ? | Yes | Yes (from OS/2 1.2) | ? | No | ? | ? | 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 [69] | 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 | ? | Yes with ntfs-3g | No | Yes with ntfs-3g | ? | 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+ [70] | Yes | No | ? | Yes | No | ? | No | No |
Apple HFS Plus | No | Partial - writing support only to unjournalled FS | Yes | No | Needs Paragon HFS+ [70] | Yes from Mac OS 8.1 | No | ? | with addon | No | ? | No | No |
FFS | No | ? | Yes | No | ? | ? | Yes | ? | ? | ? | ? | ? | No |
UFS1 | No | Partial - read only | Yes | No | Partial (with ufs2tools, read only) | ? | Yes | No | ? | ? | Yes | ? | No |
UFS2 | No | Yes | Yes | No | Partial (with ufs2tools, read only) | ? | Yes | No | ? | ? | ? | ? | No |
LFS | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
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 |
No | No | No | No | No | No | No | No | No | No | No |
ext2 | No | Yes | Needs Paragon ExtFS [73] or ext2fsx | Partial (read-only, with explore2fs) [74] | Needs Paragon ExtFS [75] or partial with Ext2 IFS [76] or ext2fsd [77] | No | Yes | No | Yes | ? | ? | ? | No |
ext3 | No | Yes | Needs Paragon ExtFS [73] or partial with ext2fsx (journal not updated on writing) | Partial (read-only, with explore2fs) [74] | Needs Paragon ExtFS [75] or partial with Ext2 IFS [76] or ext2fsd [77] | Partial (read only)[ citation needed] | Yes [78] | No | with addon | ? | Yes | ? | Yes |
ext4 | No | Yes | Needs Paragon ExtFS [73] | No | Yes, with the optional WSL2; physical and VHDX virtual disks. [79] [80] | ? | Yes since FreeBSD 12.0 [78] | No | with addon | ? | ? | ? | Yes |
NOVA | No | Yes | No | No | No | No | No | No | No | No | No | No | No |
Lustre | No | Yes [81] | ? | No | No | ? | No | ? | ? | ? | Yes | ? | No |
NILFS | No | Yes as an external kernel module | ? | No | ? | ? | No | ? | ? | ? | ? | ? | No |
F2FS | No | Yes | No | No | No | No | No | No | No | No | No | No | Yes |
ReiserFS | No | Yes | ? | No | No | ? | Partial - Read Only from 6.0 to 10.x [82] and dropped in 11.0 [83] [84] | ? | with addon | ? | ? | ? | No |
Reiser4 | No | Yes with a kernel patch | ? | No | No | ? | No | ? | ? | ? | ? | ? | No |
SpadFS | No | Yes | No | No | No | No | ? | No | No | No | No | No | No |
OCFS | No | Yes | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
OCFS2 | No | Yes | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
XFS | No | Yes | ? | No | No | ? | Partial | ? | with addon (read only) | ? | ? | ? | No |
JFS | No | Yes | ? | No | No | ? | No | Yes | ? | ? | ? | ? | No |
QFS | No | Partial - client only [85] | ? | No | No | ? | No | No | ? | ? | Yes | ? | No |
Be File System | No | Partial - read-only | ? | No | No | ? | No | No | Yes | ? | ? | ? | No |
NSS | No | Yes via EVMS [bw] | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
NWFS | Partial (with Novell drivers) | ? | ? | No | No | ? | Yes | No | ? | ? | ? | ? | No |
ODS-2 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
ODS-5 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
UDF | No | Yes | Yes | ? | Yes | ? | Yes | ? | ? | ? | Yes | ? | No |
VxFS | No | Yes | ? | No | No | ? | No | No | ? | ? | Yes | ? | No |
Fossil | No | Yes [bx] | Yes [bx] | No | No | No | Yes [bx] | No | No | No | Yes [bx] | ? | No |
ZFS | No | Yes with FUSE [86] or as an external kernel module [87] | Yes with Read/Write Developer Preview [88] | No | Yes [89] | No | Yes | No | No | No | Yes | No | No |
Btrfs | No | Yes | ? | No | Yes with WinBtrfs [90] | ? | No | ? | ? | ? | ? | ? | No |
Bcachefs | No | Yes | No | No | No | No | No | No | No | No | No | No | No |
VMFS2 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | No |
VMFS3 | No | ? | ? | No | No | ? | No | No | ? | ? | ? | ? | 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 | ? | No | Yes | ? | ? | ? | ? | ? | ? | ? | 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 | ? | No |
Joliet ("CDFS") | No | Yes | Yes | Yes | Yes | ? | Yes | Yes | Yes | ? | Yes | ? | 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. [91] [92]) | No | No | No | No | No | No |
BlueStore/Cephfs | No | Yes | No [by] | No | No [bz] | No | No [by] | No | No | No | No | No | No |
File system | DOS | Linux | macOS | Windows 9x (historic) | Windows (current) |
Classic Mac OS |
FreeBSD | OS/2 | BeOS | Minix | Solaris | z/OS | Android |
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.
File system | Maximum filename length | Allowable characters in directory entries [ca] | Maximum pathname length | Maximum file size | Maximum volume size [cb] | Max number of files |
---|---|---|---|---|---|---|
AdvFS | 255 characters | Any byte except NUL [cc] | No limit defined [cd] | 16 TiB (17.59 TB) | 16 TiB (17.59 TB) | ? |
APFS | 255 UTF-8 characters | Unicode 9.0 encoded in UTF-8 [93] | ? | 8 EiB (9.223 EB) | ? | 263 [94] |
Bcachefs | 255 bytes | Any byte except '/' and NUL | No limit defined | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | 264 |
BeeGFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
BFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 12,288 bytes to 260 GiB (279.1 GB) [ce] | 256 PiB (288.2 PB) to 2 EiB (2.305 EB) | Unlimited |
BlueStore/Cephfs | 255 characters | any byte, except null, "/" | No limit defined | Max. 264 bytes, 1 TiB (1.099 TB) by default [95] | Not limited | Not limited, default is 100,000 files per directory [96] |
Btrfs | 255 bytes | Any byte except '/' and NUL | No limit defined | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | 264 |
CBM DOS | 16 bytes | Any byte except NUL | 0 (no directory hierarchy) | 16 MiB (16.77 MB) | 16 MiB (16.77 MB) | ? |
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) | 32 MiB (33.55 MB) | 512 MiB (536.8 MB) | ? |
DECtape | 6.3 | A–Z, 0–9 | DTxN:FILNAM.EXT = 15 | 369,280 bytes (577 * 640) | 369,920 bytes (578 * 640) | ? |
Disk Operating System ( GEC DOS) | ? | ? | ? | ? at least 131,072 bytes | ? | ? |
Elektronika BK tape format | 16 bytes | ? | No directory hierarchy | 64 KiB (65.53 KB) | Not limited. Approx. 800 KiB (819.2 KB) (one side) for 90 min cassette | ? |
exFAT | 255 UTF-16 characters | Unicode except for control codes 0x0000 - 0x001F or " * / : < > ? \ | [97] | 32,760 characters with each path component no more than 255 characters [98] | 16 EiB (18.44 EB) [98] | 64 ZiB (75.55 ZB) (276 bytes) | ? |
ext | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 2 GiB (2.147 GB) | 2 GiB (2.147 GB) | ? |
ext2 | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB) [cb] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext3 | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB) [cb] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext4 | 255 bytes [99] | Any byte except NUL, / [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 16 TiB (17.59 TB) [cb] [100] | 1 EiB (1.152 EB) | 232 (static inode limit specified at creation) |
F2FS | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 4,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 | ? | ? | ? |
FAT12/ FAT16 | 8.3 (255 UCS-2 characters with LFN) [cf] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [ca] [cc] | No limit defined [cd] | 32 MiB (33.55 MB) (4 GiB (4.294 GB)) [cg] | 1 MiB (1.048 MB) to 32 MiB (33.55 MB) | ? |
FAT16B/ FAT16X | 8.3 (255 UCS-2 characters with LFN) [cf] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [ca] [cf] [cc] | No limit defined [cd] | 2 (4) GiB [cg] (2.147 GB) | 16 MiB (16.77 MB) to 2 (4) GiB (2.147 GB) | ? |
FAT32/ FAT32X | 8.3 (255 UCS-2 characters with LFN) [cf] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [ca] [cf] [cc] | 32,760 characters with each path component no more than 255 characters [98] | 4 GiB (4.294 GB) [98] | 512 MiB (536.8 MB) to 16 TiB (17.59 TB) [ch] | ? |
FATX | 42 bytes [cf] | ASCII. | No limit defined [cd] | 2 GiB (2.147 GB) | 16 MiB (16.77 MB) to 2 GiB (2.147 GB) | ? |
FFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 4 GiB (4.294 GB) | 256 TiB (281.4 TB) | ? |
Fossil | ? | ? | ? | ? | ? | ? |
GEC DOS filing system extended | 8 bytes | A–Z, 0–9. Period was directory separator | ? No limit defined (workaround for OS limit) | ? at least 131,072 bytes | ? | ? |
GEMDOS | 8.3 | A-Z, a-z, 0-9 ! @ # $ % ^ & ( ) + - = ~ ` ; ' " , < > | [ ] ( ) _ [102] | ? | ? | ? | ? |
GFS2 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB) [ci] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB) [cj] | ? |
GFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB) [ck] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB) [ck] | ? |
GPFS | 255 UTF-8 codepoints | Any byte except NUL [cc] | No limit defined [cd] | 9 EiB (10.37 EB) | 524,288 YiB (299 bytes) | ? |
HAMMER | 1023 bytes [105] | Any byte except NUL [cc] | ? | ? | 1 EiB (1.152 EB) [106] | ? |
HFS | 31 bytes | Any byte except :
|
Unlimited | 2 GiB (2.147 GB) | 2 TiB (2.199 TB) | ? |
HFS Plus | 255 UTF-16 characters [cl] | Any valid Unicode [cc] [cm] | Unlimited | slightly less than 8 EiB (9.223 EB) | slightly less than 8 EiB (9.223 EB) [107] [108] | ? |
High Sierra Format | ? | ? | ? | ? | ? | ? |
HPFS | 255 bytes | Any byte except NUL [cn] | No limit defined [cd] | 2 GiB (2.147 GB) | 2 TiB (2.199 TB) [co] | ? |
IBM SFS | 8.8 | ? | ? | Non-hierarchical [109] | ? | ? |
ISO 9660:1988 | Level 1: 8.3, Level 2 & 3: ~ 180 |
Depends on Level [cp] | ~ 180 bytes? | 4 GiB (4.294 GB) (Level 1 & 2) to 8 TiB (8.796 TB) (Level 3) [cq] | 8 TiB (8.796 TB) [cr] | ? |
ISO 9660:1999 | ? | ? | ? | ? | ? | ? |
JFS | 255 bytes | Any Unicode except NUL | No limit defined [cd] | 4 PiB (4.503 PB) | 32 PiB (36.02 PB) | ? |
JFS1 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 8 EiB (9.223 EB) | 512 TiB (562.9 TB) to 4 PiB (4.503 PB) | ? |
Joliet ("CDFS") | 64 characters | All UCS-2 code except *, /, \, :, ;, and ? [110] | ? | same as ISO 9660:1988 | same as ISO 9660:1988 | ? |
Level-D | 6.3 | A–Z, 0–9 | DEVICE:FILNAM.EXT[PROJCT,PROGRM] = 7 + 10 + 15 = 32; + 5*7 for SFDs = 67 | 34,359,738,368 words (235); 206,158,430,208 SIXBIT bytes | Approx 12 GiB (12.88 GB) (64 * 178 MiB (186.6 MB)) | ? |
Lustre | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) on ZFS | 16 EiB (18.44 EB) | ? |
MFS | 255 bytes | Any byte except :
|
No path (flat filesystem) | 256 MiB (268.4 MB) | 256 MiB (268.4 MB) | ? |
MicroDOS file system | 14 bytes | ? | ? | 16 MiB (16.77 MB) | 32 MiB (33.55 MB) | ? |
Minix V1 FS | 14 or 30 bytes, set at filesystem creation time | Any byte except NUL [cc] | No limit defined [cd] | 256.5 MiB (268.9 MB) [cs] | 64 MiB (67.10 MB) | ? |
Minix V2 FS | 14 or 30 bytes, set at filesystem creation time | Any byte except NUL [cc] | No limit defined [cd] | 2 GiB (2.147 GB) [cs] | 1 GiB (1.073 GB) | ? |
Minix V3 FS | 60 bytes | Any byte except NUL [cc] | No limit defined [cd] | 2 GiB (2.147 GB) | 4 GiB (4.294 GB) | ? |
NILFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 8 EiB (9.223 EB) | 8 EiB (9.223 EB) | ? |
NOVA | 255 bytes | Any byte except NUL, / [cc] | No limit defined [cd] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
NSS | 256 characters | Depends on namespace used [ct] | Only limited by client | 8 TiB (8.796 TB) | 8 TiB (8.796 TB) | ? |
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 |
32,767 characters with each path component (directory or filename) up to 255 characters long [cd] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB) [cu] [112] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB) [cu] [112] | 232 |
NWFS | 80 bytes [cv] | Depends on namespace used [ct] | No limit defined [cd] | 4 GiB (4.294 GB) | 1 TiB (1.099 TB) | ? |
OCFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 8 TiB (8.796 TB) | 8 TiB (8.796 TB) | ? |
OCFS2 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 4 PiB (4.503 PB) | 4 PiB (4.503 PB) | ? |
ODS-5 | 236 bytes [cw] | ? | 4,096 bytes [cx] | 1 TiB (1.099 TB) | 1 TiB (1.099 TB) | ? |
QFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) [cy] | 4 PiB (4.503 PB) [cy] | ? |
ReFS | 255 UTF-16 characters [113] | 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 |
32,767 characters with each path component (directory or filename) up to 255 characters long [113] | 16 EiB (18.44 EB) [113] [115] | 1 YiB (1.208 YB) [113] | ? |
ReiserFS | 4,032 bytes/255 characters | Any byte except NUL or '/'
[cc]
|
No limit defined [cd] | 8 TiB (8.796 TB) [cz] (v3.6), 4 GiB (4.294 GB) (v3.5) | 16 TiB (17.59 TB) | ? |
Reiser4 | 3,976 bytes | Any byte except / and NUL
|
No limit defined [cd] | 8 TiB (8.796 TB) on x86 | ? | ? |
Rock Ridge | 255 bytes | Any byte except NUL or / [cc] | No limit defined [cd] | same as ISO 9660:1988 | same as ISO 9660:1988 | ? |
RT-11 | 6.3 | A–Z, 0–9, $ | 0 (no directory hierarchy) | 33,554,432 bytes (65536 * 512) | 33,554,432 bytes | ? |
SquashFS | 256 bytes | ? | No limit defined | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
UDF | 255 bytes | Any Unicode except NUL | 1,023 bytes [da] | 16 EiB (18.44 EB) | 512 MiB (536.8 MB) to 16 TiB (17.59 TB) | ? |
UFS1 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 GiB (17.17 GB) to 256 TiB (281.4 TB) | 16 EiB (18.44 EB) | Subdirectory per directory is 32,767 [117] |
UFS2 | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 512 GiB (549.7 GB) to 32 PiB (36.02 PB) | 512 ZiB (604.4 ZB) [118] (279 bytes) | Subdirectory per directory is 32,767 [117] |
UniFS | No limit defined (depends on client) | ? | No limit defined (depends on client) | Available cache space at time of write (depends on platform) | No limit defined | No limit defined |
Version 6 Unix file system (V6FS) | 14 bytes | Any byte except
NUL and /
[cc]
|
No limit defined [cd] | 16 MiB (16.77 MB) [db] | 32 MiB (33.55 MB) | ? |
Version 7 Unix file system (V7FS) | 14 bytes | Any byte except NUL or /
[cc]
|
No limit defined [cd] | 1 GiB (1.073 GB) [dc] | 2 TiB (2.199 TB) | ? |
VMFS2 | 128 | Any byte except NUL or /
[cc]
|
2,048 | 4 TiB (4.398 TB) [dd] | 64 TiB (70.36 TB) | ? |
VMFS3 | 128 | Any byte except NUL or /
[cc]
|
2,048 | 2 TiB (2.199 TB) [dd] | 64 TiB (70.36 TB) | ? |
VxFS | 255 bytes | Any byte except NUL [cc] | No limit defined [cd] | 16 EiB (18.44 EB) | ? | ? |
XFS | 255 bytes [de] | Any byte except NUL [cc] | No limit defined [cd] | 8 EiB (9.223 EB) [df] | 8 EiB (9.223 EB) [df] | ? |
Xiafs | 248 bytes | Any byte except NUL [cc] | No limit defined [cd] | 64 MiB (67.10 MB) | 2 GiB (2.147 GB) | ? |
ZFS | 255 bytes | Any Unicode except NUL | No limit defined [cd] | 16 EiB (18.44 EB) | 281,474,976,710,656 YiB (2128 bytes) | 2128 |
File system | Maximum filename length | Allowable characters in directory entries [ca] | Maximum pathname length | Maximum file size | Maximum volume size [cb] | Max number of files |
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.
[119]
[120]
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.
This file, when small, can be embedded in the [Information Control Block] that describes it.
The cloned file dst shares its data blocks with the src file [..]
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.
By default, mkfs.xfs [..] will enable the reflink [=deduplication] feature.
ntfsresize(8)
".
nilfs-resize(8)
".
we can allow filenames up to 1023 bytes long
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.