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 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 |
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 [lower-alpha 62] | No | Yes | No [lower-alpha 63] | No | No | No [lower-alpha 64] | No [lower-alpha 63] |
ISO 9660 | No | No | No [lower-alpha 65] | No | No | No | No | No |
Rock Ridge | No | No | No [lower-alpha 65] | No | No | No | No | No |
Joliet ("CDFS") | No | No | No [lower-alpha 65] | 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] |
"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 66] | No | Yes [lower-alpha 66] | No | No |
FAT32 / FAT32X | misc. | Yes [lower-alpha 66] | No | Yes [lower-alpha 66] | 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 [45] | Linux | Yes | No | No | No | No |
XFS [46] | Linux | No | Yes | No [47] | No [47] | No |
Lustre [48] | Linux | ? | Yes | No | No | Yes |
F2FS [49] | Linux | Yes | No | No | No | No |
NTFS [50] | Linux | Yes | No | Yes | No | No |
ext2 [51] | Linux | Yes | No | Yes | No | No |
ext3 [51] | Linux | Yes | Yes | Yes | No | No |
ReiserFS [52] | Linux | Yes | Yes | Yes | No | No |
Reiser4 [53] | Linux | Yes | Yes | Yes | No | No |
ext4 [51] | Linux | Yes | Yes | Yes | No | No |
Btrfs [54] | Linux | Yes | Yes | Yes | Yes | Yes |
Bcachefs [41] | Linux | Yes | Yes | No | No | Yes |
NILFS [55] | Linux | No | Yes | No | Yes | No |
ZFS | misc. | No | Yes | No | Partial [56] | Yes |
JFS2 | AIX | Yes | Yes | Yes | Yes | No |
UFS2 [57] | 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 [lower-alpha 67] | 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 [58] [59] |
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) [60] | Partial (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes [29] ) | No | Partial (only inside of compressed volumes) [61] | No | No | No | Yes (Linux) |
FAT16 / FAT16B / FAT16X | Partial (only inside of compressed volumes) [60] | Partial (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes [29] ) | No | Partial (only inside of compressed volumes) [61] | No | No | No | Yes (Linux) |
FAT32 / FAT32X | No | No | No | No | No | No | No | Yes (Linux) |
GFS | Yes | No | Partial [lower-alpha 68] | 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 69] | No | No | No | No | ? | No |
UFS1 | Yes | 8:1 [lower-alpha 69] | No | No | No | No | ? | No |
UFS2 | Yes | 8:1 [lower-alpha 69] | No | No | Yes | No | ? | Yes [62] [63] |
LFS | Yes | 8:1 [lower-alpha 69] | 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 70] | No | No | No | No | No | Yes |
ext3 | Yes | No [lower-alpha 70] | No | No | No | No | No | Yes |
ext4 | Yes | No [lower-alpha 70] | No | Yes | No | Yes | No | Yes |
NOVA | Yes | No | No | Yes | No | No | Yes | ? |
F2FS | Yes | No | No | Partial [lower-alpha 71] | No | Yes | Yes | Yes [64] |
Lustre | Yes | No | No | Yes | No | Yes | ? | ? |
NILFS | Yes | No | No | No | No | Yes | Yes | Yes (Linux NILFS2) |
ReiserFS | Yes | Yes [lower-alpha 72] | Yes | No | No | No | ? | ? |
Reiser4 | Yes | Yes [lower-alpha 72] | Yes | Yes [lower-alpha 73] | No | Yes | ? | Testing [65] |
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 [66] | 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 74] | 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 75] | 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 76] | No | No | No | No |
Rock Ridge | No | No | No | Yes [lower-alpha 76] | No | No | No | No |
Joliet ("CDFS") | No | No | No | Yes [lower-alpha 76] | 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 67] | 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 [68] or linux-apfs [69] ) | 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, [70] 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 [71] | 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+ [72] | Yes | No | ? | Yes | No | ? | No | No |
Apple HFS Plus | No | Partial - writing support only to unjournalled FS | Yes | No | Needs Paragon HFS+ [72] | 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 [75] or ext2fsx | Partial (read-only, with explore2fs) [76] | Needs Paragon ExtFS [77] or partial with Ext2 IFS [78] or ext2fsd [79] | No | Yes | No | Yes | ? | ? | ? | No |
ext3 | No | Yes | Needs Paragon ExtFS [75] or partial with ext2fsx (journal not updated on writing) | Partial (read-only, with explore2fs) [76] | Needs Paragon ExtFS [77] or partial with Ext2 IFS [78] or ext2fsd [79] | Partial (read only)[ citation needed ] | Yes [80] | No | with addon | ? | Yes | ? | Yes |
ext4 | No | Yes | Needs Paragon ExtFS [75] | No | Yes, with the optional WSL2; physical and VHDX virtual disks. [81] [82] | ? | Yes since FreeBSD 12.0 [80] | No | with addon | ? | ? | ? | Yes |
NOVA | No | Yes | No | No | No | No | No | No | No | No | No | No | No |
Lustre | No | Yes [83] | ? | 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 [84] and dropped in 11.0 [85] [86] | ? | 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 [87] | ? | 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 77] | ? | 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 78] | Yes [lower-alpha 78] | No | No | No | Yes [lower-alpha 78] | No | No | No | Yes [lower-alpha 78] | ? | No |
ZFS | No | Yes with FUSE [88] or as an external kernel module [89] | Yes with Read/Write Developer Preview [90] | No | Yes [91] | No | Yes | No | No | No | Yes | No | No |
Btrfs | No | Yes | ? | No | Yes with WinBtrfs [92] | ? | 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. [93] [94] ) | No | No | No | No | No | No |
BlueStore/Cephfs | No | Yes | No [lower-alpha 79] | No | No [lower-alpha 80] | No | No [lower-alpha 79] | 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 81] | Maximum pathname length | Maximum file size | Maximum volume size [lower-alpha 82] | Max number of files |
---|---|---|---|---|---|---|
AdvFS | 255 characters | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 16 TiB (17.59 TB) | 16 TiB (17.59 TB) | ? |
APFS | 255 UTF-8 characters | Unicode 9.0 encoded in UTF-8 [95] | ? | 8 EiB (9.223 EB) | ? | 263 [96] |
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 83] | No limit defined [lower-alpha 84] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
BFS | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 12,288 bytes to 260 GiB (279.1 GB) [lower-alpha 85] | 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 [97] | Not limited | Not limited, default is 100,000 files per directory [98] |
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 " * / : < > ? \ | [99] | 32,760 characters with each path component no more than 255 characters [100] | 16 EiB (18.44 EB) [100] | 64 ZiB (75.55 ZB) (276 bytes) | ? |
ext | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 2 GiB (2.147 GB) | 2 GiB (2.147 GB) | ? |
ext2 | 255 bytes | Any byte except NUL, / [lower-alpha 83] | No limit defined [lower-alpha 84] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB) [lower-alpha 82] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext3 | 255 bytes | Any byte except NUL, / [lower-alpha 83] | No limit defined [lower-alpha 84] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB) [lower-alpha 82] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext4 | 255 bytes [101] | Any byte except NUL, / [lower-alpha 83] | No limit defined [lower-alpha 84] | 16 GiB (17.17 GB) to 16 TiB (17.59 TB) [lower-alpha 82] [102] | 1 EiB (1.152 EB) | 232 (static inode limit specified at creation) |
F2FS | 255 bytes | Any byte except NUL, / [lower-alpha 83] | No limit defined [lower-alpha 84] | 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 86] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [lower-alpha 81] [lower-alpha 83] | No limit defined [lower-alpha 84] | 32 MiB (33.55 MB) (4 GiB (4.294 GB)) [lower-alpha 87] | 1 MiB (1.048 MB) to 32 MiB (33.55 MB) | ? |
FAT16B/FAT16X | 8.3 (255 UCS-2 characters with LFN) [lower-alpha 86] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [lower-alpha 81] [lower-alpha 86] [lower-alpha 83] | No limit defined [lower-alpha 84] | 2 (4) GiB [lower-alpha 87] (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 86] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [lower-alpha 81] [lower-alpha 86] [lower-alpha 83] | 32,760 characters with each path component no more than 255 characters [100] | 4 GiB (4.294 GB) [100] | 512 MiB (536.8 MB) to 16 TiB (17.59 TB) [lower-alpha 88] | ? |
FATX | 42 bytes [lower-alpha 86] | ASCII. | No limit defined [lower-alpha 84] | 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 83] | No limit defined [lower-alpha 84] | 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 ! @ # $ % ^ & ( ) + - = ~ ` ; ' " , < > | [ ] ( ) _ [104] | ? | ? | ? | ? |
GFS2 | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB) [lower-alpha 89] | 100 TiB (109.95 TB) to 8 EiB (9.223 EB) [lower-alpha 90] | ? |
GFS | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB) [lower-alpha 91] | 2 TiB (2.199 TB) to 8 EiB (9.223 EB) [lower-alpha 91] | ? |
GPFS | 255 UTF-8 codepoints | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 9 EiB (10.37 EB) | 524,288 YiB (299 bytes) | ? |
HAMMER | 1023 bytes [107] | Any byte except NUL [lower-alpha 83] | ? | ? | 1 EiB (1.152 EB) [108] | ? |
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 92] | Any valid Unicode [lower-alpha 83] [lower-alpha 93] | Unlimited | slightly less than 8 EiB (9.223 EB) | slightly less than 8 EiB (9.223 EB) [109] [110] | ? |
High Sierra Format | ? | ? | ? | ? | ? | ? |
HPFS | 255 bytes | Any byte except NUL [lower-alpha 94] | No limit defined [lower-alpha 84] | 2 GiB (2.147 GB) | 2 TiB (2.199 TB) [lower-alpha 95] | ? |
IBM SFS | 8.8 | ? | ? | Non-hierarchical [111] | ? | ? |
ISO 9660:1988 | Level 1: 8.3, Level 2 & 3: ~ 180 | Depends on Level [lower-alpha 96] | ~ 180 bytes? | 4 GiB (4.294 GB) (Level 1 & 2) to 8 TiB (8.796 TB) (Level 3) [lower-alpha 97] | 8 TiB (8.796 TB) [lower-alpha 98] | ? |
ISO 9660:1999 | ? | ? | ? | ? | ? | ? |
JFS | 255 bytes | Any Unicode except NUL | No limit defined [lower-alpha 84] | 4 PiB (4.503 PB) | 32 PiB (36.02 PB) | ? |
JFS1 | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 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 ? [112] | ? | 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 83] | No limit defined [lower-alpha 84] | 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 83] | No limit defined [lower-alpha 84] | 256.5 MiB (268.9 MB) [lower-alpha 99] | 64 MiB (67.10 MB) | ? |
Minix V2 FS | 14 or 30 bytes, set at filesystem creation time | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 2 GiB (2.147 GB) [lower-alpha 99] | 1 GiB (1.073 GB) | ? |
Minix V3 FS | 60 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 2 GiB (2.147 GB) | 4 GiB (4.294 GB) | ? |
NILFS | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 8 EiB (9.223 EB) | 8 EiB (9.223 EB) | ? |
NOVA | 255 bytes | Any byte except NUL, / [lower-alpha 83] | No limit defined [lower-alpha 84] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
NSS | 256 characters | Depends on namespace used [lower-alpha 100] | 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 84] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB) [lower-alpha 101] [114] | 16 TiB (17.59 TB) to 8 PiB (9.007 PB) [lower-alpha 101] [114] | 232 |
NWFS | 80 bytes [lower-alpha 102] | Depends on namespace used [lower-alpha 100] | No limit defined [lower-alpha 84] | 4 GiB (4.294 GB) | 1 TiB (1.099 TB) | ? |
OCFS | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 8 TiB (8.796 TB) | 8 TiB (8.796 TB) | ? |
OCFS2 | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 4 PiB (4.503 PB) | 4 PiB (4.503 PB) | ? |
ODS-5 | 236 bytes [lower-alpha 103] | ? | 4,096 bytes [lower-alpha 104] | 1 TiB (1.099 TB) | 1 TiB (1.099 TB) | ? |
QFS | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 16 EiB (18.44 EB) [lower-alpha 105] | 4 PiB (4.503 PB) [lower-alpha 105] | ? |
ReFS | 255 UTF-16 characters [115] | 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 [115] | 16 EiB (18.44 EB) [115] [117] | 1 YiB (1.208 YB) [115] | ? |
ReiserFS | 4,032 bytes/255 characters | Any byte except NUL or '/' [lower-alpha 83] | No limit defined [lower-alpha 84] | 8 TiB (8.796 TB) [lower-alpha 106] (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 84] | 8 TiB (8.796 TB) on x86 | ? | ? |
Rock Ridge | 255 bytes | Any byte except NUL or / [lower-alpha 83] | No limit defined [lower-alpha 84] | 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 107] | 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 83] | No limit defined [lower-alpha 84] | 16 GiB (17.17 GB) to 256 TiB (281.4 TB) | 16 EiB (18.44 EB) | Subdirectory per directory is 32,767 [119] |
UFS2 | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 512 GiB (549.7 GB) to 32 PiB (36.02 PB) | 512 ZiB (604.4 ZB) [120] (279 bytes) | Subdirectory per directory is 32,767 [119] |
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 83] | No limit defined [lower-alpha 84] | 16 MiB (16.77 MB) [lower-alpha 108] | 32 MiB (33.55 MB) | ? |
Version 7 Unix file system (V7FS) | 14 bytes | Any byte except NUL or / [lower-alpha 83] | No limit defined [lower-alpha 84] | 1 GiB (1.073 GB) [lower-alpha 109] | 2 TiB (2.199 TB) | ? |
VMFS2 | 128 | Any byte except NUL or / [lower-alpha 83] | 2,048 | 4 TiB (4.398 TB) [lower-alpha 110] | 64 TiB (70.36 TB) | ? |
VMFS3 | 128 | Any byte except NUL or / [lower-alpha 83] | 2,048 | 2 TiB (2.199 TB) [lower-alpha 110] | 64 TiB (70.36 TB) | ? |
VxFS | 255 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 16 EiB (18.44 EB) | ? | ? |
XFS | 255 bytes [lower-alpha 111] | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 8 EiB (9.223 EB) [lower-alpha 112] | 8 EiB (9.223 EB) [lower-alpha 112] | ? |
Xiafs | 248 bytes | Any byte except NUL [lower-alpha 83] | No limit defined [lower-alpha 84] | 64 MiB (67.10 MB) | 2 GiB (2.147 GB) | ? |
ZFS | 255 bytes | Any Unicode except NUL | No limit defined [lower-alpha 84] | 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 81] | Maximum pathname length | Maximum file size | Maximum volume size [lower-alpha 82] | 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. [121] [122] XFS is a high-performance 64-bit journaling file system created by Silicon Graphics, Inc (SGI) in 1993. It was the default file system in SGI's IRIX operating system starting with its version 5.3. XFS was ported to the Linux kernel in 2001; as of June 2014, XFS is supported by most Linux distributions; Red Hat Enterprise Linux uses it as its default file system.
New Technology File System (NTFS) is a proprietary journaling file system developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded File Allocation Table (FAT) as the preferred filesystem on Windows and is also supported in Linux and BSD. NTFS reading and writing support is provided using a free and open-source kernel implementation known as NTFS3 in Linux and the NTFS-3G driver in BSD. Using the convert
command, Windows can convert FAT32/16/12 into NTFS without needing to rewrite all files. NTFS uses several files typically hidden from the user to store metadata about other files stored on the drive which can help improve speed and performance when reading data. Unlike FAT and High Performance File System (HPFS), NTFS supports access control lists (ACLs), filesystem encryption, transparent compression, sparse files and file system journaling. NTFS also supports shadow copy to allow backups of a system while it is running, but the functionality of the shadow copies varies between different versions of Windows.
ext2, or second extended file system, is a file system for the Linux kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.
ext3, or third extended filesystem, is a journaled file system that is commonly used by the Linux kernel. It used to be the default file system for many popular Linux distributions. Stephen Tweedie first revealed that he was working on extending ext2 in Journaling the Linux ext2fs Filesystem in a 1998 paper, and later in a February 1999 kernel mailing list posting. The filesystem was merged with the mainline Linux kernel in November 2001 from 2.4.15 onward. Its main advantage over ext2 is journaling, which improves reliability and eliminates the need to check the file system after an unclean shutdown. Its successor is ext4.
Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called partitions. It is typically the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions' locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk. Each partition then appears to the operating system as a distinct "logical" disk that uses part of the actual disk. System administrators use a program called a partition editor to create, resize, delete, and manipulate the partitions. Partitioning allows the use of different filesystems to be installed for different kinds of files. Separating user data from system data can prevent the system partition from becoming full and rendering the system unusable. Partitioning can also make backing up easier. A disadvantage is that it can be difficult to properly size partitions, resulting in having one partition with too much free space and another nearly totally allocated.
The Unix file system (UFS) is a family of file systems supported by many Unix and Unix-like operating systems. It is a distant descendant of the original filesystem used by Version 7 Unix.
In the maintenance of file systems, defragmentation is a process that reduces the degree of fragmentation. It does this by physically organizing the contents of the mass storage device used to store files into the smallest number of contiguous regions. It also attempts to create larger regions of free space using compaction to impede the return of fragmentation. Some defragmentation utilities try to keep smaller files within a single directory together, as they are often accessed in sequence.
The inode is a data structure in a Unix-style file system that describes a file-system object such as a file or a directory. Each inode stores the attributes and disk block locations of the object's data. File-system object attributes may include metadata, as well as owner and permission data.
A disk quota is a limit set by a system administrator that restricts certain aspects of file system usage on modern operating systems. The function of using disk quotas is to allocate limited disk space in a reasonable way.
fstab is a system file commonly found in the directory /etc
on Unix and Unix-like computer systems. In Linux, it is part of the util-linux package. The fstab file typically lists all available disk partitions and other types of file systems and data sources that may not necessarily be disk-based, and indicates how they are to be initialized or otherwise integrated into the larger file system structure.
HFS Plus or HFS+ is a journaling file system developed by Apple Inc. It replaced the Hierarchical File System (HFS) as the primary file system of Apple computers with the 1998 release of Mac OS 8.1. HFS+ continued as the primary Mac OS X file system until it was itself replaced with the Apple File System (APFS), released with macOS High Sierra in 2017. HFS+ is also one of the formats supported by the iPod digital music player.
In computing, a file system or filesystem governs file organization and access. A local file system is a capability of an operating system that services the applications running on the same computer. A distributed file system is a protocol that provides file access between networked computers.
Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a bridge to the actual kernel interfaces.
In computing, an extent is a contiguous area of storage reserved for a file in a file system, represented as a range of block numbers, or tracks on count key data devices. A file can consist of zero or more extents; one file fragment requires one extent. The direct benefit is in storing each range compactly as two numbers, instead of canonically storing every block number in the range. Also, extent allocation results in less file fragmentation.
Extended file attributes are file system features that enable users to associate computer files with metadata not interpreted by the filesystem, whereas regular attributes have a purpose strictly defined by the filesystem. Unlike forks, which can usually be as large as the maximum file size, extended attributes are usually limited in size to a value significantly smaller than the maximum file size. Typical uses include storing the author of a document, the character encoding of a plain-text document, or a checksum, cryptographic hash or digital certificate, and discretionary access control information.
ext4 is a journaling file system for Linux, developed as the successor to ext3.
chattr is the command in Linux that allows a user to set certain attributes of a file. lsattr is the command that displays the attributes of a file.
In computer operating systems, mkfs
is a command used to format a block storage device with a specific file system. The command is part of Unix and Unix-like operating systems. In Unix, a block storage device must be formatted with a file system before it can be mounted and accessed through the operating system's filesystem hierarchy.
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.