Group: Software/FSDG distributions/Filesystems

From LibrePlanet
< Group:Software‎ | FSDG distributions
Revision as of 19:22, 16 December 2025 by GNUtoo (talk | contribs) (Filesystems for block devices: FUSE: add fuse-exfat)
Jump to: navigation, search

Introduction

This article is about filesystems support and might be extended to take into account block device technologies too like LVM,RAID, etc.

Choosing a filesystem

Using the default filesystem currently proposed during the installation of your distribution is a good idea. It makes sure that the filesystem is properly integrated and that the distribution trusts it enough (with data integrity, and security[1]) to propose it by default.

For external medias like USB keys and so on, filesystems with unix permissions (like ext4) can also usable by less technical users: gnome-disks has a "Take Ownership..." function [2] that can set the right permissions to make these usable, though "Take Ownership..." could be slow if there are a huge number of files.

General comparison

Filesystem protection against data corruption Linux status Limitations
Bcachefs Not safe according to Linus Torvalds[3].
  • Removed from Linux 6.18 in 2025[4].
  • Distributions with versions earlier than Linux 6.18 can still use Bcachefs.
  • Bcachefs might also still be available in distributions as an external kernel module.
btrfs Less safe (status from September 2025).[5] maintained
ext2 Less safe: because there is no journal, data can be corrupted during improper shutdown for instance. maintained
ext3 maintained
exfat maintained
  • Cannot resize
ext4 Safest. maintained
NTFS Not safe: no ability to repair the filesystem without nonfree software. maintained
ReiserFS 3 Not safe: fsck can corrupt ReiserFS 3 images[6].
  • Removed from Linux 6.13 in 2025.[7]
  • Distributions with versions earlier than Linux 6.13 can still use ReiserFS 3
XFS v4
  • Starts being removed from some GNU/Linux distributions in September 2025[8]
  • Will be removed from Linux in September 2030.[9]
XFS v5 maintained

Creation without root

Sometimes it can be useful to create filesystems without root permissions. This is used to format files that are owned by the user (and not root) with a given filesystem. Some filesystem utilities even enable to populate the filesystem with data coming from a directory and/or store arbitrary files or directories inside the given filesystem without needing to mount the filesystem (which typically requires root permissions in one way or another).

Filesystem Creation without root Utilities required Guix image support
BTRFS mkfs.btrfs -r ./directory [...]
  • btrfs-progs
Yes
exFAT exfatprogs 1.2.9 and exfat-utils 1.4.0 don't seem to support that ? No
ext2, ext3, ext4 mke2fs -d ./directory [...]
  • e2fsprogs
Yes
F2FS mkfs.f2fs [...] && sload.f2fs -f ./directory [...]
  • f2fs-tools
Yes
FAT12, FAT16, FAT32, VFAT mkfs.msdos [...] && mcopy -bsp -i [...]
  • dosfstools
  • mtools
Yes
HFS+ Might be possible with hpcopy and hpmkdir
  • hfsplus
No
JFS jfsutils 1.1.15 don't seem to support that ? No
NILFS2 nilfsutils 2.2.11 don't seem to support that ? No
NTFS ntfscp can copy regular files, but it is unclear how to copy directories or other file types (/dev/ nodes, symlinks, etc)
  • ntfs-3g
No
SquashFS mksquashfs ./directory [...]
  • squashfs-tools
No
XFS Might be possible since xfsprogs 6.17.0 (patch merged in 6.17.0)
  • xfsprogs
No

And for other things than filesystems:

patition type Creation without root Utilities required Guix image support
LUKS (v1 and/or v2) May be possible with cryptsetup-reencrypt No
swap mkswap --file [...]
  • util-linux
Yes

Defaults

The defaults filesystems used are often a good indication of what filesystems are best supported by the distribution.

Distribution Defaults Comments
Dragora 3.0 beta2
Instal/l method Boot software Default filesystem
Graphical installer BIOS ext3
In the graphical installer, the "FILE SYSTEM SELECTION" default choice is set to ext3. Beside that there is no defaults for the partitioning.
Dynebolic
Guix 1.4.0
Install method Boot software Partitions
Graphical installer BIOS bios_grub swap /
not encrypted not encrypted not encrypted
N/A swap ext4
Hyperbola
LibreCMC
Parabola
ProteanOS
PureOS 10 (byzantium)
Install method Boot software Partitions
Graphical installer BIOS /boot /
not encrypted LUKS
ext4 ext4
  • In the graphical installer, encryption is mandatory when selecting "Erase disk", but it can be avoided when using manual partitioning.
Replicant 6.0
Trisquel 10 (nabia)
Ututo S

Filesystems

