Comparison_of_file_systems
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[lower-alpha 3] | 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[lower-alpha 4] | No | No | No | No[lower-alpha 5] | No | FAT12/FAT16/FAT32 |
HPFS | Yes[lower-alpha 6] | No | Yes | Yes | No | No | No | ? | Yes | No | HPFS |
NTFS | Yes | Yes[lower-alpha 7] | Yes | Yes | Yes | No | Yes | Yes[lower-alpha 8] | Yes | No | NTFS |
ReFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes[lower-alpha 9] | 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[lower-alpha 10] | Yes[lower-alpha 10] | No[lower-alpha 11] | No | UFS1 |
UFS2 | Yes | Yes | Yes | Yes | Yes | No | Yes[lower-alpha 10] | Yes[lower-alpha 10] | 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[lower-alpha 12] | Yes[lower-alpha 12] | Yes | No | ext2 |
ext3 | Yes | Yes | No | Yes | Yes | No | Yes[lower-alpha 12] | Yes[lower-alpha 12] | Yes | No | ext3 |
ext4 | Yes | Yes | Yes | Yes | Yes | No | Yes[lower-alpha 12] | Yes[lower-alpha 12] | Yes | Partial[lower-alpha 13] | 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[lower-alpha 12] | Yes[lower-alpha 12] | Yes | No | F2FS |
GPFS | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | GPFS |
GFS | Yes | Yes | No | Yes | Yes | No | Yes[lower-alpha 12] | Yes[lower-alpha 12] | Yes | No | GFS |
NILFS | Yes | Yes | Yes | No | Yes | No | No | No | No | Yes | NILFS |
ReiserFS | Yes | Yes | No | Yes | Yes | No | Yes[lower-alpha 12] | Yes[lower-alpha 12] | 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[lower-alpha 14] | Yes | Yes | No | Yes | Yes[lower-alpha 12] | 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[lower-alpha 15] | Yes[lower-alpha 15] | Yes | Yes[lower-alpha 15] | Yes | ? | Yes[lower-alpha 16][lower-alpha 17] | No | NSS |
NWFS | Yes | ? | Yes[lower-alpha 15] | Yes[lower-alpha 15] | Yes | Yes[lower-alpha 15] | Yes | ? | Yes[lower-alpha 16][lower-alpha 17] | No | NWFS |
ODS-5 | Yes | Yes | Yes | ? | ? | Yes | Yes | ? | Yes[lower-alpha 18] | No | ODS-5 |
APFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | APFS |
VxFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes[lower-alpha 12] | No | VxFS |
UDF | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | UDF |
Fossil | Yes | Yes[lower-alpha 19] | No | Yes | Yes | No | No | No | No | No | Fossil |
ZFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[lower-alpha 20] | Yes[lower-alpha 21] | 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[lower-alpha 22] | Yes | No | No[lower-alpha 23] | No[lower-alpha 24] | No[lower-alpha 24] | 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 capabilities
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[lower-alpha 25] | 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[lower-alpha 26] | Yes | Yes[lower-alpha 27] | Yes | Yes | No | No | ? |
HPFS | No | No | No | No | No | Yes | No | No | ? |
NTFS | Yes | Yes[lower-alpha 28] | No[lower-alpha 29] | Yes[lower-alpha 29] (2000) | Yes[lower-alpha 30] | Yes | Yes | ? | Yes (approximately 700 bytes) |
HFS Plus | Yes[16] | Yes | No | Yes[lower-alpha 31] | Optional[lower-alpha 32] | Yes | Yes[lower-alpha 33] | 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[lower-alpha 34] [21] [lower-alpha 35] | Yes | Yes | No | ? | No |
HAMMER | Yes | Yes | Yes | Yes | Yes | Yes | ? | No | ? |
LFS | Yes | Yes | Yes[lower-alpha 36] | 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[lower-alpha 37] | ? |
ext3 | Yes | Yes | Yes (2001) [lower-alpha 38] | Yes (2001) | Yes | Yes | No | Yes | ? |
ext4 | Yes | Yes | Yes[lower-alpha 38] | 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[lower-alpha 36] | No | Yes | Yes | No | No | ? |
Lustre | Yes | Yes | Yes[lower-alpha 38] | Yes | Yes | Yes | Yes | No | ? |
NILFS | Yes | Yes | Yes[lower-alpha 36] | No | Yes | Yes | No | No | ? |
ReiserFS | Yes | Yes | Yes[lower-alpha 39] | 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[lower-alpha 40] | Yes | Yes | ? | ? |
JFS | Yes | Yes | Yes | Yes (1990) | Yes[lower-alpha 41] | Yes | No | ? | ? |
QFS | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
BFS | Yes | Yes | No | Yes | Yes | Yes | ? | No | ? |
NSS | Yes | Yes | ? | Yes | Yes[lower-alpha 42] | Yes[lower-alpha 42] | Yes[lower-alpha 43] | No | ? |
NWFS | Yes[lower-alpha 44] | Yes[lower-alpha 44] | No | No | Yes[lower-alpha 42] | Yes[lower-alpha 42] | Yes[lower-alpha 43] | No | ? |
ODS-2 | Yes | Yes[lower-alpha 45] | No | Yes | No | No | Yes | No | ? |
ODS-5 | Yes | Yes[lower-alpha 45] | No | Yes | No | Yes | Yes | ? | ? |
UDF | Yes | Yes | Yes[lower-alpha 36] | Yes[lower-alpha 36] | 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[lower-alpha 46] | No[lower-alpha 46] | Yes | Yes | No | No | ? |
Btrfs | Yes | Yes | Yes[lower-alpha 47] | No | Yes | Yes | ? | ? | ? |
Bcachefs | Yes | Yes | Yes[lower-alpha 48] | 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[lower-alpha 49] | Yes | ? | ? | Yes[lower-alpha 30] | 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 |
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 system | Internal snapshotting / branching | Encryption | Deduplication | Data checksum/ ECC | Persistent Cache | Multiple Devices | Compression | Self-healing[lower-alpha 50] |
---|---|---|---|---|---|---|---|---|
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[lower-alpha 51] | No |
FAT16 / FAT16B / FAT16X | No | No | No | No | No | No | Partial[lower-alpha 51] | 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[lower-alpha 52][30] | No | No | No | Yes | No |
HFS Plus | No | No[lower-alpha 53] | 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[lower-alpha 36] | No | No | Yes | No | No | No | No |
ReiserFS | No | No | No | No | No | No | No | No |
Reiser4 | ? | Yes[lower-alpha 54] | ? | 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[lower-alpha 55] | No | Yes | No | No | No | No | No |
Fossil | Yes | No | Yes | No | No | No | Yes | No |
ZFS | Yes | Yes[lower-alpha 56] | Yes | Yes | Yes | Yes | Yes[lower-alpha 57] | Yes |
Btrfs | Yes | No | Yes | Yes[lower-alpha 58] | No | Yes | Yes[lower-alpha 59] | Yes |
Bcachefs | Yes | Yes | No | Yes[lower-alpha 60] | No | Yes | Yes[lower-alpha 61] | 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[lower-alpha 62] | No | No | No | Yes |
ISO 9660 | No | No | No[lower-alpha 63] | No | No | No | No | No |
Rock Ridge | No | No | No[lower-alpha 63] | No | No | No | No | No |
Joliet ("CDFS") | No | No | No[lower-alpha 63] | 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[lower-alpha 50] |
Resize capabilities
"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[lower-alpha 64] | No | Yes[lower-alpha 64] | No | No |
FAT32 / FAT32X | misc. | Yes[lower-alpha 64] | No | Yes[lower-alpha 64] | 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 |
Allocation and layout policies
File system | Sparse files | Block suballocation | Tail packing | Extents | Variable file block size[lower-alpha 65] | 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[lower-alpha 66] | 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[lower-alpha 67] | No | No | No | No | ? | No |
UFS1 | Yes | 8:1[lower-alpha 67] | No | No | No | No | ? | No |
UFS2 | Yes | 8:1[lower-alpha 67] | No | No | Yes | No | ? | Yes[60][61] |
LFS | Yes | 8:1[lower-alpha 67] | No | No | No | No | Yes | ? |
ext | Yes | No | No | No | No | No | No | No |
Xiafs | Yes | No | No | No | No | No | ? | ? |
ext2 | Yes | No[lower-alpha 68] | No | No | No | No | No | Yes |
ext3 | Yes | No[lower-alpha 68] | No | No | No | No | No | Yes |
ext4 | Yes | No[lower-alpha 68] | No | Yes | No | Yes | No | Yes |
NOVA | Yes | No | No | Yes | No | No | Yes | ? |
F2FS | Yes | No | No | Partial[lower-alpha 69] | 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[lower-alpha 70] | Yes | No | No | No | ? | ? |
Reiser4 | Yes | Yes[lower-alpha 70] | Yes | Yes[lower-alpha 71] | 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[lower-alpha 72] | No | No | No | No | ? | ? |
ODS-5 | ? | No | No | Yes | No | No | ? | ? |
VxFS | Yes | ? | No | Yes | No | No | ? | ? |
UDF | Yes | No | No | Yes | No | ?[lower-alpha 73] | 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[lower-alpha 74] | No | No | No | No |
Rock Ridge | No | No | No | Yes[lower-alpha 74] | No | No | No | No |
Joliet ("CDFS") | No | No | No | Yes[lower-alpha 74] | 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[lower-alpha 65] | 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[lower-alpha 75] | ? | 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[lower-alpha 76] | Yes[lower-alpha 76] | No | No | No | Yes[lower-alpha 76] | No | No | No | Yes[lower-alpha 76] | ? | 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[lower-alpha 77] | No | No[lower-alpha 78] | No | No[lower-alpha 77] | 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[lower-alpha 79] | Maximum pathname length | Maximum file size | Maximum volume size[lower-alpha 80] | Max number of files |
---|---|---|---|---|---|---|
AdvFS | 255 characters | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 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[lower-alpha 81] | No limit defined[lower-alpha 82] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
BFS | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 12,288 bytes to 260 GiB (279.1 GB)[lower-alpha 83] | 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[lower-alpha 81] | No limit defined[lower-alpha 82] | 2 GiB (2.147 GB) | 2 GiB (2.147 GB) | ? |
ext2 | 255 bytes | Any byte except NUL, /[lower-alpha 81] | No limit defined[lower-alpha 82] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB)[lower-alpha 80] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext3 | 255 bytes | Any byte except NUL, /[lower-alpha 81] | No limit defined[lower-alpha 82] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB)[lower-alpha 80] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext4 | 255 bytes[99] | Any byte except NUL, /[lower-alpha 81] | No limit defined[lower-alpha 82] | 16 GiB (17.17 GB) to 16 TiB (17.59 TB)[lower-alpha 80][100] | 1 EiB (1.152 EB) | 232 (static inode limit specified at creation) |
F2FS | 255 bytes | Any byte except NUL, /[lower-alpha 81] | No limit defined[lower-alpha 82] | 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)[lower-alpha 84] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [lower-alpha 79][lower-alpha 81] | No limit defined[lower-alpha 82] | 32 MiB (33.55 MB) (4 GiB (4.294 GB))[lower-alpha 85] | 1 MiB (1.048 MB) to 32 MiB (33.55 MB) | ? |
FAT16B/FAT16X | 8.3 (255 UCS-2 characters with LFN)[lower-alpha 84] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [lower-alpha 79][lower-alpha 84][lower-alpha 81] | No limit defined[lower-alpha 82] | 2 (4) GiB[lower-alpha 85] (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)[lower-alpha 84] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [lower-alpha 79][lower-alpha 84][lower-alpha 81] | 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)[lower-alpha 86] | ? |
FATX | 42 bytes[lower-alpha 84] | ASCII. | No limit defined[lower-alpha 82] | 2 GiB (2.147 GB) | 16 MiB (16.77 MB) to 2 GiB (2.147 GB) | ? |
FFS | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 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[lower-alpha 81] | No limit defined[lower-alpha 82] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB)[lower-alpha 87] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB)[lower-alpha 88] | ? |
GFS | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB)[lower-alpha 89] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB)[lower-alpha 89] | ? |
GPFS | 255 UTF-8 codepoints | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 9 EiB (10.37 EB) | 524,288 YiB (299 bytes) | ? |
HAMMER | 1023 bytes[105] | Any byte except NUL[lower-alpha 81] | ? | ? | 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[lower-alpha 90] | Any valid Unicode[lower-alpha 81][lower-alpha 91] | 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[lower-alpha 92] | No limit defined[lower-alpha 82] | 2 GiB (2.147 GB) | 2 TiB (2.199 TB)[lower-alpha 93] | ? |
IBM SFS | 8.8 | ? | ? | Non-hierarchical[109] | ? | ? |
ISO 9660:1988 | Level 1: 8.3, Level 2 & 3: ~ 180 |
Depends on Level[lower-alpha 94] | ~ 180 bytes? | 4 GiB (4.294 GB) (Level 1 & 2) to 8 TiB (8.796 TB) (Level 3)[lower-alpha 95] | 8 TiB (8.796 TB)[lower-alpha 96] | ? |
ISO 9660:1999 | ? | ? | ? | ? | ? | ? |
JFS | 255 bytes | Any Unicode except NUL | No limit defined[lower-alpha 82] | 4 PiB (4.503 PB) | 32 PiB (36.02 PB) | ? |
JFS1 | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 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[lower-alpha 81] | No limit defined[lower-alpha 82] | 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[lower-alpha 81] | No limit defined[lower-alpha 82] | 256.5 MiB (268.9 MB) [lower-alpha 97] | 64 MiB (67.10 MB) | ? |
Minix V2 FS | 14 or 30 bytes, set at filesystem creation time | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 2 GiB (2.147 GB) [lower-alpha 97] | 1 GiB (1.073 GB) | ? |
Minix V3 FS | 60 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 2 GiB (2.147 GB) | 4 GiB (4.294 GB) | ? |
NILFS | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 8 EiB (9.223 EB) | 8 EiB (9.223 EB) | ? |
NOVA | 255 bytes | Any byte except NUL, /[lower-alpha 81] | No limit defined[lower-alpha 82] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
NSS | 256 characters | Depends on namespace used[lower-alpha 98] | 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[lower-alpha 82] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB)[lower-alpha 99][112] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB)[lower-alpha 99][112] | 232 |
NWFS | 80 bytes[lower-alpha 100] | Depends on namespace used[lower-alpha 98] | No limit defined[lower-alpha 82] | 4 GiB (4.294 GB) | 1 TiB (1.099 TB) | ? |
OCFS | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 8 TiB (8.796 TB) | 8 TiB (8.796 TB) | ? |
OCFS2 | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 4 PiB (4.503 PB) | 4 PiB (4.503 PB) | ? |
ODS-5 | 236 bytes[lower-alpha 101] | ? | 4,096 bytes[lower-alpha 102] | 1 TiB (1.099 TB) | 1 TiB (1.099 TB) | ? |
QFS | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 16 EiB (18.44 EB)[lower-alpha 103] | 4 PiB (4.503 PB)[lower-alpha 103] | ? |
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 '/' [lower-alpha 81] |
No limit defined[lower-alpha 82] | 8 TiB (8.796 TB)[lower-alpha 104] (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[lower-alpha 82] | 8 TiB (8.796 TB) on x86 | ? | ? |
Rock Ridge | 255 bytes | Any byte except NUL or /[lower-alpha 81] | No limit defined[lower-alpha 82] | 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[lower-alpha 105] | 16 EiB (18.44 EB) | 512 MiB (536.8 MB) to 16 TiB (17.59 TB) | ? |
UFS1 | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 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[lower-alpha 81] | No limit defined[lower-alpha 82] | 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 / [lower-alpha 81] |
No limit defined[lower-alpha 82] | 16 MiB (16.77 MB)[lower-alpha 106] | 32 MiB (33.55 MB) | ? |
Version 7 Unix file system (V7FS) | 14 bytes | Any byte except NUL or / [lower-alpha 81] |
No limit defined[lower-alpha 82] | 1 GiB (1.073 GB)[lower-alpha 107] | 2 TiB (2.199 TB) | ? |
VMFS2 | 128 | Any byte except NUL or / [lower-alpha 81] |
2,048 | 4 TiB (4.398 TB)[lower-alpha 108] | 64 TiB (70.36 TB) | ? |
VMFS3 | 128 | Any byte except NUL or / [lower-alpha 81] |
2,048 | 2 TiB (2.199 TB)[lower-alpha 108] | 64 TiB (70.36 TB) | ? |
VxFS | 255 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 16 EiB (18.44 EB) | ? | ? |
XFS | 255 bytes[lower-alpha 109] | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 8 EiB (9.223 EB)[lower-alpha 110] | 8 EiB (9.223 EB)[lower-alpha 110] | ? |
Xiafs | 248 bytes | Any byte except NUL[lower-alpha 81] | No limit defined[lower-alpha 82] | 64 MiB (67.10 MB) | 2 GiB (2.147 GB) | ? |
ZFS | 255 bytes | Any Unicode except NUL | No limit defined[lower-alpha 82] | 16 EiB (18.44 EB) | 281,474,976,710,656 YiB (2128 bytes) | 2128 |
File system | Maximum filename length | Allowable characters in directory entries[lower-alpha 79] | Maximum pathname length | Maximum file size | Maximum volume size[lower-alpha 80] | Max number of files |
- Microsoft first introduced FAT32 in MS-DOS 7.1 / Windows 95 OSR2 (OEM Service Release 2) and then later in Windows 98. NT-based Windows did not have any support for FAT32 up to Windows NT4; Windows 2000 was the first NT-based Windows OS that received the ability to work with it.
- Particular Installable File System drivers and operating systems may not support extended attributes on FAT12 and FAT16. The OS/2 and Windows NT filesystem drivers for FAT12 and FAT16 support extended attributes (using a "EA DATA. SF" pseudo-file to reserve the clusters allocated to them). Other filesystem drivers for other operating systems do not.
- The f-node contains a field for a user identifier. This is not used except by OS/2 Warp Server, however.
- NTFS access control lists can express any access policy possible using simple POSIX file permissions (and far more), but use of a POSIX-like interface is not supported without an add-on such as Services for UNIX or Cygwin.
- As of Vista, NTFS has support for Mandatory Labels, which are used to enforce Mandatory Integrity Control.[12]
- Some operating systems implemented extended attributes as a layer over UFS1 with a parallel backing file (e.g., FreeBSD 4.x).
- Some Installable File System drivers and operating systems may not support extended attributes, access control lists or security labels on these filesystems. Linux kernels prior to 2.6.x may either be missing support for these altogether or require a patch.
- The local time, time zone/UTC offset, and date are derived from the time settings of the reference/single timesync source in the NDS tree.
- Some file and directory metadata is stored on the NetWare server irrespective of whether Directory Services is installed or not, like date/time of creation, file size, purge status, etc; and some file and directory metadata is stored in NDS/eDirectory, like file/object permissions, ownership, etc.
- File permission in 9P are a variation of the traditional Unix permissions with some minor changes, e.g. the suid bit is replaced by a new 'exclusive access' bit.
- libburnia can back up and restore ACLs with file system creation and extraction programs, but no kernel support exists.
- libburnia can back up and restore extended attributes and MAC labels with file system creation and extraction programs, but no kernel support exists.
- System V Release 4, and some other Unix systems, retrofitted symbolic links to their versions of the Version 7 Unix file system, although the original version didn't support them.
- As of Windows Vista, NTFS fully supports symbolic links.[15] NTFS 3.0 (Windows 2000) and higher can create junctions, which allow entire directories (but not individual files) to be mapped to elsewhere in the directory tree of the same partition (file system). These are implemented through reparse points, which allow the normal process of filename resolution to be extended in a flexible manner.
- While NTFS itself supports case sensitivity, the Win32 environment subsystem cannot create files whose names differ only by case for compatibility reasons. When a file is opened for writing, if there is any existing file whose name is a case-insensitive match for the new file, the existing file is truncated and opened for writing instead of a new file with a different name being created. Other subsystems like e. g. Services for Unix, that operate directly above the kernel and not on top of Win32 can have case-sensitivity.
- Although often believed to be case sensitive, HFS Plus normally is not. The typical default installation is case-preserving only. From Mac OS X 10.3 on the command newfs_hfs -s will create a case-sensitive new file system.[17] HFS Plus version 5 optionally supports case-sensitivity. However, since case-sensitivity is fundamentally different from case-insensitivity, a new signature was required so existing HFS Plus utilities would not see case-sensitivity as a file system error that needed to be corrected. Since the new signature is 'HX', it is often believed this is a new filesystem instead of a simply an upgraded version of HFS Plus.[18][19]
- Mac OS X Tiger (10.4) and late versions of Panther (10.3) provide file change logging (it's a feature of the file system software, not of the volume format, actually).[20]
- "Soft dependencies" (softdep) in NetBSD, called "soft updates" in FreeBSD provide meta-data consistency at all times without double writes (journaling)
- UDF, LFS, and NILFS are log-structured file systems and behave as if the entire file system were a journal.
- Particular Installable File System drivers and operating systems may not support case sensitivity for JFS. OS/2 does not, and Linux has a mount option for disabling case sensitivity.
- The file change logs, last entry change timestamps, and other filesystem metadata, are all part of the extensive suite of auditing capabilities built into NDS/eDirectory called NSure Audit.[26]
- Bcachefs is a transactional filesystem using copy-on-write semantics, guaranteeing an always-consistent on-disk state without the use of a traditional journal. Journal commits are fairly expensive operations as they require issuing FLUSH and FUA operations to the underlying devices. By default, a journal flush is issued one second after a filesystem update has been done, which primarily records btree updates ordered by when they occurred. This option may be useful on a personal workstation or laptop, and perhaps less appropriate on a server.
- A file system is self-healing if its capable to proactively autonomously detect and correct all but grave errors, faults and corruptions online both in internal metadata AND data. See US7694191B1 as example. This usually requires full checksumming as well as internal redundancy as well as corresponding logic.
- only inside of Stacker 3/4 and DriveSpace 3 compressed volumes[29]
- HFS+ does not actually encrypt files: to implement FileVault, OS X creates an HFS+ filesystem in a sparse, encrypted disk image that is automatically mounted over the home directory when the user logs in.
- LZJB (optimized for performance while providing decent data compression)
LZ4 (faster & higher ratio than lzjb)
gzip levels: 1 (fastest) to 9 (best), default is 6
zstd positive: 1 (fastest) to 19 (best), default is 3
zstd negative: 1(best & default)-10, 20, 30, …, 100, 500, 1000(fastest)
zle: compresses runs of zeros.[39] - none (default)
The three currently supported algorithms are gzip, LZ4, zstd.
The compression level may also be optionally specified, as an integer between 0 and 15, e.g. lz4:15. 0 specifies the default compression level, 1 specifies the fastest and lowest compression ratio, and 15 the slowest and best compression ratio.[42] - With software based on GNU Parted.
- Each possible size (in sectors) of file tail has a corresponding suballocation block chain in which all the tails of that size are stored. The overhead of managing suballocation block chains is usually less than the amount of block overhead saved by being able to increase the block size but the process is less efficient if there is not much free disk space.
- Provided in Plan 9 from User Space
- These are the restrictions imposed by the on-disk directory entry structures themselves. Particular Installable File System drivers may place restrictions of their own on file and directory names; operating systems may also place restrictions of their own, across all filesystems. DOS, Windows, and OS/2 allow only the following characters from the current 8-bit OEM codepage in SFNs: A-Z, 0-9, characters ! # $ % & ' ( ) - @ ^ _ ` { } ~, as well as 0x80-0xFF and 0x20 (SPACE). Specifically, lowercase letters a-z, characters " * / : < > ? \ | + , . ; = [ ], control codes 0x00-0x1F, 0x7F and in some cases also 0xE5 are not allowed.) In LFNs, any UCS-2 Unicode except \ / : ? * " > < | and NUL are allowed in file and directory names across all filesystems. Unix-like systems disallow the characters / and NUL in file and directory names across all filesystems.
- For filesystems that have variable allocation unit (block/cluster) sizes, a range of size are given, indicating the maximum volume sizes for the minimum and the maximum possible allocation unit sizes of the filesystem (e.g. 512 bytes and 128 KiB (131.0 KB) for FAT — which is the cluster size range allowed by the on-disk data structures, although some Installable File System drivers and operating systems do not support cluster sizes larger than 32 KiB (32.76 KB)).
- In these filesystems the directory entries named "." and ".." have special status. Directory entries with these names are not prohibited, and indeed exist as normal directory entries in the on-disk data structures. However, they are mandatory directory entries, with mandatory values, that are automatically created in each directory when it is created; and directories without them are considered corrupt.
- The on-disk structures have no inherent limit. Particular Installable File System drivers and operating systems may impose limits of their own, however. Limited by its Current Directory Structure (CDS), DOS does not support more than 32 directory levels (except for DR DOS 3.31-6.0) or full pathnames longer than 66 bytes for FAT, or 255 characters for LFNs. Windows NT does not support full pathnames longer than 32,767 bytes for NTFS. Older POSIX APIs which rely on the
PATH_MAX
constant have a limit of 4,096 bytes on Linux but this can be worked around. Linux itself has no hard path length limits.[119][120] - Depends on whether the FAT12, FAT16, and FAT32 implementation has support for LFNs. Where it does not, as in OS/2, DOS, Windows 95, Windows 98 in DOS-only mode and the Linux "msdos" driver, file names are limited to 8.3 format of 8-bit OEM characters (space padded in both the basename and extension parts) and may not contain NUL (end-of-directory marker) or character 5 (replacement for character 229 which itself is used as deleted-file marker). Short names also must not contain lowercase letters. A few special device names (CON, NUL, AUX, PRN, LPT1, COM1, etc.) should be avoided, as some operating systems (notably DOS, OS/2 and Windows) reserve them.
- While FAT32 partitions this large work fine once created, some software won't allow creation of FAT32 partitions larger than 32 GiB (34.35 GB). This includes, notoriously, the Windows XP installation program and the Disk Management console in Windows 2000, XP, 2003 and Vista. Use FDISK from a Windows ME Emergency Boot Disk to avoid.[101]
- Depends on CPU arch. For 32bit kernels the max is 16 TiB (17.59 TB). [103]
- Depends on CPU arch. For 32bit kernels the max is 16 TiB (17.59 TB). [104]
- HFS Plus mandates support for an escape sequence to allow arbitrary Unicode. Users of older software might see the escape sequences instead of the desired characters.
- The "." and ".." directory entries in HPFS that are seen by applications programs are a partial fiction created by the Installable File System drivers. The on-disk data structure for a directory does not contain entries by those names, but instead contains a special "start" entry. Whilst on-disk directory entries by those names are not physically prohibited, they cannot be created in normal operation, and a directory containing such entries is corrupt.
- This is the limit of the on-disk structures. The HPFS Installable File System driver for OS/2 uses the top 5 bits of the volume sector number for its own use, limiting the volume size that it can handle to 64 GiB (68.71 GB).
- Through the use of multi-extents, a file can consist of multiple segments, each up to 4 GiB (4.294 GB) in size. See ISO 9660#The 2 GiB (2.147 GB) (or 4 GiB (4.294 GB) depending on implementation) file size limit
- This is the limit of the on-disk structures. The NTFS driver for Windows NT limits the volume size that it can handle to 256 TiB (281.4 TB) and the file size to 16 TiB (17.59 TB) respectively; in Windows 10 version 1709, the limit is 8 PiB (9.007 PB) when using 2 MiB (2.097 MB) cluster size.
- Some namespaces had lower name length limits. "LONG" had an 80-byte limit, "NWFS" 80 bytes, "NFS" 40 bytes and "DOS" imposed 8.3 filename.
- The file size in the inode is 1 8-bit byte followed by 1 16-bit word, for 24 bits. The actual maximum was 8,847,360 bytes, with 7 singly-indirect blocks and 1 doubly-indirect block; PWB/UNIX 1.0's variant had 8 singly-indirect blocks, making the maximum 524,288 bytes or half a MB.
- The actual maximum was 1,082,201,088 bytes, with 10 direct blocks, 1 singly-indirect block, 1 doubly-indirect block, and 1 triply-indirect block. The 4.0BSD and 4.1BSD versions, and the System V version, used 1,024-byte blocks rather than 512-byte blocks, making the maximum 4,311,812,608 bytes or approximately 4 GiB (4.294 GB).
- Note that the filename can be much longer XFS#Extended attributes
- Shustek, Len (2016-08-02). "In His Own Words: Gary Kildall". Remarkable People. Computer History Museum.
- Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott; Kildall, Kristin (eds.). "Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry" (Manuscript, part 1). Kildall Family. Retrieved 2016-11-17.
- Mace, Scott (1986-09-22). "Extensions to MS-DOS Run CD-ROM". InfoWorld. 8 (38): 1, 8. Retrieved 2016-11-09.
- Warren, David (20 October 1993). "Polycenter File System - - HELP". Archived from the original on 9 March 2012.
- "Sun Microsystems Expands High Performance Computing Portfolio with Definitive Agreement to Acquire Assets of Cluster File Systems, Including the Lustre File System" (Press release). Santa Clara, Calif.: Sun Microsystems, Inc. 12 September 2007. Archived from the original on 2 October 2007.
- Matthew Dillon (2018-12-09). "hammer2/DESIGN". BSD Cross Reference. DragonFly BSD. Retrieved 2019-03-06.
- "Huawei announces the EROFS Linux file system intended for Android devices". XDA Developer. June 1, 2018.
- "RT–11 Volume and File Formats Manual" (PDF). Digital Equipment Corporation. August 1991. pp. 1–26 .. 1–32.
- "RT–11 Volume and File Formats Manual" (PDF). Digital Equipment Corporation. August 1991. pp. 1–4 .. 1–12.
- "Format of the Unix 6 file system" (PDF). Archived from the original (PDF) on 2016-09-21. Retrieved 2016-02-21.
- See dinode structure on page 355 (FILESYS(5)) of "Unix Programmers Manual" (PDF) (Seventh ed.). Murray Hill, New Jersey: Bell Telephone Laboratories. January 1979. Retrieved 2016-02-21.
- "Mandatory Integrity Control". Microsoft Docs. 25 March 2021. Retrieved 2022-08-14.
- Siracusa, John (2011-07-20). "Mac OS X 10.7 Lion: the Ars Technica review". Ars Technica. Retrieved 14 December 2017.
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.
newfs_hfs(8)
– Darwin and macOS System Manager's Manual- "File System Comparisons". Apple. Archived from the original on 2008-10-06. (hasn't been updated to discuss HFSX)
- "Technical Note TN1150: HFS Plus Volume Format". Apple. (Very technical overview of HFS Plus and HFSX.)
- "fslogger". Archived from the original on 2008-09-18. Retrieved 2006-08-03.
- McKusick, Marshall Kirk; Roberson, Jeff. "Journaled Soft-updates" (PDF).
- "2. High Level Design — The Linux Kernel documentation § 2.10. Inline Data". www.kernel.org. Retrieved 2022-12-24.
- "Universal Disk Format Specification – Revision 2.60" (PDF). p. 34.
This file, when small, can be embedded in the [Information Control Block] that describes it.
- "clonefile(2)".
The cloned file dst shares its data blocks with the src file [..]
- "DMSDOS CVF module" (dmsdoc.doc). 0.9.2.0. 1998-11-19. Archived from the original on 2016-11-02. Retrieved 2016-11-01.
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.
- "About Data Deduplication". 31 May 2018.
- "mkfs.xfs(8) from xfsprogs 5.10.0-4".
By default, mkfs.xfs [..] will enable the reflink [=deduplication] feature.
- "JFS data compression". IBM. Retrieved 2020-07-26.
- Moffat, Darren (July 2012). "How to Manage ZFS Data Encryption". Retrieved 2022-08-14.
- "Release zfs-0.8.0". GitHub. 2020-01-21.
- "zfsprops.7 — OpenZFS documentation". GitHub. 2023-08-26. Retrieved 2023-09-14.
- "Compression — BTRFS documentation". GitHub. 2023-07-26. Retrieved 2023-09-14.
- Overstreet, Kent (18 Dec 2021). "bcachefs: Principles of Operation" (PDF). Retrieved 10 May 2023.
- "bcachefs/ Compression". 11 Sep 2023. Retrieved 14 Jan 2024.
- "Shrinking Support - xfs.org". XFS Wiki. 2022-07-17. Archived from the original on 2022-07-17. Retrieved 2022-12-18.
- "Frequently Asked Questions (Old Wiki)". Retrieved 5 May 2018.
resize2fs(8)
– Linux Programmer's Manual – Administration and Privileged Commands- "Resize reiserfs". Reiserfs wiki.
- "Just Enough Operating System (JeOS): Technical Information | SUSE". www.suse.com. Retrieved 28 April 2018.
- Mirror and single-disk vdevs can be wholly removed from a pool, but not RAID-Z vdevs. "OpenZFS 7614 - zfs device evacuation/removal". GitHub.
- Jaeguk Kim (2014-09-22). "[PATCH 2/3] f2fs: Introduce FITRIM in f2fs_ioctl". linux-kernel (Mailing list).
- "Reiser4 discard support". Reiser4 FS Wiki.
- Android Kernel File System Support (Documentation). Android Open Source Project. Retrieved 2023-01-11.
- Namjae Jeon (20 January 2020). "[PATCH v12 00/13] add the latest exfat driver". linux-kernel (Mailing list). Retrieved 18 December 2021.
- "Porting an Ancient Filesystem to Modern Linux". Time To Pull The Plug. Archived from the original on 2017-06-21. Retrieved 2016-04-22.
- "A port of the xiafs filesystem to modern Linux kernels". Github (cdtk). 2019-06-28.
- "Explore2fs". chrysocome.net.
- Branten, Bo. "Ext2Fsd Project: Open source ext3/4 file system driver for Windows (2K/XP/WIN7/WIN8)". Archived from the original on 2012-07-23. Retrieved 2012-07-24.
- Hanselman, Scott (2021-11-02). "WSL2 can now mount Linux ext4 disks directly". Newsletter of Wonderful Things. Retrieved 2023-10-01.
- Microsoft Corp. (2023-07-17). "Windows technical documentation: Windows development environment: Windows Subsystem for Linux". Microsoft Learn (published 2021-12-09). Archived from the original on 2021-12-27. Retrieved 2023-10-01.
- "FreeBSD 10.4 MAN page - reiserfs". www.freebsd.org. Retrieved 2019-08-05.
- "FreeBSD 11 and Reiserfs". www.linuxquestions.org. 2016-12-19. Retrieved 2019-08-05.
- "'svn commit: r300062 - in head/sys: gnu/fs modules modules/reiserfs' - MARC". marc.info. Retrieved 2019-08-05.
- "ZFS Filesystem for FUSE/Linux". Wizy Wiki. 30 November 2009. Archived from the original on 13 May 2013.
- "ZFS on Linux". Lawrence Livermore National Laboratory.
- Kim, Arnold (4 October 2007). "Apple Seeds ZFS Read/Write Developer Preview 1.1 for Leopard". Mac Rumors.
- "WinBtrfs". Github (maharmstone). 2020-11-22.
- "squashfs-tools". Freshports.
- "fusefs-squashfuse". Freshports.
- "File System Functionality Comparison". Microsoft Docs. Microsoft. 2021-01-07. Retrieved 2022-08-14.
- Vimal A.R (16 July 2016). "Max file-name length in an EXT4 file system". arvimal.blog. Archived from the original on 28 February 2021.
- "Interviews/EricSandeen". Fedora Project Wiki. 9 June 2008.
- "Limitations of the FAT32 File System in Windows XP". Microsoft. Archived from the original on 2014-03-30.
- "What are the file and file system size limitations for Red Hat Enterprise Linux?". Red Hat. 2023-03-21.
- "What are the file and file system size limitations for Red Hat Enterprise Linux?". Red Hat. 2023-03-21.
- Matthew Dillon. "HAMMER2 Design Document".
we can allow filenames up to 1023 bytes long
- Matthew Dillon (June 21, 2008). "The HAMMER Filesystem" (PDF).
- "Mac OS X: Mac OS Extended format (HFS Plus) volume and file limits". support.apple.com. July 26, 2016. Archived from the original on 2019-04-08.
- "Mac OS 8, 9: Mac OS Extended Format - Volume and File Limits". support.apple.com. February 20, 2012.
- "SFS file system". www.ibm.com. 2015-06-03. Archived from the original on 2022-09-13. Retrieved 2022-09-13.
- "Joliet Specification". 22 May 1995. Archived from the original on 14 April 2009.
- Russon, Richard; Fledel, Yuval. "NTFS Documentation" (PDF).
- "NTFS overview". Microsoft Docs. 2022-05-26. Archived from the original on 2022-05-26. Retrieved 2022-06-05.
- Steven Sinofsky (January 16, 2012). "Building the next generation file system for Windows: ReFS".
- Amigo (2015-04-02). "Invalid Characters in File Names". Amigo's Technical Notes. Retrieved 2020-10-20.
- "Resilient File System (ReFS) overview". Microsoft Docs. Retrieved 2017-11-07.
- "FAQ". namesys. 15 October 2003. Archived from the original on 19 July 2006.
- "Maximum Number of UFS Subdirectories". Oracle. Retrieved 2019-02-12.
- "Frequently Asked Questions for FreeBSD 9.X and 10.X". FreeBSD Documentation Project. Retrieved 2016-03-20.
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.
- "PATH_MAX Is Tricky". Evan Klitzke’s web log.
- "PATH_MAX simply isn't". Insane Coding. 2007-11-03.
- A speed comparison of filesystems on Linux 2.4.5 (archived)
- Filesystems (ext3, reiser, xfs, jfs) comparison on Debian Etch Archived 2018-03-04 at the Wayback Machine (April 23, 2006)
- Block allocation strategies of various filesystems
- What are the (dis)advantages of ext4, ReiserFS, JFS, and XFS? - Unix & Linux Stack Exchange