Comparison of file systems
![]() |
The following tables compare general and technical information for a number of file systems.
General information
[edit]
Metadata
[edit]File system | Stores file owner | POSIX file permissions | Creation timestamps | Last access/ read timestamps | Last metadata change timestamps | Last archive timestamps | Security/ MAC labels | |||
---|---|---|---|---|---|---|---|---|---|---|
Bcachefs | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
BeeGFS | Yes | Yes | No | Yes | Yes | No | Yes | ? | Yes | Yes |
CP/M file system | No | No | Yes[c] | No | No | No | No | No | No | No |
DECtape[8] | No | No | Yes | No | No | No | No | No | No | No |
Elektronika BK tape format | No | No | No | No | No | No | No | No | No | Yes |
Level-D | Yes | Yes | Yes | Yes (date only) | Yes | Yes | Yes (FILDAE) | No | No | No |
RT-11[9] | No | No | Yes (date only) | No | No | No | No | No | No | Yes |
Version 6 Unix file system (V6FS)[10] | Yes | Yes | No | Yes | No | No | No | No | No | No |
Version 7 Unix file system (V7FS)[11] | Yes | Yes | No | Yes | No | No | No | No | No | No |
exFAT | No | No | Yes | Yes | No | No | No | No | No | No |
FAT12/FAT16/FAT32 | No | No | Yes | Yes | No[d] | No | No | No | No[e] | No |
HPFS | Yes[f] | No | Yes | Yes | No | No | No | ? | Yes | No |
NTFS | Yes | Yes[g] | Yes | Yes | Yes | No | Yes | Yes[h] | Yes | No |
ReFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes[i] | Yes |
HFS | No | No | Yes | No | No | Yes | No | No | Yes | No |
HFS Plus | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | No |
FFS | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
UFS1 | Yes | Yes | No | Yes | Yes | No | Yes[j] | Yes[j] | No[k] | No |
UFS2 | Yes | Yes | Yes | Yes | Yes | No | Yes[j] | Yes[j] | Yes | Partial |
HAMMER | Yes | Yes | Yes | Yes | Yes | ? | Yes | Yes | No | Yes |
LFS | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
EROFS | Yes | Yes | No | No | Yes | No | Yes | Yes | Yes | No |
ext | Yes | Yes | No | No | No | No | No | No | No | No |
Xiafs | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
ext2 | Yes | Yes | No | Yes | Yes | No | Yes[l] | Yes[l] | Yes | No |
ext3 | Yes | Yes | No | Yes | Yes | No | Yes[l] | Yes[l] | Yes | No |
ext4 | Yes | Yes | Yes | Yes | Yes | No | Yes[l] | Yes[l] | Yes | Partial[m] |
NOVA | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes |
Lustre | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No |
F2FS | Yes | Yes | Yes | Yes | Yes | No | Yes[l] | Yes[l] | Yes | No |
GPFS | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
GFS | Yes | Yes | No | Yes | Yes | No | Yes[l] | Yes[l] | Yes | No |
NILFS | Yes | Yes | Yes | No | Yes | No | No | No | No | Yes |
ReiserFS | Yes | Yes | No | Yes | Yes | No | Yes[l] | Yes[l] | Yes | No |
Reiser4 | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
OCFS | No | Yes | No | No | Yes | Yes | No | No | No | No |
OCFS2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
XFS | Yes | Yes | Yes[n] | Yes | Yes | No | Yes | Yes[l] | Yes | Yes |
JFS | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No |
QFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No |
BFS | Yes | Yes | Yes | No | No | No | No | No | Yes | No |
AdvFS | Yes | Yes | No | Yes | Yes | No | Yes | No | Yes | No |
NSS | Yes | Yes | Yes[o] | Yes[o] | Yes | Yes[o] | Yes | ? | Yes[p][q] | No |
NWFS | Yes | ? | Yes[o] | Yes[o] | Yes | Yes[o] | Yes | ? | Yes[p][q] | No |
ODS-5 | Yes | Yes | Yes | ? | ? | Yes | Yes | ? | Yes[r] | No |
APFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
VxFS | Yes | Yes | Yes | Yes | Yes | No | Yes | ? | Yes[l] | No |
UDF | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
Fossil | Yes | Yes[s] | No | Yes | Yes | No | No | No | No | No |
ZFS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes[t] | Yes[u] | Yes |
Btrfs | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes |
Minix V1 | Yes | Yes | No | No | No | No | No | No | No | No |
Minix V2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
Minix V3 | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
VMFS2 | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
VMFS3 | Yes | Yes | No | Yes | Yes | No | No | No | No | No |
ISO 9660:1988 | No | No | Yes | No | No | No | No | No | No | No |
Rock Ridge | Yes | Yes | No | Yes[v] | Yes | No | No[w] | No[x] | No[x] | No |
Joliet ("CDFS") | No | No | Yes | No | No | No | No | No | No | No |
ISO 9660:1999 | No | No | Yes | No | No | No | No | No | No | No |
High Sierra | No | No | Yes | No | No | No | No | No | No | No |
SquashFS | Yes | Yes | No | No | Yes | No | No | Yes | Yes | No |
BlueStore/Cephfs | Yes | Yes | Yes | Yes | ? | No | Yes | Yes | Yes | Yes |
File system | Stores file owner | POSIX file permissions | Creation timestamps | Last access/ read timestamps | Last metadata change timestamps | Last archive timestamps | Security/ MAC labels |
Features
[edit]File capabilities
[edit]File system | Hard links | Symbolic links | Block journaling | Metadata-only journaling | Case-sensitive | Case-preserving | File Change Log | XIP | Resident files (inline data) |
---|---|---|---|---|---|---|---|---|---|
DECtape | No | No | No | No | No | No | No | No | ? |
BeeGFS | No | Yes | Yes | Yes | Yes | Yes | No | No | ? |
Level-D | No | No | No | No | No | No | No | No | ? |
RT-11 | No | No | No | No | No | No | No | No | ? |
APFS | Yes | Yes | ? | ? | Optional | Yes | ? | ? | ? |
Version 6 Unix file system (V6FS) | Yes | No | No | No | Yes | Yes | No | No | No |
Version 7 Unix file system (V7FS) | Yes | No[y] | No | No | Yes | Yes | No | No | No |
exFAT | No | No | No | Partial (with TexFAT only) | No | Yes | No | No | No |
FAT12 | No | No | No | Partial (with TFAT12 only) | No | Partial (with VFAT LFNs only) | No | No | No |
FAT16 / FAT16B / FAT16X | No | No | No | Partial (with TFAT16 only) | No | Partial (with VFAT LFNs only) | No | No | No |
FAT32 / FAT32X | No | No | No? | Partial (with TFAT32 only) | No | Partial (with VFAT LFNs only) | No | No | No |
GFS | Yes | Yes[z] | Yes | Yes[aa] | Yes | Yes | No | No | ? |
HPFS | No | No | No | No | No | Yes | No | No | ? |
NTFS | Yes | Yes[ab] | No[ac] | Yes[ac] (2000) | Yes[ad] | Yes | Yes | ? | Yes (approximately 700 bytes) |
HFS Plus | Yes[16] | Yes | No | Yes[ae] | Optional[af] | Yes | Yes[ag] | No | ? |
FFS | Yes | Yes | No | No | Yes | Yes | No | No | No |
UFS1 | Yes | Yes | No | No | Yes | Yes | No | No | No |
UFS2 | Yes | Yes | No | Yes[ah] [21] [ai] | Yes | Yes | No | ? | No |
HAMMER | Yes | Yes | Yes | Yes | Yes | Yes | ? | No | ? |
LFS | Yes | Yes | Yes[aj] | No | Yes | Yes | No | No | ? |
EROFS | Yes | Yes | No | No | Yes | Yes | No | No | Yes |
ext | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Xiafs | Yes | Yes | No | No | Yes | Yes | No | No | ? |
ext2 | Yes | Yes | No | No | Yes | Yes | No | Yes[ak] | ? |
ext3 | Yes | Yes | Yes (2001) [al] | Yes (2001) | Yes | Yes | No | Yes | ? |
ext4 | Yes | Yes | Yes[al] | Yes | Yes, optional [24] | Yes | No | Yes | Yes (approximately 160 bytes)[25] |
NOVA | Yes | Yes | No | Yes | Yes | Yes | No | Yes | ? |
F2FS | Yes | Yes | Yes[aj] | No | Yes | Yes | No | No | ? |
Lustre | Yes | Yes | Yes[al] | Yes | Yes | Yes | Yes | No | ? |
NILFS | Yes | Yes | Yes[aj] | No | Yes | Yes | No | No | ? |
ReiserFS | Yes | Yes | Yes[am] | Yes | Yes | Yes | No | ? | ? |
Reiser4 | Yes | Yes | Yes | No | Yes | Yes | No | ? | ? |
OCFS | No | Yes | No | No | Yes | Yes | No | No | ? |
OCFS2 | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ? |
XFS | Yes | Yes | Yes[al] | Yes | Yes[an] | Yes | Yes | ? | ? |
JFS | Yes | Yes | Yes | Yes (1990) | Yes[ao] | Yes | No | ? | ? |
QFS | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
BFS | Yes | Yes | No | Yes | Yes | Yes | ? | No | ? |
NSS | Yes | Yes | ? | Yes | Yes[ap] | Yes[ap] | Yes[aq] | No | ? |
NWFS | Yes[ar] | Yes[ar] | No | No | Yes[ap] | Yes[ap] | Yes[aq] | No | ? |
ODS-2 | Yes | Yes[as] | No | Yes | No | No | Yes | No | ? |
ODS-5 | Yes | Yes[as] | No | Yes | No | Yes | Yes | ? | ? |
UDF | Yes | Yes | Yes[aj] | Yes[aj] | Yes | Yes | No | Yes | Yes[27] |
VxFS | Yes | Yes | Yes | No | Yes | Yes | Yes | ? | ? |
Fossil | No | No | No | No | Yes | Yes | Yes | No | ? |
ZFS | Yes | Yes | Yes[at] | No[at] | Yes | Yes | No | No | Yes (112 bytes)[28] |
Btrfs | Yes | Yes | Yes[au] | No | Yes | Yes | ? | ? | Yes (2 KiB)[29] |
Bcachefs | Yes | Yes | Yes[av] | No | Yes | Yes | ? | ? | ? |
Minix V1 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Minix V2 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Minix V3 | Yes | Yes | No | No | Yes | Yes | No | No | ? |
VMFS2 | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
VMFS3 | Yes | Yes | No | Yes | Yes | Yes | No | No | ? |
ReFS | Yes[aw] | Yes | ? | ? | Yes[ad] | Yes | ? | ? | ? |
ISO 9660 | No | No | No | No | No | No | No | No | ? |
Rock Ridge | Yes | Yes | No | No | Yes | Yes | No | No | ? |
Joliet ("CDFS") | No | No | No | No | No | Yes | No | No | ? |
SquashFS | Yes | Yes | No | No | Yes | Yes | No | No | ? |
BlueStore/Cephfs | Yes | Yes | Yes | Yes | Yes | Yes | No | No | ? |
File system | Hard links | Symbolic links | Block journaling | Metadata-only journaling | Case-sensitive | Case-preserving | File Change Log | XIP | Resident files |
Block capabilities
[edit]Note that in addition to the below table, block capabilities can be implemented below the file system layer in Linux (LVM, integritysetup, cryptsetup) or Windows (Volume Shadow Copy Service, SECURITY), etc.
File system | Internal snapshotting / branching | Encryption | Deduplication | Data checksum/ ECC | Persistent Cache | Multiple Devices | Compression | Self-healing[ax] |
---|---|---|---|---|---|---|---|---|
DECtape | No | No | No | No | No | No | No | No |
BeeGFS | No | No | Yes | No | No | No | Yes | No |
Level-D | No | No | No | No | No | No | No | No |
RT-11 | No | No | No | No | No | No | No | No |
APFS | Yes | Yes | Yes [30] | No | No | No | Yes | No |
Version 6 Unix file system (V6FS) | No | No | No | No | No | No | No | No |
Version 7 Unix file system (V7FS) | No | No | No | No | No | No | No | No |
exFAT | No | No | No | No | No | No | No | No |
FAT12 | No | No | No | No | No | No | Partial[ay] | No |
FAT16 / FAT16B / FAT16X | No | No | No | No | No | No | Partial[ay] | No |
FAT32 / FAT32X | No | No | No | No | No | No | No | No |
GFS | No | No | ? | No | No | No | No | No |
HPFS | ? | No | ? | No | No | No | No | No |
NTFS | No | Yes | Yes[az][32] | No | No | No | Yes | No |
HFS Plus | No | No[ba] | No | No | No | No | No | No |
FFS | No | No | No | No | No | No | No | No |
UFS1 | No | No | No | No | No | No | No | No |
UFS2 | Yes | No | No | No | No | No | No | No |
HAMMER | Yes | No | Yes | Yes | No | No | No | No |
LFS | Yes | No | No | No | No | No | No | No |
EROFS | No | No | Yes | No | No | Yes | Yes | No |
ext | No | No | No | No | No | No | No | No |
Xiafs | No | No | No | No | No | No | No | No |
ext2 | No | No | No | No | No | No | No | No |
ext3 | No | No | No | No | No | No | No | No |
ext4 | No | Yes, experimental [33] | No | No[34] | No | No | No | No |
NOVA | Yes | No | No | Yes | No | No | No | ? |
F2FS | No | Yes, experimental [35] | No | No | No | No | Yes | No |
Lustre | No | No | No | No | Yes | Yes | No | No |
NILFS | Yes, continuous[aj] | No | No | Yes | No | No | No | No |
ReiserFS | No | No | No | No | No | No | No | No |
Reiser4 | ? | Yes[bb] | ? | No | No | No | Yes | No |
OCFS | No | No | No | No | No | No | No | No |
OCFS2 | No | No | No | No | No | No | No | No |
XFS | No | No | Yes[36] | No[34] | No | No | No | No |
JFS | ? | No | ? | No | No | No | only in JFS1 on AIX[37] | No |
QFS | No | No | No | No | No | No | No | No |
BFS | No | No | No | No | No | No | No | No |
NSS | Yes | Yes | ? | No | No | No | Yes | No |
NWFS | ? | No | ? | No | No | No | Yes | No |
ODS-2 | Yes | No | No | No | No | No | No | No |
ODS-5 | Yes | No | No | No | No | No | No | |
UDF | No | No | No | No | No | No | No | No |
VxFS | Yes[bc] | No | Yes | No | No | No | No | No |
Fossil | Yes | No | Yes | No | No | No | Yes | No |
ZFS | Yes | Yes[bd] | Yes | Yes | Yes | Yes | Yes[be] | Yes |
Btrfs | Yes | No | Yes | Yes[bf] | No | Yes | Yes[bg] | Yes |
Bcachefs | Yes | Yes | No | Yes[bh] | No | Yes | Yes[bi] | No |
Minix V1 | No | No | No | No | No | No | No | No |
Minix V2 | No | No | No | No | No | No | No | No |
Minix V3 | No | No | No | No | No | No | No | No |
VMFS2 | No | No | No | No | No | No | No | No |
VMFS3 | No | No | No | No | No | No | No | No |
ReFS | No[bj] | No | Yes | No[bk] | No | No | No[bl] | No[bk] |
ISO 9660 | No | No | No[bm] | No | No | No | No | No |
Rock Ridge | No | No | No[bm] | No | No | No | No | No |
Joliet ("CDFS") | No | No | No[bm] | No | No | No | No | No |
SquashFS | No | No | Yes | Yes | No | No | Yes | No |
BlueStore/Cephfs | Yes | No | No | Yes | Yes | Yes | Yes | Yes |
File system | Internal snapshotting / branching | Encryption | Deduplication | Data checksum/ ECC | Persistent Cache | Multiple Devices | Compression | Self-healing[ax] |
Resize capabilities
[edit]"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[bn] | No | Yes[bn] | No | No |
FAT32 / FAT32X | misc. | Yes[bn] | No | Yes[bn] | 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 | ? | ? | ? | ? | ? |
EROFS | Linux | Yes | No | No | No | Yes |
SquashFS | Linux | No | No | No | No | No |
NOVA | Linux | No | No | No | No | No |
JFS[47] | Linux | Yes | No | No | No | No |
XFS[48] | Linux | No | Yes | No[49] | No[49] | No |
Lustre[50] | Linux | ? | Yes | No | No | Yes |
F2FS[51] | Linux | Yes | No | No | No | No |
NTFS[52] | Linux | Yes | No | Yes | No | No |
ext2[53] | Linux | Yes | No | Yes | No | No |
ext3[53] | Linux | Yes | Yes | Yes | No | No |
ReiserFS[54] | Linux | Yes | Yes | Yes | No | No |
Reiser4[55] | Linux | Yes | Yes | Yes | No | No |
ext4[53] | Linux | Yes | Yes | Yes | No | No |
Btrfs[56] | Linux | Yes | Yes | Yes | Yes | Yes |
Bcachefs[43] | Linux | Yes | Yes | No | No | Yes |
NILFS[57] | Linux | No | Yes | No | Yes | No |
ZFS | misc. | No | Yes | No | Yes | Partial[58] |
JFS2 | AIX | Yes | Yes | Yes | Yes | No |
UFS2[59] | 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
[edit]File system | Sparse files | Block suballocation | Tail packing | Extents | Variable file block size[bo] | 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[60][61] |
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)[62] | Partial (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes[31]) | No | Partial (only inside of compressed volumes)[63] | No | No | No | Yes (Linux) |
FAT16 / FAT16B / FAT16X | Partial (only inside of compressed volumes)[62] | Partial (only inside of Stacker 3/4 and DriveSpace 3 compressed volumes[31]) | No | Partial (only inside of compressed volumes)[63] | No | No | No | Yes (Linux) |
FAT32 / FAT32X | No | No | No | No | No | No | No | Yes (Linux) |
GFS | Yes | No | Partial[bp] | 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[bq] | No | No | No | No | ? | No |
UFS1 | Yes | 8:1[bq] | No | No | No | No | ? | No |
UFS2 | Yes | 8:1[bq] | No | No | Yes | No | ? | Yes[64][65] |
LFS | Yes | 8:1[bq] | No | No | No | No | Yes | ? |
EROFS | Yes | Yes | Yes | Yes | No | No | No | No |
ext | Yes | No | No | No | No | No | No | No |
Xiafs | Yes | No | No | No | No | No | ? | ? |
ext2 | Yes | No[br] | No | No | No | No | No | Yes |
ext3 | Yes | No[br] | No | No | No | No | No | Yes |
ext4 | Yes | No[br] | No | Yes | No | Yes | No | Yes |
NOVA | Yes | No | No | Yes | No | No | Yes | ? |
F2FS | Yes | No | No | Partial[bs] | No | Yes | Yes | Yes[66] |
Lustre | Yes | No | No | Yes | No | Yes | ? | ? |
NILFS | Yes | No | No | No | No | Yes | Yes | Yes (Linux NILFS2) |
ReiserFS | Yes | Yes[bt] | Yes | No | No | No | ? | ? |
Reiser4 | Yes | Yes[bt] | Yes | Yes[bu] | No | Yes | ? | Testing[67] |
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[68] | 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[bv] | No | No | No | No | ? | ? |
ODS-5 | ? | No | No | Yes | No | No | ? | ? |
VxFS | Yes | ? | No | Yes | No | No | ? | ? |
UDF | Yes | No | No | Yes | No | ?[bw] | 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 | No[69] | 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[bx] | No | No | No | No |
Rock Ridge | No | No | No | Yes[bx] | No | No | No | No |
Joliet ("CDFS") | No | No | No | Yes[bx] | 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[bo] | Allocate-on-flush | Copy on write | Trim support |
OS support
[edit]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[71] or linux-apfs[72]) | 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,[73] 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[74] | 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+ [75] | Yes | No | ? | Yes | No | ? | No | No |
Apple HFS Plus | No | Partial - writing support only to unjournalled FS | Yes | No | Needs Paragon HFS+ [75] | 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 |
EROFS | No | Yes | Needs - since erofs-utils 1.4 | No | No | No | No | No | No | No | No | No | Yes |
ext | No | Yes - until 2.1.20 | No | No | No | No | No | No | No | No | No | No | No |
Xiafs | No | Yes - until 2.1.20 | No | No | No | No | No | No | No | No | No | No | No |
ext2 | No | Yes | Needs Paragon ExtFS [78] or ext2fsx | Partial (read-only, with explore2fs)[79] | Needs Paragon ExtFS [80] or partial with Ext2 IFS[81] or ext2fsd[82] | No | Yes | No | Yes | ? | ? | ? | No |
ext3 | No | Yes | Needs Paragon ExtFS [78] or partial with ext2fsx (journal not updated on writing) | Partial (read-only, with explore2fs)[79] | Needs Paragon ExtFS [80] or partial with Ext2 IFS[81] or ext2fsd[82] | Partial (read only)[citation needed] | Yes[83] | No | with addon | ? | Yes | ? | Yes |
ext4 | No | Yes | Needs Paragon ExtFS [78] | No | Yes, with the optional WSL2; physical and VHDX virtual disks.[84][85] | ? | Yes since FreeBSD 12.0[83] | No | with addon | ? | ? | ? | Yes |
NOVA | No | Yes | No | No | No | No | No | No | No | No | No | No | No |
Lustre | No | Yes[86] | ? | 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[87] and dropped in 11.0[88][89] | ? | 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[90] | ? | No | No | ? | No | No | ? | ? | Yes | ? | No |
Be File System | No | Partial - read-only | ? | No | No | ? | No | No | Yes | ? | ? | ? | No |
NSS | No | Yes via EVMS[by] | ? | 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[bz] | Yes[bz] | No | No | No | Yes[bz] | No | No | No | Yes[bz] | ? | No |
ZFS | No | Yes with FUSE[91] or as an external kernel module[92] | Yes with Read/Write Developer Preview[93] | No | Yes[94] | No | Yes | No | No | No | Yes | No | No |
Btrfs | No | Yes | ? | No | Yes with WinBtrfs[95] | ? | 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.[96][97]) | No | No | No | No | No | No |
BlueStore/Cephfs | No | Yes | No[ca] | No | No[cb] | No | No[ca] | 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 |
Limits
[edit]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[cc] | Maximum pathname length | Maximum file size | Maximum volume size[cd] | Max number of files |
---|---|---|---|---|---|---|
AdvFS | 255 characters | Any byte except NUL[ce] | No limit defined[cf] | 16 TiB (17.59 TB) | 16 TiB (17.59 TB) | ? |
APFS | 255 UTF-8 characters | Unicode 9.0 encoded in UTF-8[98] | ? | 8 EiB (9.223 EB) | ? | 263 [99] |
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[ce] | No limit defined[cf] | 16 EiB (18.44 EB) | 16 EiB (18.44 EB) | ? |
BFS | 255 bytes | Any byte except NUL[ce] | No limit defined[cf] | 12,288 bytes to 260 GiB (279.1 GB)[cg] | 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 [100] | Not limited | Not limited, default is 100,000 files per directory [101] |
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 | ? |
EROFS | 255 bytes | Any byte except NUL, /[ce] | No limit defined[cf] | 16 EiB (18.44 EB) | 1 EiB (1.152 EB) | 264 |
exFAT | 255 UTF-16 characters | Unicode except for control codes 0x0000 - 0x001F or " * / : < > ? \ | [102] | 32,760 characters with each path component no more than 255 characters[103] | 16 EiB (18.44 EB)[103] | 64 ZiB (75.55 ZB) (276 bytes) | ? |
ext | 255 bytes | Any byte except NUL[ce] | No limit defined[cf] | 2 GiB (2.147 GB) | 2 GiB (2.147 GB) | ? |
ext2 | 255 bytes | Any byte except NUL, /[ce] | No limit defined[cf] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB)[cd] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext3 | 255 bytes | Any byte except NUL, /[ce] | No limit defined[cf] | 16 GiB (17.17 GB) to 2 TiB (2.199 TB)[cd] | 2 TiB (2.199 TB) to 32 TiB (35.18 TB) | ? |
ext4 | 255 bytes[104] | Any byte except NUL, /[ce] | No limit defined[cf] | 16 GiB (17.17 GB) to 16 TiB (17.59 TB)[cd][105] | 1 EiB (1.152 EB) | 232 (static inode limit specified at creation) |
F2FS | 255 bytes | Any byte except NUL, /[ce] | No limit defined[cf] | 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)[ch] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [cc][ce] | No limit defined[cf] | 32 MiB (33.55 MB) (4 GiB (4.294 GB))[ci] | 1 MiB (1.048 MB) to 32 MiB (33.55 MB) | ? |
FAT16B/FAT16X | 8.3 (255 UCS-2 characters with LFN)[ch] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [cc][ch][ce] | No limit defined[cf] | 2 (4) GiB[ci] (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)[ch] | SFN: OEM A-Z, 0-9, ! # $ % & ' ( ) - @ ^ _ ` { } ~, 0x80-0xFF, 0x20. LFN: Unicode except NUL, " * / : < > ? \ | [cc][ch][ce] | 32,760 characters with each path component no more than 255 characters[103] | 4 GiB (4.294 GB)[103] | 512 MiB (536.8 MB) to 16 TiB (17.59 TB)<
|