Distributions
Dragora 3.0 beta2 Dynebolics Guix i686-linux and x86_64-linux (x86 GNU/Linux) Guix i586-gnu (HURD) Hyperbola LibreCMC Parabola ProteanOS PureOS 10 (byzantium) Replicant 6.0 Trisquel 11 (aramo) Ututo S
btrfs
Packages Yes:

tools/btrfs-progs

Rootfs with the graphical installer Yes
Packages Yes:

btrfs-progs

Guix system[10] Yes
Installer Yes
Rootfs Yes
Packages and manual installation[11] Yes:

btrfs-progs

Graphical installer
Rootfs Yes
Packages and debootstrap installation[11] Yes:

btrfs-progs

Graphical installer No
Rootfs with the graphical installer No
erofs
Implementation
kernel fuse
Packages Yes:

erofs-utils and linux-libre

No
Guix system[10] No No
Installer No No
Implementation
kernel fuse
Packages Yes:

erofs-utils

Yes:

erofsfuse,

erofs-utils

Rootfs ? ?
Implementation
kernel fuse
Packages Yes:

erofs-utils and linux-libre

No
Rootfs ? No
exfat
Packages No
Rootfs with the graphical installer No
Implementation
kernel fuse
Packages Yes:

exfatprogs

Yes:

exfat-utils

Installer No No
Implementation
kernel fuse
Packages Yes:

exfatprogs

Yes:

exfat-utils

Implementation
kernel fuse
Packages Yes:

exfatprogs

Yes:

exfat-fuse,

exfat-utils

Graphical installer Yes No
Rootfs with the graphical installer Broken[12] No
Implementation
kernel fuse
Internal partitions No Yes
Rootfs No No
MicroSD card No Yes
ext2
Packages Yes:

tools/e2fsprogs

Rootfs with the graphical installer Yes
Packages Yes:

e2fsprogs

Guix system[10]
Installer No
Rootfs
Packages Yes:

e2fsprogs

Guix system[10] Yes
Installer N/A[13]
Rootfs Yes
Packages Yes:

e2fsprogs

ext3
Packages Yes:

tools/e2fsprogs

Rootfs with the graphical installer Yes
Packages Yes:

e2fsprogs

Installer No
Packages Yes:

e2fsprogs

ext4
Packages Yes:

tools/e2fsprogs

Rootfs with the graphical installer Yes
Packages Yes:

e2fsprogs

Guix system[10] Yes
Installer Yes
Rootfs Yes
Packages and manual installation[11] Yes: e2fsprogs
Rootfs Yes
Packages and manual installation[11] Yes:

e2fsprogs

Graphical installer
Rootfs Yes
Packages and debootstrap installation[11] Yes:

e2fsprogs

Graphical installer Yes
Rootfs with the graphical installer Yes
Internal partitions Yes
Rootfs Yes
MicroSD card No[14]
Packages and debootstrap installation[11] Yes:

e2fsprogs

Graphical installer
Rootfs Yes
f2fs
Packages No
Rootfs with the graphical installer No
Packages Yes:

f2fs-tools

Guix system[10] Yes
Installer No
Rootfs Yes
Packages and manual installation[11] Yes:

f2fs-tools

Graphical installer
Rootfs Yes
Packages and debootstrap installation[11] Yes:

f2fs-tools

Graphical installer No
Rootfs with the graphical installer No
Internal partitions Yes
Rootfs ?
MicroSD card Yes[15]
fat
Packages Yes:

tools/dosfstools

Rootfs with the graphical installer No
Packages Yes:

dosfstools,

mtools

Guix system[10] Yes
Installer Yes
Rootfs No
Packages Yes:

dosfstools,

mtools

Guix system[10] Yes
Installer N/A[13]
Rootfs No
Packages and manual installation[11] Yes:

dosfstools,

mtools

Graphical installer
Rootfs No
Packages Yes:

dosfstools,

mtools

Graphical installer Yes
Rootfs with the graphical installer Broken[16]
Internal partitions Yes
Rootfs No
MicroSD card Yes
hfs
Packages No
Rootfs with the graphical installer No
No[17] No[18] No[19]
Packages Yes:

hfsutils

Graphical installer No
Rootfs with the graphical installer No
No[20]
Packages Yes:

hfsutils

Graphical installer ?
Rootfs with the graphical installer ?
hfs+
Packages No
Rootfs with the graphical installer No
No[21] No[22] No[23]
Packages Yes:

hfsplus

Graphical installer No
Rootfs with the graphical installer No
No[24]
Packages Yes:

hfsplus

Graphical installer ?
Rootfs with the graphical installer ?
jfs
Packages No
Rootfs with the graphical installer No
Packages Yes:

