Group: Software/FSDG distributions/Filesystems
(→General comparison: Add limitations. People with dual-boot with other operating systems might expect exfat partitions to be resizable.) |
(→Filesystems for block devices: Add XFS v5) |
||
| (55 intermediate revisions by the same user not shown) | |||
| Line 17: | Line 17: | ||
! Linux status | ! Linux status | ||
! Limitations | ! Limitations | ||
| + | |- | ||
| + | ! Bcachefs | ||
| + | | Not safe according to Linus Torvalds<ref>https://web.archive.org/web/20240422185730/https://lore.kernel.org/lkml/CAHk-=whDuqyVC6xMkOnNt2EeTd-s4uqa3sYghj5UzkELFW2bpw@mail.gmail.com/</ref>. | ||
| + | | | ||
| + | * Removed from Linux 6.18 in 2025<ref>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f2c61db29f27</ref>. | ||
| + | * 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 | ! btrfs | ||
| Line 63: | Line 71: | ||
| | | | ||
| | | | ||
| − | * Starts being removed from some GNU/Linux distributions in September 2025<ref>According to the [https://www.kernel.org/doc/html/latest/admin-guide/xfs.html 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.</ref> | + | * Starts being removed from some GNU/Linux distributions in September 2025<ref name="xfs-v4-distros-removal">According to the [https://www.kernel.org/doc/html/latest/admin-guide/xfs.html 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.</ref> |
| − | * Will be removed from Linux in September 2030.<ref>According to the [https://www.kernel.org/doc/html/latest/admin-guide/xfs.html Linux XFS driver documentation], "In September 2030, support [for XFS v4] will be removed from the codebase entirely [in Linux]"</ref> | + | * Will be removed from Linux in September 2030.<ref name="xfs-v4-linux-removal">According to the [https://www.kernel.org/doc/html/latest/admin-guide/xfs.html Linux XFS driver documentation], "In September 2030, support [for XFS v4] will be removed from the codebase entirely [in Linux]"</ref> |
| | | | ||
|- | |- | ||
| Line 73: | Line 81: | ||
|} | |} | ||
| − | == | + | === 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). | |
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | ! | + | ! Filesystem |
| − | ! | + | ! Creation without root |
| − | ! | + | ! Utilities required |
| + | ! Guix image support | ||
|- | |- | ||
| − | ! | + | ! BTRFS |
| + | | {{yes|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 |
| − | | | + | | {{yes|mke2fs -d ./directory [...]}} |
| − | {| | + | | |
| − | + | * e2fsprogs | |
| − | + | | {{yes}} | |
| − | + | |- | |
| − | + | ! F2FS | |
| − | + | | {{yes|mkfs.f2fs [...] && sload.f2fs -f ./directory [...]}} | |
| − | + | | | |
| − | + | * f2fs-tools | |
| − | + | | {{yes}} | |
| − | + | |- | |
| − | + | ! FAT12, FAT16, FAT32, VFAT | |
| − | + | | {{yes|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 | ||
| + | | {{yes|mksquashfs ./directory [...]}} | ||
| + | | | ||
| + | * squashfs-tools | ||
| + | | {{no}} | ||
|- | |- | ||
| − | ! | + | ! XFS |
| − | | | + | | Might be possible since xfsprogs 6.17.0 ([https://marc.info/?l=linux-xfs&m=175371666506191 patch merged in 6.17.0]) |
| − | | | + | | |
| + | * xfsprogs | ||
| + | | {{no}} | ||
| + | |} | ||
| + | |||
| + | And for other things than filesystems: | ||
| + | |||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! patition type | ||
| + | ! Creation without root | ||
| + | ! Utilities required | ||
| + | ! Guix image support | ||
|- | |- | ||
| − | ! | + | ! LUKS (v1 and/or v2) |
| − | | | + | | May be possible with cryptsetup-reencrypt |
| − | | | + | | |
| + | | {{no}} | ||
|- | |- | ||
| − | ! | + | ! swap |
| − | | | + | | {{yes|mkswap --file [...]}} |
| | | | ||
| + | * util-linux | ||
| + | | {{yes}} | ||
|- | |- | ||
| − | + | |} | |
| − | | | + | |
| − | | | + | == Defaults == |
| − | |- | + | |
| − | ! | + | The defaults filesystems used are often a good indication of what filesystems are best supported by the distribution. |
| − | | | + | |
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! Distribution | ||
| + | ! Defaults | ||
| + | ! Comments | ||
| + | |- | ||
| + | ! Dragora 3.0 beta2 | ||
| + | | | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
| − | ! | + | ! Instal/l method |
! Boot software | ! 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 |
| | | | ||
| − | |- | + | {| class="wikitable sortable" border="1" |
| − | ! | + | |- |
| + | ! Install method | ||
| + | ! Boot software | ||
| + | ! colspan=3 | Partitions | ||
| + | |- | ||
| + | ! rowspan=3 | Graphical installer | ||
| + | ! rowspan=3 | BIOS | ||
| + | | bios_grub | ||
| + | | swap | ||
| + | | / | ||
| + | |- | ||
| + | | not encrypted | ||
| + | | not encrypted | ||
| + | | not encrypted | ||
| + | |- | ||
| + | | N/A | ||
| + | | swap | ||
| + | | ext4 | ||
| + | |} | ||
| | | | ||
|- | |- | ||
| − | + | ! Hyperbola | |
| − | + | | | |
| − | + | | | |
| − | |||
| − | |||
| − | | | ||
| − | |||
| − | |||
|- | |- | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
! LibreCMC | ! LibreCMC | ||
| + | | | ||
| + | | | ||
| + | |- | ||
! Parabola | ! Parabola | ||
| + | | | ||
| + | | | ||
| + | |- | ||
! ProteanOS | ! ProteanOS | ||
| + | | | ||
| + | | | ||
| + | |- | ||
! PureOS 10 (byzantium) | ! PureOS 10 (byzantium) | ||
| − | + | | | |
| − | |||
| − | |||
| − | | | ||
| − | |||
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | ! | + | ! Install method |
| − | + | ! Boot software | |
| − | + | ! colspan=2 | Partitions | |
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | ! | + | ! rowspan=3 | Graphical installer |
| − | | | + | ! rowspan=3 | 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 == | |
| − | + | ||
| − | |||
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
| − | + | |- bgcolor="#6699ff" | |
| − | | | + | ! rowspan=2 | |
| − | + | ! colspan=12 | 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 |
| <!-- Dragora --> | | <!-- Dragora --> | ||
| − | |||
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | ! | + | ! Packages |
| − | + | | {{yes|Yes: {{DistroPackage|Dragora|tools/btrfs-progs}}}} | |
|- | |- | ||
| − | ! | + | ! Rootfs with the graphical installer |
| − | ! | + | | {{yes}} |
| + | |} | ||
| + | | <!-- Dynebolics --> | ||
| + | | <!-- Guix x86 GNU/Linux --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
|- | |- | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage|guix| | + | | {{yes|Yes: {{DistroPackage|guix|btrfs-progs}}}} |
| − | |||
|- | |- | ||
| − | ! Guix system<ref name="guix-system"></ref> | + | ! Guix system<ref name="guix-system">This tells if that filesystem can be used in a system.scm system definition.</ref> |
| − | | {{ | + | | {{yes}} |
| − | |||
|- | |- | ||
! Installer | ! Installer | ||
| − | | {{ | + | | {{yes}} |
| − | | {{ | + | |- |
| − | |} | + | ! Rootfs |
| + | | {{yes}} | ||
| + | |} | ||
| <!-- Guix HURD --> | | <!-- Guix HURD --> | ||
| <!-- Hyperbola --> | | <!-- Hyperbola --> | ||
| Line 286: | Line 334: | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | |||
| − | |||
|- | |- | ||
| − | ! | + | ! Packages and manual installation<ref name="manual-installation">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.</ref> |
| − | + | | {{yes|Yes: {{DistroPackage|parabola|btrfs-progs}}}} | |
|- | |- | ||
| − | ! | + | ! Graphical installer |
| − | | | + | | |
| − | |||
|- | |- | ||
! Rootfs | ! Rootfs | ||
| − | | | + | | {{yes}} |
| − | |||
|} | |} | ||
| <!-- ProteanOS --> | | <!-- ProteanOS --> | ||
| <!-- PureOS 10 (byzantium) --> | | <!-- PureOS 10 (byzantium) --> | ||
| − | |||
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | |||
| − | |||
|- | |- | ||
| − | ! | + | ! Packages and debootstrap installation<ref name="manual-installation"></ref> |
| − | + | | {{yes|Yes: {{DistroPackage|pureos|btrfs-progs}}}} | |
|- | |- | ||
| − | ! | + | ! Graphical installer |
| − | |||
| {{no}} | | {{no}} | ||
|- | |- | ||
| − | ! Rootfs | + | ! Rootfs with the graphical installer |
| − | |||
| {{no}} | | {{no}} | ||
|} | |} | ||
| + | | <!-- Replicant 6.0 --> | ||
| + | | <!-- Trisquel 11 (aramo) --> | ||
| <!-- Ututo S --> | | <!-- Ututo S --> | ||
|- | |- | ||
| − | + | ! erofs | |
| − | ! | ||
| <!-- Dragora --> | | <!-- Dragora --> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| <!-- Dynebolics --> | | <!-- Dynebolics --> | ||
| <!-- Guix x86 GNU/Linux --> | | <!-- Guix x86 GNU/Linux --> | ||
| Line 344: | Line 375: | ||
|- | |- | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|guix|erofs-utils}} and linux-libre}} |
| − | | {{ | + | | {{no}} |
|- | |- | ||
| − | ! | + | ! Guix system<ref name="guix-system"></ref> |
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
|- | |- | ||
| + | ! Installer | ||
| + | | {{no}} | ||
| + | | {{no}} | ||
|} | |} | ||
| − | |||
| <!-- Guix HURD --> | | <!-- Guix HURD --> | ||
| <!-- Hyperbola --> | | <!-- Hyperbola --> | ||
| Line 366: | Line 399: | ||
|- | |- | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|parabola|erofs-utils}}}} |
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|parabola|erofsfuse}}, {{DistroPackage|parabola|erofs-utils}}}} |
|- | |- | ||
| + | ! Rootfs | ||
| + | | ? | ||
| + | | ? | ||
|} | |} | ||
| <!-- ProteanOS --> | | <!-- ProteanOS --> | ||
| <!-- PureOS 10 (byzantium) --> | | <!-- PureOS 10 (byzantium) --> | ||
| + | | <!-- Replicant 6.0 --> | ||
| + | | <!-- Trisquel 11 (aramo) --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| Line 381: | Line 419: | ||
|- | |- | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|parabola|erofs-utils}} and linux-libre}} |
| − | |||
| − | |||
| − | |||
| − | |||
| {{no}} | | {{no}} | ||
|- | |- | ||
| − | ! Rootfs | + | ! Rootfs |
| − | | | + | | ? |
| {{no}} | | {{no}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Ututo S --> |
| − | {| class="wikitable sortable" border="1" | + | |- |
| + | |- | ||
| + | ! exfat | ||
| + | | <!-- Dragora --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! Packages | ||
| + | | {{no}} | ||
| + | |- | ||
| + | ! Rootfs with the graphical installer | ||
| + | | {{no}} | ||
| + | |} | ||
| + | | <!-- Dynebolics --> | ||
| + | | <!-- Guix x86 GNU/Linux --> | ||
| + | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
! rowspan=2 | | ! rowspan=2 | | ||
| Line 401: | Line 449: | ||
! fuse | ! fuse | ||
|- | |- | ||
| − | ! | + | ! Packages |
| − | | {{ | + | | {{yes|Yes: {{DistroPackage|Guix|exfatprogs}}}} |
| − | | {{yes}} | + | | {{yes|Yes: {{DistroPackage|Guix|exfat-utils}}}} |
|- | |- | ||
| − | ! | + | ! Installer |
| {{no}} | | {{no}} | ||
| {{no}} | | {{no}} | ||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
|} | |} | ||
| − | | <!-- | + | |
| − | | <!-- | + | | <!-- Guix HURD --> |
| − | |- | + | | <!-- Hyperbola --> |
| − | + | | <!-- LibreCMC --> | |
| − | | <!-- | + | | <!-- Parabola --> |
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| + | ! rowspan=2 | | ||
| + | ! colspan=2 | Implementation | ||
| + | |- | ||
| + | ! kernel | ||
| + | ! fuse | ||
| + | |- | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|Parabola|exfatprogs}}}} |
| + | | {{yes|Yes: {{DistroPackage|Parabola|exfat-utils}}}} | ||
|- | |- | ||
| − | |||
| − | |||
|} | |} | ||
| − | | <!-- | + | | <!-- ProteanOS --> |
| − | | <!-- | + | | <!-- PureOS 10 (byzantium) --> |
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| + | ! rowspan=2 | | ||
| + | ! colspan=2 | Implementation | ||
| + | |- | ||
| + | ! kernel | ||
| + | ! fuse | ||
|- | |- | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|pureos|exfatprogs}}}} |
| + | | {{yes|Yes: {{DistroPackage|pureos|exfat-fuse}}, {{DistroPackage|pureos|exfat-utils}}}} | ||
|- | |- | ||
| − | ! | + | ! Graphical installer |
| − | | | + | | {{yes}} |
| + | | {{no}} | ||
|- | |- | ||
| − | ! | + | ! Rootfs with the graphical installer |
| + | | {{no|Broken}}<ref>The installation fails with an error.</ref> | ||
| {{no}} | | {{no}} | ||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| − | | <!-- | + | | <!-- Replicant 6.0 --> |
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| + | ! rowspan=2 | | ||
| + | ! colspan=2 | Implementation | ||
|- | |- | ||
| − | ! | + | ! kernel |
| − | + | ! fuse | |
|- | |- | ||
| − | ! | + | ! Internal partitions |
| + | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
| − | ! | + | ! Rootfs |
| − | | | + | | {{no}} |
| + | | {{no}} | ||
|- | |- | ||
| − | ! | + | ! MicroSD card |
| + | | {{no}} | ||
| {{yes}} | | {{yes}} | ||
| + | |- | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Trisquel 11 (aramo) --> |
| − | | <!-- | + | | <!-- Ututo S --> |
| − | | <!-- | + | |- |
| + | ! ext2 | ||
| + | | <!-- Dragora --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|Dragora|tools/e2fsprogs}}}} |
| + | |- | ||
| + | ! Rootfs with the graphical installer | ||
| + | | {{yes}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Dynebolics --> |
| − | | <!-- | + | | <!-- Guix x86 GNU/Linux --> |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| + | |- | ||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|guix|e2fsprogs}}}} |
|- | |- | ||
| − | ! | + | ! Guix system<ref name="guix-system"></ref> |
| − | + | | | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
! Installer | ! Installer | ||
| {{no}} | | {{no}} | ||
| + | |- | ||
| + | ! Rootfs | ||
| + | | | ||
|} | |} | ||
| <!-- Guix HURD --> | | <!-- Guix HURD --> | ||
| − | | <!-- Hyperbola --> | + | {| class="wikitable sortable" border="1" |
| − | | <!-- | + | |- bgcolor="#6699ff" |
| + | |- | ||
| + | ! Packages | ||
| + | | {{yes|Yes: {{DistroPackage|guix|e2fsprogs}}}} | ||
| + | |- | ||
| + | ! Guix system<ref name="guix-system"></ref> | ||
| + | | {{yes}} | ||
| + | |- | ||
| + | ! Installer | ||
| + | | N/A<ref name="guix-hurd-installer">There is no HURD installer yet.</ref> | ||
| + | |- | ||
| + | ! Rootfs | ||
| + | | {{yes}} | ||
| + | |} | ||
| + | | <!-- Hyperbola --> | ||
| + | | <!-- LibreCMC --> | ||
| <!-- Parabola --> | | <!-- Parabola --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
| Line 503: | Line 574: | ||
| {{yes|Yes: {{DistroPackage|Parabola|e2fsprogs}}}} | | {{yes|Yes: {{DistroPackage|Parabola|e2fsprogs}}}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- ProteanOS --> |
| − | | <!-- PureOS 10 (byzantium) --> | + | | <!-- PureOS 10 (byzantium) --> |
| <!-- Replicant 6.0 --> | | <!-- Replicant 6.0 --> | ||
| <!-- Trisquel 11 (aramo) --> | | <!-- Trisquel 11 (aramo) --> | ||
| <!-- Ututo S --> | | <!-- Ututo S --> | ||
|- | |- | ||
| − | ! | + | ! ext3 |
| − | | <!-- Dragora --> | + | | <!-- Dragora --> |
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| Line 519: | Line 590: | ||
| {{yes}} | | {{yes}} | ||
|} | |} | ||
| − | | <!-- Dynebolics --> | + | | <!-- Dynebolics --> |
| <!-- Guix x86 GNU/Linux --> | | <!-- Guix x86 GNU/Linux --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | |||
! Packages | ! Packages | ||
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|Guix|e2fsprogs}}}} |
| − | |||
| − | |||
| − | |||
|- | |- | ||
! Installer | ! Installer | ||
| − | | {{ | + | | {{no}} |
| − | |||
| − | |||
| − | |||
|} | |} | ||
| <!-- Guix HURD --> | | <!-- Guix HURD --> | ||
| − | | <!-- Hyperbola --> | + | | <!-- Hyperbola --> |
| + | | <!-- LibreCMC --> | ||
| + | | <!-- Parabola --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | + | ! Packages | |
| − | ! Packages | + | | {{yes|Yes: {{DistroPackage|Parabola|e2fsprogs}}}} |
| − | | {{yes|Yes: e2fsprogs}} | ||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| − | | <!-- | + | | <!-- ProteanOS --> |
| − | | <!-- | + | | <!-- PureOS 10 (byzantium) --> |
| + | | <!-- Replicant 6.0 --> | ||
| + | | <!-- Trisquel 11 (aramo) --> | ||
| + | | <!-- Ututo S --> | ||
| + | |- | ||
| + | ! ext4 | ||
| + | | <!-- Dragora --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| + | ! Packages | ||
| + | | {{yes|Yes: {{DistroPackage|Dragora|tools/e2fsprogs}}}} | ||
|- | |- | ||
| − | ! | + | ! Rootfs with the graphical installer |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| {{yes}} | | {{yes}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Dynebolics --> |
| − | | <!-- | + | | <!-- Guix x86 GNU/Linux --> |
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
|- | |- | ||
| − | ! Packages | + | ! Packages |
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|guix|e2fsprogs}}}} |
|- | |- | ||
| − | ! | + | ! Guix system<ref name="guix-system"></ref> |
| {{yes}} | | {{yes}} | ||
|- | |- | ||
| − | ! | + | ! Installer |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
! Rootfs | ! Rootfs | ||
| {{yes}} | | {{yes}} | ||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| − | | <!-- | + | | <!-- Guix HURD --> |
| + | | <!-- Hyperbola --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
|- | |- | ||
| − | ! Packages and | + | ! Packages and manual installation<ref name="manual-installation">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.</ref> |
| − | | {{yes|Yes: | + | | {{yes|Yes: e2fsprogs}} |
| − | |||
| − | |||
| − | |||
|- | |- | ||
! Rootfs | ! Rootfs | ||
| {{yes}} | | {{yes}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- LibreCMC --> |
| − | + | | <!-- Parabola --> | |
| − | |||
| − | | <!-- | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | |||
| − | |||
|- | |- | ||
| − | ! | + | ! Packages and manual installation<ref name="manual-installation">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.</ref> |
| − | | {{ | + | | {{yes|Yes: {{DistroPackage|Parabola|e2fsprogs}}}} |
| + | |- | ||
| + | ! Graphical installer | ||
| + | | | ||
| + | |- | ||
| + | ! Rootfs | ||
| + | | {{yes}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- ProteanOS --> |
| − | | <!-- | + | | <!-- PureOS 10 (byzantium) --> |
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
|- | |- | ||
| − | ! Packages | + | ! Packages and debootstrap installation<ref name="manual-installation"></ref> |
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|pureos|e2fsprogs}}}} |
|- | |- | ||
| − | ! | + | ! Graphical installer |
| {{yes}} | | {{yes}} | ||
|- | |- | ||
| − | ! | + | ! Rootfs with the graphical installer |
| − | | {{ | + | | {{yes}} |
| + | |} | ||
| + | | <!-- Replicant 6.0 --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! Internal partitions | ||
| + | | {{yes}} | ||
|- | |- | ||
! Rootfs | ! Rootfs | ||
| {{yes}} | | {{yes}} | ||
| + | |- | ||
| + | ! MicroSD card | ||
| + | | {{no}}<ref>After creating the rootfs with mkfs.ext4 from Guix, in Replicant, it says "Corrupted <vendor> SD card" in the notification bar.</ref> | ||
| + | |- | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Trisquel 11 (aramo) --> |
| − | |||
| − | |||
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
|- | |- | ||
| − | ! Packages and | + | ! Packages and debootstrap installation<ref name="manual-installation"></ref> |
| − | | {{yes|Yes: {{DistroPackage| | + | | {{yes|Yes: {{DistroPackage|trisquel|e2fsprogs}}}} |
|- | |- | ||
! Graphical installer | ! Graphical installer | ||
| Line 646: | Line 707: | ||
| {{yes}} | | {{yes}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Ututo S --> |
| − | | <!-- | + | |- |
| + | ! f2fs | ||
| + | | <!-- Dragora --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | + | ! Packages | |
| − | ! Packages | ||
| − | |||
| − | |||
| − | |||
| {{no}} | | {{no}} | ||
|- | |- | ||
| Line 660: | Line 719: | ||
| {{no}} | | {{no}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Dynebolics --> |
| + | | <!-- Guix x86 GNU/Linux --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
|- | |- | ||
| − | ! | + | ! Packages |
| + | | {{yes|Yes: {{DistroPackage|guix|f2fs-tools}}}} | ||
| + | |- | ||
| + | ! Guix system<ref name="guix-system"></ref> | ||
| {{yes}} | | {{yes}} | ||
| + | |- | ||
| + | ! Installer | ||
| + | | {{no}} | ||
|- | |- | ||
! Rootfs | ! Rootfs | ||
| − | | | + | | {{yes}} |
| − | |- | + | |} |
| − | ! | + | | <!-- Guix HURD --> |
| − | | | + | | <!-- Hyperbola --> |
| + | | <!-- LibreCMC --> | ||
| + | | <!-- Parabola --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | |- | ||
| + | ! Packages and manual installation<ref name="manual-installation"></ref> | ||
| + | | {{yes|Yes: {{DistroPackage|Parabola|f2fs-tools}}}} | ||
| + | |- | ||
| + | ! Graphical installer | ||
| + | | | ||
|- | |- | ||
| + | ! Rootfs | ||
| + | | {{yes}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- ProteanOS --> |
| − | | <!-- | + | | <!-- PureOS 10 (byzantium) --> |
| − | |||
| − | |||
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| − | |||
| − | |||
|- | |- | ||
| − | ! Rootfs with the graphical installer | + | ! Packages and debootstrap installation<ref name="manual-installation"></ref> |
| + | | {{yes|Yes: {{DistroPackage|pureos|f2fs-tools}}}} | ||
| + | |- | ||
| + | ! Graphical installer | ||
| + | | {{no}} | ||
| + | |- | ||
| + | ! Rootfs with the graphical installer | ||
| {{no}} | | {{no}} | ||
|} | |} | ||
| − | | <!-- | + | | <!-- Replicant 6.0 --> |
| − | |||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
|- | |- | ||
| − | ! | + | ! Internal partitions |
| − | |||
| − | |||
| − | |||
| {{yes}} | | {{yes}} | ||
|- | |- | ||
| − | ! | + | ! Rootfs |
| − | | | + | | ? |
|- | |- | ||
| − | ! Rootfs | + | ! MicroSD card |
| − | | {{no}} | + | | {{yes}}<ref>We can easily view the card content with "File Manager". It also detects a new MicroSD card when it is just formatted.</ref> |
| − | |} | + | |- |
| − | | <!-- Guix | + | |} |
| − | {| class="wikitable sortable" border="1" | + | | <!-- Trisquel 11 (aramo) --> |
| − | |- bgcolor="#6699ff" | + | | <!-- Ututo S --> |
| + | |- | ||
| + | ! fat | ||
| + | | <!-- Dragora --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! Packages | ||
| + | | {{yes|Yes: {{DistroPackage|Dragora|tools/dosfstools}}}} | ||
| + | |- | ||
| + | ! Rootfs with the graphical installer | ||
| + | | {{no}} | ||
| + | |} | ||
| + | | <!-- Dynebolics --> | ||
| + | | <!-- Guix x86 GNU/Linux --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
|- | |- | ||
! Packages | ! Packages | ||
| Line 715: | Line 805: | ||
|- | |- | ||
! Installer | ! Installer | ||
| − | | | + | | {{yes}} |
|- | |- | ||
! Rootfs | ! Rootfs | ||
| {{no}} | | {{no}} | ||
|} | |} | ||
| − | | <!-- Hyperbola --> | + | | <!-- Guix HURD --> |
| − | | <!-- LibreCMC --> | + | {| class="wikitable sortable" border="1" |
| − | | <!-- Parabola --> | + | |- bgcolor="#6699ff" |
| + | |- | ||
| + | ! Packages | ||
| + | | {{yes|Yes: {{DistroPackage|guix|dosfstools}}, {{DistroPackage|guix|mtools}}}} | ||
| + | |- | ||
| + | ! Guix system<ref name="guix-system"></ref> | ||
| + | | {{yes}} | ||
| + | |- | ||
| + | ! Installer | ||
| + | | N/A<ref name="guix-hurd-installer"></ref> | ||
| + | |- | ||
| + | ! Rootfs | ||
| + | | {{no}} | ||
| + | |} | ||
| + | | <!-- Hyperbola --> | ||
| + | | <!-- LibreCMC --> | ||
| + | | <!-- Parabola --> | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- bgcolor="#6699ff" | |- bgcolor="#6699ff" | ||
| Line 1,209: | Line 1,315: | ||
| <!-- Ututo S --> | | <!-- Ututo S --> | ||
|- | |- | ||
| − | ! xfs | + | ! XFS v4 |
| − | | <!-- Dragora --> | + | | <!-- Dragora 3.0 beta2 --> |
| − | {| class="wikitable sortable" border="1" | + | | <!-- Dynebolics --> |
| − | |- bgcolor="#6699ff" | + | | <!-- Guix i686-linux and x86_64-linux (x86 GNU/Linux) --> |
| − | ! Packages | + | | <!-- Guix i586-gnu (HURD) --> |
| + | | <!-- Hyperbola --> | ||
| + | | <!-- LibreCMC --> | ||
| + | | <!-- Parabola --> | ||
| + | | <!-- ProteanOS --> | ||
| + | | <!-- PureOS 10 (byzantium) --> | ||
| + | | <!-- Replicant 6.0 --> | ||
| + | | <!-- Trisquel 11 (aramo) --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- | ||
| + | ! Kernel | ||
| + | | Linux-image-generic has 'CONFIG_XFS_SUPPORT_V4=y', In Linux until 2030<ref name="xfs-v4-linux-removal"></ref> | ||
| + | |- | ||
| + | ! Packages | ||
| + | | {{yes}} | ||
| + | |- | ||
| + | ! Rootfs with the graphical installer | ||
| + | | ? | ||
| + | |} | ||
| + | | <!-- Ututo S --> | ||
| + | |- | ||
| + | ! XFS v5 | ||
| + | | <!-- Dragora --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! Packages | ||
| {{yes|Yes: {{DistroPackage|Dragora|tools/xfsprogs}}}} | | {{yes|Yes: {{DistroPackage|Dragora|tools/xfsprogs}}}} | ||
|- | |- | ||
| Line 1,361: | Line 1,492: | ||
| <!-- Ututo S --> | | <!-- Ututo S --> | ||
|- | |- | ||
| − | ! | + | ! LDM<ref>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.</ref> |
| <!-- Dragora --> | | <!-- Dragora --> | ||
| <!-- Dynebolics --> | | <!-- Dynebolics --> | ||
| Line 1,369: | Line 1,500: | ||
| <!-- LibreCMC --> | | <!-- LibreCMC --> | ||
| <!-- Parabola --> | | <!-- Parabola --> | ||
| − | {| class="wikitable sortable" border="1" | + | | <!-- ProteanOS --> |
| − | |- bgcolor="#6699ff" | + | | <!-- PureOS 10 (byzantium) --> |
| + | | <!-- Replicant 6.0 --> | ||
| + | | <!-- Trisquel 11 (aramo) --> | ||
| + | | <!-- Ututo S --> | ||
| + | |- | ||
| + | ! LUKS 1 | ||
| + | | <!-- Dragora --> | ||
| + | | <!-- Dynebolics --> | ||
| + | | <!-- Guix x86 GNU/Linux --> | ||
| + | | <!-- Guix HURD --> | ||
| + | | <!-- Hyperbola --> | ||
| + | | <!-- LibreCMC --> | ||
| + | | <!-- Parabola --> | ||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
|- | |- | ||
! Packages and manual installation<ref name="manual-installation"></ref> | ! Packages and manual installation<ref name="manual-installation"></ref> | ||
| Line 1,413: | Line 1,558: | ||
| <!-- Ututo S --> | | <!-- Ututo S --> | ||
|- | |- | ||
| − | ! | + | ! md RAID (with mdadm) |
| <!-- Dragora --> | | <!-- Dragora --> | ||
| <!-- Dynebolics --> | | <!-- Dynebolics --> | ||
| Line 1,452: | Line 1,597: | ||
| {{yes}} <!-- Trisquel 11 (aramo) --> | | {{yes}} <!-- Trisquel 11 (aramo) --> | ||
| <!-- Ututo S --> | | <!-- Ututo S --> | ||
| + | |- | ||
| + | ! nonraid<ref>https://github.com/qvr/nonraid</ref> | ||
| + | | <!-- Dragora --> | ||
| + | | <!-- Dynebolics --> | ||
| + | | <!-- Guix x86 GNU/Linux --> | ||
| + | | <!-- Guix HURD --> | ||
| + | | <!-- Hyperbola --> | ||
| + | | <!-- LibreCMC --> | ||
| + | | <!-- Parabola --> | ||
| + | | <!-- ProteanOS --> | ||
| + | | <!-- PureOS 10 (byzantium) --> | ||
| + | | <!-- Replicant 6.0 --> | ||
| + | | <!-- Trisquel 11 (aramo) --> | ||
| + | | <!-- Ututo S --> | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | == 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 kernel or bootloader package provided by the distributions you use. For FUSE it might not have any package for the distribution you use. | ||
| + | |||
| + | This can for instance be used to quickly check if a given filesystem may work when installing GNU/Linux on an ARM computer with a given bootloader. | ||
| + | |||
| + | If for instance the distribution package for u-boot doesn't support the filesystem you want to use, you could consider sending a patch to add it directly in the configuration provided by u-boot itself, to make sure all the distributions you could want to use (including in the future) has the change you need. This also lowers the cost of maintaining this change. | ||
| + | |||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! Project | ||
| + | ! Version | ||
| + | ! AFFS | ||
| + | ! AFS | ||
| + | ! BFS | ||
| + | ! BTRFS | ||
| + | ! EXFAT | ||
| + | ! EXT2 | ||
| + | ! EXT4 | ||
| + | ! FAT | ||
| + | ! F2FS | ||
| + | ! NILFS2 | ||
| + | ! NTFS | ||
| + | ! XFS v5 | ||
| + | ! ZFS | ||
| + | |- | ||
| + | ! colspan=17 | Bootloaders | ||
| + | |- | ||
| + | ! GRUB | ||
| + | ! <!-- Version --> | ||
| + | | {{yes}} <!-- AFFS --> | ||
| + | | {{yes}} <!-- AFS --> | ||
| + | | {{yes}} <!-- BFS --> | ||
| + | | {{yes}} <!-- BTRFS --> | ||
| + | | {{yes}} <!-- EXFAT --> | ||
| + | | {{yes}} <!-- EXT2 --> | ||
| + | | {{yes}} <!-- EXT4 --> | ||
| + | | {{yes}} <!-- FAT --> | ||
| + | | {{yes}} <!-- F2FS --> | ||
| + | | {{yes}} <!-- NILFS2 --> | ||
| + | | {{yes}} <!-- NTFS --> | ||
| + | | {{yes}} <!-- XFS v5 --> | ||
| + | | {{yes}} <!-- ZFS --> | ||
| + | |- | ||
| + | ! u-boot | ||
| + | ! <!-- Version --> | ||
| + | | {{no}} <!-- AFFS --> | ||
| + | | {{no}} <!-- AFS --> | ||
| + | | {{no}} <!-- BFS --> | ||
| + | | {{yes}} <!-- BTRFS --> | ||
| + | | {{yes}} <!-- EXFAT --> | ||
| + | | {{yes}} <!-- EXT2 --> | ||
| + | | {{yes}} <!-- EXT4 --> | ||
| + | | {{yes}} <!-- FAT --> | ||
| + | | {{no}} <!-- F2FS --> | ||
| + | | {{no}} <!-- NILFS2 --> | ||
| + | | {{no}} <!-- NTFS --> | ||
| + | | {{no}} <!-- XFS v5 --> | ||
| + | | {{yes}} <!-- ZFS --> | ||
| + | |- | ||
| + | ! colspan=17 | Kernels | ||
| + | |- | ||
| + | ! Hurd | ||
| + | ! | ||
| + | | ? <!-- AFFS --> | ||
| + | | ? <!-- AFS --> | ||
| + | | ? <!-- BFS --> | ||
| + | | ? <!-- BTRFS --> | ||
| + | | ? <!-- EXFAT --> | ||
| + | | {{yes}} <!-- EXT2 --> | ||
| + | | ? <!-- EXT4 --> | ||
| + | | {{yes}} <!-- FAT --> | ||
| + | | ? <!-- F2FS --> | ||
| + | | ? <!-- NILFS2 --> | ||
| + | | ? <!-- NTFS --> | ||
| + | | ? <!-- XFS v5 --> | ||
| + | | ? <!-- ZFS --> | ||
| + | |- | ||
| + | ! Linux | ||
| + | ! | ||
| + | | {{yes}} <!-- AFFS --> | ||
| + | | ? <!-- AFS --> | ||
| + | | ? <!-- BFS --> | ||
| + | | {{yes}} <!-- BTRFS --> | ||
| + | | {{yes}} <!-- EXFAT --> | ||
| + | | {{yes}} <!-- EXT2 --> | ||
| + | | {{yes}} <!-- EXT4 --> | ||
| + | | {{yes}} <!-- FAT --> | ||
| + | | {{yes}} <!-- F2FS --> | ||
| + | | {{yes}} <!-- NILFS2 --> | ||
| + | | {{yes}} <!-- NTFS --> | ||
| + | | {{yes}} <!-- XFS v5 --> | ||
| + | | {{no}} <!-- ZFS --> | ||
| + | |- | ||
| + | ! colspan=17 | API | ||
| + | |- | ||
| + | ! FUSE | ||
| + | ! | ||
| + | | ? <!-- AFFS --> | ||
| + | | ? <!-- AFS --> | ||
| + | | ? <!-- BFS --> | ||
| + | | ? <!-- BTRFS --> | ||
| + | | {{yes}}<ref>See the {{DistroPackage|guix|fuse-exfat}} package for more details.</ref> <!-- EXFAT --> | ||
| + | | ? <!-- EXT2 --> | ||
| + | | ? <!-- EXT4 --> | ||
| + | | ? <!-- FAT --> | ||
| + | | ? <!-- F2FS --> | ||
| + | | ? <!-- NILFS2 --> | ||
| + | | {{yes}}<ref>See the {{DistroPackage|guix|ntfs-3g}} package for more details.</ref> <!-- NTFS --> | ||
| + | | ? <!-- XFS v5 --> | ||
| + | | ? <!-- ZFS --> | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | === Read-only filesystems for block devices === | ||
| + | |||
| + | This list support for filesystems for block devices (hard disks, SSD, etc). | ||
| + | |||
| + | {| class="wikitable sortable" border="1" | ||
| + | |- bgcolor="#6699ff" | ||
| + | ! Project | ||
| + | ! Version | ||
| + | ! CRAMFS | ||
| + | ! EROFS | ||
| + | ! SquashFS | ||
| + | |- | ||
| + | ! colspan=5 | Bootloaders | ||
| + | |- | ||
| + | ! GRUB | ||
| + | ! <!-- Version --> | ||
| + | | {{no}} <!-- CRAMFS --> | ||
| + | | {{no}} <!-- EROFS --> | ||
| + | | {{yes}} <!-- SquashFS --> | ||
| + | |- | ||
| + | ! u-boot | ||
| + | ! <!-- Version --> | ||
| + | | {{yes}} <!-- CRAMFS --> | ||
| + | | {{yes}} <!-- EROFS --> | ||
| + | | {{yes}} <!-- SquashFS --> | ||
| + | |- | ||
| + | ! colspan=5 | Kernels | ||
| + | |- | ||
| + | ! Hurd | ||
| + | ! | ||
| + | | ? <!-- CRAMFS --> | ||
| + | | ? <!-- EROFS --> | ||
| + | | ? <!-- SquashFS --> | ||
| + | |- | ||
| + | ! Linux | ||
| + | ! | ||
| + | | {{yes}} <!-- CRAMFS --> | ||
| + | | {{yes}} <!-- EROFS --> | ||
| + | | {{yes}} <!-- SquashFS --> | ||
| + | |- | ||
| + | ! colspan=5 | API | ||
| + | |- | ||
| + | ! FUSE | ||
| + | ! | ||
| + | | ? <!-- CRAMFS --> | ||
| + | | ? <!-- EROFS --> | ||
| + | | ? <!-- SquashFS --> | ||
|- | |- | ||
|} | |} | ||
Latest revision as of 19:42, 16 December 2025
Contents
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]. |
|
|
| 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 |
|
|
| 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]. |
|
|
| XFS v4 | |||
| 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 [...] |
|
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 [...] |
|
Yes |
| F2FS | mkfs.f2fs [...] && sload.f2fs -f ./directory [...] |
|
Yes |
| FAT12, FAT16, FAT32, VFAT | mkfs.msdos [...] && mcopy -bsp -i [...] |
|
Yes |
| HFS+ | Might be possible with hpcopy and hpmkdir |
|
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) |
|
No |
| SquashFS | mksquashfs ./directory [...] |
|
No |
| XFS | Might be possible since xfsprogs 6.17.0 (patch merged in 6.17.0) |
|
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 [...] |
|
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 |
|
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 |
|
|||||||||||||||||
| Hyperbola | ||||||||||||||||||
| LibreCMC | ||||||||||||||||||
| Parabola | ||||||||||||||||||
| ProteanOS | ||||||||||||||||||
| PureOS 10 (byzantium) |
|
|
||||||||||||||||
| 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 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| erofs |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| exfat |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ext2 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ext3 |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ext4 |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| f2fs |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fat |
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| hfs |
|
No[17] | No[18] | No[19] |
|
No[20] |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| hfs+ |
|
No[21] | No[22] | No[23] |
|
No[24] |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| jfs |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| minix |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| nilfs2 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ntfs |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| reiser4 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| reiserfs |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| XFS v4 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| XFS v5 |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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 |
|
Yes | Yes | |||||||||||||||
| LUKS 2 |
|
Yes | Yes | |||||||||||||||
| md RAID (with mdadm) | ||||||||||||||||||
| LVM2 |
|
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 kernel or bootloader package provided by the distributions you use. For FUSE it might not have any package for the distribution you use.
This can for instance be used to quickly check if a given filesystem may work when installing GNU/Linux on an ARM computer with a given bootloader.
If for instance the distribution package for u-boot doesn't support the filesystem you want to use, you could consider sending a patch to add it directly in the configuration provided by u-boot itself, to make sure all the distributions you could want to use (including in the future) has the change you need. This also lowers the cost of maintaining this change.
| Project | Version | AFFS | AFS | BFS | BTRFS | EXFAT | EXT2 | EXT4 | FAT | F2FS | NILFS2 | NTFS | XFS v5 | ZFS | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bootloaders | ||||||||||||||||
| GRUB | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
| u-boot | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No | Yes | |||
| Kernels | ||||||||||||||||
| Hurd | ? | ? | ? | ? | ? | Yes | ? | Yes | ? | ? | ? | ? | ? | |||
| Linux | Yes | ? | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | |||
| API | ||||||||||||||||
| FUSE | ? | ? | ? | ? | Yes[34] | ? | ? | ? | ? | ? | Yes[35] | ? | ? | |||
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
- ↑ See the Unmaintained filesystems as a threat vector lwn.net article for more details.
- ↑ 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.
- ↑ https://web.archive.org/web/20240422185730/https://lore.kernel.org/lkml/CAHk-=whDuqyVC6xMkOnNt2EeTd-s4uqa3sYghj5UzkELFW2bpw@mail.gmail.com/
- ↑ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f2c61db29f27
- ↑ 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"
- ↑ https://en.wikipedia.org/wiki/ReiserFS#fsck
-
↑ 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. - ↑ 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.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.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.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.
- ↑ The installation fails with an error.
- ↑ 13.013.1 There is no HURD installer yet.
- ↑ After creating the rootfs with mkfs.ext4 from Guix, in Replicant, it says "Corrupted <vendor> SD card" in the notification bar.
- ↑ We can easily view the card content with "File Manager". It also detects a new MicroSD card when it is just formatted.
- ↑ The installation fails with an error.
- ↑ There is no hfsutils package.
- ↑ There is no hfsutils package.
- ↑ There is no hfsutils package.
- ↑ There is no hfsutils repository in the manifest.
- ↑ There is no hfsprogs package.
- ↑ There is no hfsprogs package.
- ↑ There is no hfsprogs package.
- ↑ There is no hfsprogs repository in the manifest.
- ↑ The installation fails with an error.
- ↑ The graphical installer complains about some UUID related issue
- ↑ 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.
- ↑ Once installed, the rootfs is mounted with FUSE and ntfs-3g.
- ↑ 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.030.130.2 According to the reiser 4 wiki, upstream Linux has no reiser4 support.
- ↑ 31.031.131.231.331.4 https://guix.gnu.org/manual/devel/en/guix.html#FOOT10
- ↑ 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.
- ↑ https://github.com/qvr/nonraid
- ↑ See the fuse-exfat package for more details.
- ↑ See the ntfs-3g package for more details.