jfsutils

Guix system[10] Yes
Installer Yes
Rootfs Yes
Packages Yes:

jfsutils

Packages Yes:

jfsutils

Graphical installer No
Rootfs with the graphical installer No
minix
Packages Yes:

tools/util-linux

Rootfs with the graphical installer No
Packages Yes:

util-linux

Installer No
Packages Yes:

util-linux

Packages Yes:

util-linux

Graphical installer Yes
Rootfs with the graphical installer Broken[25]
nilfs2
Packages No
Rootfs with the graphical installer No
Packages Yes:

nilfs-utils

Guix system[10] ?
Installer No
Rootfs ?
Packages Yes:

nilfs-utils

Packages Yes:

nilfs-tools

Graphical installer No
Rootfs with the graphical installer No
ntfs
Packages Yes:

tools/ntfs-3g

Rootfs with the graphical installer No
Packages Yes:

ntfs-3g

Guix system[10] ?
Installer Broken[26]
Rootfs Broken[27]
Packages Yes:

ntfs-3g

Implementation
kernel fuse
Packages Yes:

ntfs-3g

Graphical installer No[28] Yes
Rootfs with the graphical installer Broken[29]
reiser4
Packages Yes:

tools/reiser4progs

Rootfs with the graphical installer No
Kernel No[30]
Packages No
Graphical installer No
Rootfs with the graphical installer No
Kernel No[30]
Packages No
Graphical installer
Rootfs
Kernel No[30]
Packages Yes: reiser4progs
Graphical installer No
Rootfs with the graphical installer No
reiserfs
Kernel Until 2025[7]
Packages No
Rootfs with the graphical installer No
Kernel Until 2025[7]
Packages No
Graphical installer No
Rootfs with the graphical installer No
Kernel Until 2025[7]
Packages No
Graphical installer
Rootfs
Kernel Until 2025[7]
Packages Yes:

reiserfsprogs

Graphical installer No
Rootfs with the graphical installer No
XFS v4
Kernel Linux-image-generic has 'CONFIG_XFS_SUPPORT_V4=y', In Linux until 2030[9]
Packages Yes
Rootfs with the graphical installer ?
XFS v5
Packages Yes:

tools/xfsprogs

Rootfs with the graphical installer Yes
Packages Yes:

xfsprogs

Guix system[10] Yes
Installer Yes
Rootfs Yes
Packages Yes:

xfsprogs,

xfsdump

Packages Yes:

xfsprogs,

xfsdump

Graphical installer No
Rootfs with the graphical installer No
Dragora 3.0 beta2 Dynebolics Guix i686-linux and x86_64-linux (x86 GNU/Linux) Guix i586-gnu (HURD) Hyperbola LibreCMC Parabola ProteanOS PureOS 10 (byzantium) Replicant 6.0 Trisquel 11 (aramo) Ututo S
Distributions

More detailed Guix status

Guix has many areas where only some filesystems are supported. Because of that making a more detailed status about that is interesting.

Filesystems guix system: operating-system: file-systems guix system image
btrfs yes:rootfs[31] Yes
ext2 Yes Yes
ext3 Yes Yes
ext4 yes:rootfs[31] Yes
F2FS yes:rootfs[31] No
FAT16 Yes Yes
FAT32 Yes Yes
JFS yes:rootfs[31] No
XFS yes:rootfs[31] No

Block device layer

Distributions
Dragora Dynebolics Guix i686-linux and x86_64-linux (x86 GNU/Linux) Guix i586-gnu (HURD) Hyperbola LibreCMC Parabola ProteanOS PureOS 10 (byzantium) Replicant 6.0 Trisquel 11 (aramo) Ututo S
dmraid
LDM[32]
LUKS 1
Packages and manual installation[11] Yes:

cryptsetup

Graphical installer
Rootfs Yes
Yes Yes
LUKS 2
Packages and manual installation[11] Yes:

cryptsetup

Graphical installer
Rootfs Yes but requires a /boot as GRUB only has partial LUKS2 support
Yes Yes
md RAID (with mdadm)
LVM2
Packages and manual installation[11] Yes:

lvm2

Graphical installer
Rootfs Yes
Yes Yes
nonraid[33]

Upstream projects

Filesystems for block devices

This list support for filesystems for block devices (hard disks, SSD, etc). Note that the support could be read-only, partial or not builtin the bootloader provided by the distributions you use.

Project Version AFFS AFS BFS BTRFS EXFAT EXT2 EXT4 FAT F2FS NILFS2 ZFS
Bootloaders
GRUB Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
u-boot No No No Yes Yes Yes Yes Yes No No Yes
Kernels
Hurd ? ? ? ? ? Yes ? Yes ? ? ?
Linux Yes ? ? Yes Yes Yes Yes Yes Yes Yes No
API
FUSE ? ? ? ? Yes[34] ? ? ? ? ? ?

Read-only filesystems for block devices

This list support for filesystems for block devices (hard disks, SSD, etc).

Project Version CRAMFS EROFS SquashFS
Bootloaders
GRUB No No Yes
u-boot Yes Yes Yes
Kernels
Hurd ? ? ?
Linux Yes Yes Yes
API
FUSE ? ? ?

References

  1. See the Unmaintained filesystems as a threat vector lwn.net article for more details.
  2. It is at least present in PureOS 10 (byzantium), Trisquel 11 (aramo) and Guix, so it is probably available everywhere. To use it, once gnome-disks is launched, you need to select the right partition, and then find a button with some gears and click on it, it will show a menu with the "Take Ownership..." option.
  3. https://web.archive.org/web/20240422185730/https://lore.kernel.org/lkml/CAHk-=whDuqyVC6xMkOnNt2EeTd-s4uqa3sYghj5UzkELFW2bpw@mail.gmail.com/
  4. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f2c61db29f27
  5. According to the Bcachefs maintainer, the 30 August 2025, "btrfs is still eating filesystems - they may be better than they were, but I still see reports regularly, and they don't seem to be taking reliability seriously"
  6. https://en.wikipedia.org/wiki/ReiserFS#fsck
  7. 7.07.17.27.37.4 The Linux kernel documentation for the REISERFS_FS option tells that:
    Reiserfs is deprecated and scheduled to be removed from the kernel
    in 2025. If you are still using it, please migrate to another
    filesystem or tell us your usecase for reiserfs.
    In practice it is not available anymore since Linux 6.13, so if you need to migrate your data, you will need to use in one way or another Linux 6.12 or earlier. kenrel.org lists the versions currently maintained and it is also possible to install (older) GNU/Linux distributions that ship a Linux version earlier than 6.13.
  8. According to the Linux XFS driver documentation, "[Support for mounting V4 filesystems] will default to yes until September 2025". This means that some distributions that use the defaults will most likely end up disabling support for XFS v4.
  9. 9.09.1 According to the Linux XFS driver documentation, "In September 2030, support [for XFS v4] will be removed from the codebase entirely [in Linux]"
  10. 10.0010.0110.0210.0310.0410.0510.0610.0710.0810.0910.1010.11 This tells if that filesystem can be used in a system.scm system definition.
  11. 11.0011.0111.0211.0311.0411.0511.0611.0711.0811.0911.1011.11 Since users simply run commands manually during the manual installation, they can easily use the (packaged) tools to create new filesystems and add them to /etc/fstab for automatic mounting.
  12. The installation fails with an error.
  13. 13.013.1 There is no HURD installer yet.
  14. After creating the rootfs with mkfs.ext4 from Guix, in Replicant, it says "Corrupted <vendor> SD card" in the notification bar.
  15. We can easily view the card content with "File Manager". It also detects a new MicroSD card when it is just formatted.
  16. The installation fails with an error.
  17. There is no hfsutils package.
  18. There is no hfsutils package.
  19. There is no hfsutils package.
  20. There is no hfsutils repository in the manifest.
  21. There is no hfsprogs package.
  22. There is no hfsprogs package.
  23. There is no hfsprogs package.
  24. There is no hfsprogs repository in the manifest.
  25. The installation fails with an error.
  26. The graphical installer complains about some UUID related issue
  27. In the graphical installer, the installation fails with: "The installer has encountered an unexpected problem. [...]", and we then get a stacktrace. If we manually install with the same system.scm we'd probably get the exact same stacktrace.
  28. Once installed, the rootfs is mounted with FUSE and ntfs-3g.
  29. The installation succeeds, but then sudo and policykit are broken due to wrong permissions. So users can't install any software. It's also a very bad idea to use NTFS since there is at the time of writing no way to safely repair corrupted NTFS filesystems with free software: The only tools we have are in ntfs-3g and they are way too experimental and dangerous so they are probably not shipped by any distribution.
  30. 30.030.130.2 According to the reiser 4 wiki, upstream Linux has no reiser4 support.
  31. 31.031.131.231.331.4 https://guix.gnu.org/manual/devel/en/guix.html#FOOT10
  32. Linux has "Windows Logical Disk Manager (Dynamic Disk) support", but it only support the format until Windows Vista with MBR only. This was verified by reading the Linux driver in Linux 6.18-rc6.
  33. https://github.com/qvr/nonraid
  34. See the fuse-exfat package.