Group: Software/FSDG distributions/Filesystems

From LibrePlanet
Jump to: navigation, search
(Filesystems: Pureos: also unify missed rootfs)
(Filesystems: hurd: sync with ext2)
 
(44 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
This article is about filesystems support and might be extended to take into account block device technologies too like LVM,RAID, etc.
 
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<ref>See the [https://lwn.net/Articles/939097/ Unmaintained filesystems as a threat vector lwn.net article] for more details.</ref>) to propose it by default.
 +
 +
=== Known issues and limitations ===
 +
 +
* With NTFS the free software implementation lacks the ability to repair the filesystem without nonfree software, so if you have data in NTFS filesystem it would be a good idea to move it to other filesystems.
 +
 +
* ReiserFS 3 will be removed from Linux in 2025.<ref name="reiserfs-deprecated">
 +
The Linux kernel documentation for the REISERFS_FS option tells that:<br/>
 +
Reiserfs is deprecated and scheduled to be removed from the kernel<br/>
 +
in 2025. If you are still using it, please migrate to another<br/>
 +
filesystem or tell us your usecase for reiserfs.<br/></ref>
 +
 +
== 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
 +
|
 +
|
 +
|-
 +
! Dynebolic
 +
|
 +
|
 +
|-
 +
! Guix
 +
|
 +
|
 +
|-
 +
! Hyperbola
 +
|
 +
|
 +
|-
 +
! LibreCMC
 +
|
 +
|
 +
|-
 +
! Parabola
 +
|
 +
|
 +
|-
 +
! ProteanOS
 +
|
 +
|
 +
|-
 +
! PureOS 10 (byzantium)
 +
|
 +
{| 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 ==
 
== Filesystems ==
Line 8: Line 93:
 
|- bgcolor="#6699ff"
 
|- bgcolor="#6699ff"
 
! rowspan=2  |
 
! rowspan=2  |
! colspan=11 | Distributions
+
! colspan=12 | Distributions
 
|-
 
|-
 
! Dragora
 
! Dragora
 
! Dynebolics
 
! Dynebolics
! Guix
+
! Guix i686-linux and x86_64-linux (x86 GNU/Linux)
 +
! Guix i586-gnu (HURD)
 
! Hyperbola
 
! Hyperbola
 
! LibreCMC
 
! LibreCMC
Line 19: Line 105:
 
! PureOS 10 (byzantium)
 
! PureOS 10 (byzantium)
 
! Replicant 6.0
 
! Replicant 6.0
! Trisquel 10 (nabia)
+
! Trisquel 11 (aramo)
 
! Ututo S
 
! Ututo S
 
|-
 
|-
Line 25: Line 111:
 
| <!--  Dragora -->
 
| <!--  Dragora -->
 
| <!--  Dynebolics -->
 
| <!--  Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
 
  |- bgcolor="#6699ff"
 
  |- bgcolor="#6699ff"
 
  |-
 
  |-
 
  ! Packages
 
  ! Packages
  | {{yes|Yes: btrfs-progs}}
+
  | {{yes|Yes: {{DistroPackage|guix|btrfs-progs}}}}
 
  |-
 
  |-
 
  ! Guix system<ref name="guix-system">This tells if that filesystem can be used in a system.scm system definition.</ref>
 
  ! Guix system<ref name="guix-system">This tells if that filesystem can be used in a system.scm system definition.</ref>
Line 41: Line 127:
 
  | {{yes}}
 
  | {{yes}}
 
  |}
 
  |}
 +
| <!--  Guix HURD -->
 
| <!--  Hyperbola -->
 
| <!--  Hyperbola -->
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
Line 48: Line 135:
 
  |-
 
  |-
 
  ! 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>
 
  ! 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: btrfs-progs}}
+
  | {{yes|Yes: {{DistroPackage|parabola|btrfs-progs}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 62: Line 149:
 
  |-
 
  |-
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
  | {{yes|Yes: btrfs-progs}}
+
  | {{yes|Yes: {{DistroPackage|pureos|btrfs-progs}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 71: Line 158:
 
  |}
 
  |}
 
| <!--  Replicant 6.0 -->
 
| <!--  Replicant 6.0 -->
| <!--  Trisquel 10 (nabia) -->
+
| <!--  Trisquel 11 (aramo) -->
 
| <!--  Ututo S -->
 
| <!--  Ututo S -->
 
|-
 
|-
Line 77: Line 164:
 
| <!--  Dragora -->
 
| <!--  Dragora -->
 
| <!--  Dynebolics -->
 
| <!--  Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 +
| <!--  Guix HURD -->
 
| <!--  Hyperbola -->
 
| <!--  Hyperbola -->
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
Line 85: Line 173:
 
{| 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: exfat-fuse, exfat-utils, exfatprogs}}
+
  | {{yes|Yes: {{DistroPackage|pureos|exfatprogs}}}}
 +
| {{yes|Yes: {{DistroPackage|pureos|exfat-fuse}}, {{DistroPackage|pureos|exfat-utils}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
 
  | {{yes}}
 
  | {{yes}}
 +
| {{no}}
 
  |-
 
  |-
 
  ! Rootfs with the graphical installer  
 
  ! Rootfs with the graphical installer  
 
  | {{no|Broken}}<ref>The installation fails with an error.</ref>
 
  | {{no|Broken}}<ref>The installation fails with an error.</ref>
 +
| {{no}}
 
  |}
 
  |}
 
| <!--  Replicant 6.0 -->
 
| <!--  Replicant 6.0 -->
| <!--  Trisquel 10 (nabia) -->
+
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! rowspan=2 |
 +
! colspan=2 | Implementation
 +
|-
 +
! kernel
 +
! fuse
 +
|-
 +
! Internal partitions
 +
| {{no}}
 +
| {{yes}}
 +
|-
 +
! Rootfs
 +
| {{no}}
 +
| {{no}}
 +
|-
 +
! MicroSD card
 +
| {{no}}
 +
| {{yes}}
 +
|-
 +
|}
 +
| <!--  Trisquel 11 (aramo) -->
 
| <!--  Ututo S -->
 
| <!--  Ututo S -->
 +
|-
 +
! ext2
 +
| <!-- Dragora -->
 +
| <!-- Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|guix|e2fsprogs}}}}
 +
|-
 +
! Guix system<ref name="guix-system"></ref>
 +
|
 +
|-
 +
! Installer
 +
|
 +
|-
 +
! Rootfs
 +
|
 +
|}
 +
| <!--  Guix HURD -->
 +
{| 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 -->
 +
| <!-- ProteanOS -->
 +
| <!--  PureOS 10 (byzantium) -->
 +
| <!-- Replicant 6.0 -->
 +
| <!-- Trisquel 11 (aramo) -->
 +
| <!-- Ututo S -->
 
|-
 
|-
 
! ext4
 
! ext4
 
| <!-- Dragora -->
 
| <!-- Dragora -->
 
| <!-- Dynebolics -->
 
| <!-- Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
 
  |- bgcolor="#6699ff"
 
  |- bgcolor="#6699ff"
 
  |-
 
  |-
 
  ! Packages
 
  ! Packages
  | {{yes|Yes: e2fsprogs}}
+
  | {{yes|Yes: {{DistroPackage|guix|e2fsprogs}}}}
 
  |-
 
  |-
 
  ! Guix system<ref name="guix-system"></ref>
 
  ! Guix system<ref name="guix-system"></ref>
Line 118: Line 279:
 
  | {{yes}}
 
  | {{yes}}
 
  |}
 
  |}
 +
| <!--  Guix HURD -->
 
| <!-- Hyperbola -->
 
| <!-- Hyperbola -->
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 148: Line 310:
 
  |-
 
  |-
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
  | {{yes|Yes: e2fsprogs}}
+
  | {{yes|Yes: {{DistroPackage|pureos|e2fsprogs}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 159: Line 321:
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
 
  |- bgcolor="#6699ff"
 
  |- bgcolor="#6699ff"
|-
 
 
  ! Internal partitions
 
  ! Internal partitions
 
  | {{yes}}
 
  | {{yes}}
Line 167: Line 328:
 
  |-
 
  |-
 
  ! MicroSD card
 
  ! MicroSD card
  | {{no}}
+
  | {{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 10 (nabia) -->
+
| <!-- Trisquel 11 (aramo) -->
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
 
  |- bgcolor="#6699ff"
 
  |- bgcolor="#6699ff"
 
  |-
 
  |-
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
  | {{yes|Yes: e2fsprogs}}
+
  | {{yes|Yes: {{DistroPackage|trisquel|e2fsprogs}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 188: Line 349:
 
| <!-- Dragora -->
 
| <!-- Dragora -->
 
| <!-- Dynebolics -->
 
| <!-- Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
 
  |- bgcolor="#6699ff"
 
  |- bgcolor="#6699ff"
 
  |-
 
  |-
 
  ! Packages
 
  ! Packages
  | {{yes|Yes: f2fs-tools}}
+
  | {{yes|Yes: {{DistroPackage|guix|f2fs-tools}}}}
 
  |-
 
  |-
 
  ! Guix system<ref name="guix-system"></ref>
 
  ! Guix system<ref name="guix-system"></ref>
Line 204: Line 365:
 
  | {{yes}}
 
  | {{yes}}
 
  |}
 
  |}
 +
| <!--  Guix HURD -->
 
| <!--  Hyperbola -->
 
| <!--  Hyperbola -->
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
Line 225: Line 387:
 
  |-
 
  |-
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
 
  ! Packages and debootstrap installation<ref name="manual-installation"></ref>
  | {{yes|Yes: f2fs-tools}}
+
  | {{yes|Yes: {{DistroPackage|pureos|f2fs-tools}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 244: Line 406:
 
  |-
 
  |-
 
  ! MicroSD card
 
  ! 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>
 
  |-
 
  |-
 
  |}
 
  |}
| <!-- Trisquel 10 (nabia) -->
+
| <!-- Trisquel 11 (aramo) -->
 
| <!-- Ututo S -->
 
| <!-- Ututo S -->
 
|-
 
|-
Line 253: Line 415:
 
| <!-- Dragora -->
 
| <!-- Dragora -->
 
| <!-- Dynebolics -->
 
| <!-- Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
 
  |- bgcolor="#6699ff"
 
  |- bgcolor="#6699ff"
 
  |-
 
  |-
 
  ! Packages
 
  ! Packages
  | {{yes|Yes: dosfstools, mtools}}
+
  | {{yes|Yes: {{DistroPackage|guix|dosfstools}}, {{DistroPackage|guix|mtools}}}}
 
  |-
 
  |-
 
  ! Guix system<ref name="guix-system"></ref>
 
  ! Guix system<ref name="guix-system"></ref>
Line 265: Line 427:
 
  ! Installer
 
  ! Installer
 
  | {{yes}}
 
  | {{yes}}
 +
|-
 +
! Rootfs
 +
| {{no}}
 +
|}
 +
| <!--  Guix HURD -->
 +
{| class="wikitable sortable" border="1"
 +
|- 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
 
  ! Rootfs
Line 276: Line 454:
 
  |-
 
  |-
 
  ! Packages and manual installation<ref name="manual-installation"></ref>
 
  ! Packages and manual installation<ref name="manual-installation"></ref>
  | {{yes|Yes: dosfstools, mtools}}
+
  | {{yes|Yes: {{DistroPackage|parabola|dosfstools}}, {{DistroPackage|parabola|mtools}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 290: Line 468:
 
  |-
 
  |-
 
  ! Packages
 
  ! Packages
  | {{yes|Yes: dosfstools, mtools}}
+
  | {{yes|Yes: {{DistroPackage|pureos|dosfstools}}, {{DistroPackage|pureos|mtools}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 312: Line 490:
 
  |-
 
  |-
 
  |}
 
  |}
| <!-- Trisquel 10 (nabia) -->
+
| <!-- Trisquel 11 (aramo) -->
 
| <!-- Ututo S -->
 
| <!-- Ututo S -->
 
|-
 
|-
Line 319: Line 497:
 
| <!-- Dynebolics -->
 
| <!-- Dynebolics -->
 
| {{no}}<ref>[https://packages.guix.gnu.org/search/?query=hfsutils There is no hfsutils package].</ref>
 
| {{no}}<ref>[https://packages.guix.gnu.org/search/?query=hfsutils There is no hfsutils package].</ref>
 +
|
 
| {{no}}<ref>[https://www.hyperbola.info/packages/?q=hfsutils There is no hfsutils package].</ref>
 
| {{no}}<ref>[https://www.hyperbola.info/packages/?q=hfsutils There is no hfsutils package].</ref>
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
Line 324: Line 503:
 
| <!--  ProteanOS -->
 
| <!--  ProteanOS -->
 
| <!--  PureOS 10 (byzantium) -->
 
| <!--  PureOS 10 (byzantium) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|pureos|hfsutils}}}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 
| {{no}}<ref>There is no hfsutils repository in the manifest.</ref>
 
| {{no}}<ref>There is no hfsutils repository in the manifest.</ref>
| <!-- Trisquel 10 (nabia) -->
+
| <!-- Trisquel 11 (aramo) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|trisquel|hfsutils}}}}
 +
|-
 +
! Graphical installer
 +
| ?
 +
|-
 +
! Rootfs with the graphical installer
 +
| ?
 +
|}
 
| <!-- Ututo S -->
 
| <!-- Ututo S -->
 
|-
 
|-
Line 332: Line 535:
 
| <!-- Dynebolics -->
 
| <!-- Dynebolics -->
 
| {{no}}<ref>[https://packages.guix.gnu.org/search/?query=hfsprogs There is no hfsprogs package].</ref>
 
| {{no}}<ref>[https://packages.guix.gnu.org/search/?query=hfsprogs There is no hfsprogs package].</ref>
 +
|
 
| {{no}}<ref>[https://www.hyperbola.info/packages/?q=hfsprogs There is no hfsprogs package].</ref>
 
| {{no}}<ref>[https://www.hyperbola.info/packages/?q=hfsprogs There is no hfsprogs package].</ref>
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
Line 337: Line 541:
 
| <!--  ProteanOS -->
 
| <!--  ProteanOS -->
 
| <!--  PureOS 10 (byzantium) -->
 
| <!--  PureOS 10 (byzantium) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|pureos|hfsplus}}}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 
| {{no}}<ref>There is no hfsprogs repository in the manifest.</ref>
 
| {{no}}<ref>There is no hfsprogs repository in the manifest.</ref>
| <!-- Trisquel 10 (nabia) -->
+
| <!-- Trisquel 11 (aramo) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|trisquel|hfsplus}}}}
 +
|-
 +
! Graphical installer
 +
| ?
 +
|-
 +
! Rootfs with the graphical installer
 +
| ?
 +
|}
 +
| <!-- Ututo S -->
 +
|-
 +
! jfs
 +
| <!-- Dragora -->
 +
| <!-- Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|guix|jfsutils}}}}
 +
|-
 +
! Guix system<ref name="guix-system"></ref>
 +
| {{yes}}
 +
|-
 +
! Installer
 +
| {{yes}}
 +
|-
 +
! Rootfs
 +
| {{yes}}
 +
|}
 +
| <!--  Guix HURD -->
 +
| <!-- Hyperbola -->
 +
| <!-- LibreCMC -->
 +
| <!-- Parabola -->
 +
| <!-- ProteanOS -->
 +
| <!-- PureOS 10 (byzantium) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|pureos|jfsutils}}}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 +
| <!-- Replicant 6.0 -->
 +
| <!-- Trisquel 11 (aramo) -->
 
| <!-- Ututo S -->
 
| <!-- Ututo S -->
 
|-
 
|-
Line 344: Line 613:
 
| <!--  Dragora -->
 
| <!--  Dragora -->
 
| <!--  Dynebolics -->
 
| <!--  Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 +
| <!--  Guix HURD -->
 
| <!--  Hyperbola -->
 
| <!--  Hyperbola -->
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
Line 354: Line 624:
 
  |-
 
  |-
 
  ! Packages
 
  ! Packages
  | {{yes|Yes: util-linux}}
+
  | {{yes|Yes: {{DistroPackage|pureos|util-linux}}}}
 
  |-
 
  |-
 
  ! Graphical installer
 
  ! Graphical installer
Line 363: Line 633:
 
  |}
 
  |}
 
| <!--  Replicant 6.0 -->
 
| <!--  Replicant 6.0 -->
| <!--  Trisquel 10 (nabia) -->
+
| <!--  Trisquel 11 (aramo) -->
 
| <!--  Ututo S -->
 
| <!--  Ututo S -->
 +
|-
 +
! nilfs2
 +
| <!-- Dragora -->
 +
| <!-- Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|guix|nilfs-utils}}}}
 +
|-
 +
! Guix system<ref name="guix-system"></ref>
 +
| ?
 +
|-
 +
! Installer
 +
| ?
 +
|-
 +
! Rootfs
 +
| ?
 +
|}
 +
| <!--  Guix HURD -->
 +
| <!-- Hyperbola -->
 +
| <!-- LibreCMC -->
 +
| <!-- Parabola -->
 +
| <!-- ProteanOS -->
 +
| <!-- PureOS 10 (byzantium) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|pureos|nilfs-tools}}}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 +
| <!-- Replicant 6.0 -->
 +
| <!-- Trisquel 11 (aramo) -->
 +
| <!-- Ututo S -->
 
|-
 
|-
 
! ntfs
 
! ntfs
 
| <!--  Dragora -->
 
| <!--  Dragora -->
 
| <!--  Dynebolics -->
 
| <!--  Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|guix|ntfs-3g}}}}
 +
|-
 +
! Guix system<ref name="guix-system"></ref>
 +
| ?
 +
|-
 +
! Installer
 +
| {{no|Broken}}<ref>The graphical installer complains about some UUID related issue</ref>
 +
|-
 +
! Rootfs
 +
| {{no|Broken}}<ref>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.</ref>
 +
|}
 +
| <!--  Guix HURD -->
 
| <!--  Hyperbola -->
 
| <!--  Hyperbola -->
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
Line 381: Line 707:
 
  |-
 
  |-
 
  ! kernel
 
  ! kernel
  ! ntfs-3g
+
  ! fuse
 
  |-
 
  |-
 
  ! Packages
 
  ! Packages
 
  |
 
  |
  | {{yes|Yes: ntfs-3g}}
+
  | {{yes|Yes: {{DistroPackage|pureos|ntfs-3g}}}}
 
  |-
 
  |-
  ! Rootfs with the graphical installer  
+
  ! Graphical installer  
 
  | {{no}}<ref>Once installed, the rootfs is mounted with FUSE and ntfs-3g.</ref>
 
  | {{no}}<ref>Once installed, the rootfs is mounted with FUSE and ntfs-3g.</ref>
 
  | {{yes}}
 
  | {{yes}}
Line 396: Line 722:
 
  |}
 
  |}
 
| <!--  Replicant 6.0 -->
 
| <!--  Replicant 6.0 -->
| <!--  Trisquel 10 (nabia) -->
+
| <!--  Trisquel 11 (aramo) -->
 
| <!--  Ututo S -->
 
| <!--  Ututo S -->
 +
|-
 +
! reiser4
 +
| <!-- Dragora -->
 +
| <!-- Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! Kernel
 +
| {{no}}<ref name="reiser4-not-upstream">According to the [https://reiser4.wiki.kernel.org/index.php/Reiser4_patchsets reiser 4 wiki], upstream Linux has no reiser4 support.</ref>
 +
|-
 +
! Packages
 +
| {{no}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 +
| <!--  Guix HURD -->
 +
| <!-- Hyperbola -->
 +
| <!-- LibreCMC -->
 +
| <!-- Parabola -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! Kernel
 +
| {{no}}<ref name="reiser4-not-upstream"></ref>
 +
|-
 +
! Packages
 +
| {{no}}
 +
|-
 +
! Graphical installer
 +
|
 +
|-
 +
! Rootfs
 +
|
 +
|}
 +
| <!-- ProteanOS -->
 +
| <!-- PureOS 10 (byzantium) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! Kernel
 +
| {{no}}<ref name="reiser4-not-upstream"></ref>
 +
|-
 +
! Packages
 +
| {{yes|Yes: reiser4progs}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 +
| <!-- Replicant 6.0 -->
 +
| <!-- Trisquel 11 (aramo) -->
 +
| <!-- Ututo S -->
 +
|-
 +
! reiserfs
 +
| <!-- Dragora -->
 +
| <!-- Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! Kernel
 +
| {{orange|Until 2025}}<ref name="reiserfs-deprecated"></ref>
 +
|-
 +
! Packages
 +
| {{no}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 +
| <!--  Guix HURD -->
 +
| <!-- Hyperbola -->
 +
| <!-- LibreCMC -->
 +
| <!-- Parabola -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! Kernel
 +
| {{orange|Until 2025}}<ref name="reiserfs-deprecated"></ref>
 +
|-
 +
! Packages
 +
| {{no}}
 +
|-
 +
! Graphical installer
 +
|
 +
|-
 +
! Rootfs
 +
|
 +
|}
 +
| <!-- ProteanOS -->
 +
| <!-- PureOS 10 (byzantium) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
! Kernel
 +
| {{orange|Until 2025}}<ref name="reiserfs-deprecated"></ref>
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|guix|reiserfsprogs}}}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 +
| <!-- Replicant 6.0 -->
 +
| <!-- Trisquel 11 (aramo) -->
 +
| <!-- Ututo S -->
 +
|-
 +
! xfs
 +
| <!-- Dragora -->
 +
| <!-- Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|guix|xfsprogs}}}}
 +
|-
 +
! Guix system<ref name="guix-system"></ref>
 +
| {{yes}}
 +
|-
 +
! Installer
 +
| {{yes}}
 +
|-
 +
! Rootfs
 +
| {{yes}}
 +
|}
 +
| <!--  Guix HURD -->
 +
| <!-- Hyperbola -->
 +
| <!-- LibreCMC -->
 +
| <!-- Parabola -->
 +
| <!-- ProteanOS -->
 +
| <!-- PureOS 10 (byzantium) -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages
 +
| {{yes|Yes: {{DistroPackage|pureos|xfsprogs}}, {{DistroPackage|pureos|xfsdump}}}}
 +
|-
 +
! Graphical installer
 +
| {{no}}
 +
|-
 +
! Rootfs with the graphical installer
 +
| {{no}}
 +
|}
 +
| <!-- Replicant 6.0 -->
 +
| <!-- Trisquel 11 (aramo) -->
 +
| <!-- Ututo S -->
 +
|-
 +
! rowspan=2  |
 +
! 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
 +
|-
 +
! colspan=12 | Distributions
 
|}
 
|}
  
Line 404: Line 899:
 
|- bgcolor="#6699ff"
 
|- bgcolor="#6699ff"
 
! rowspan=2  |
 
! rowspan=2  |
! colspan=11 | Distributions
+
! colspan=12 | Distributions
 
|-
 
|-
 
! Dragora
 
! Dragora
 
! Dynebolics
 
! Dynebolics
! Guix
+
! Guix i686-linux and x86_64-linux (x86 GNU/Linux)
 +
! Guix i586-gnu (HURD)
 
! Hyperbola
 
! Hyperbola
 
! LibreCMC
 
! LibreCMC
Line 415: Line 911:
 
! PureOS 10 (byzantium)
 
! PureOS 10 (byzantium)
 
! Replicant 6.0
 
! Replicant 6.0
! Trisquel 10 (nabia)
+
! Trisquel 11 (aramo)
 
! Ututo S
 
! Ututo S
 +
|-
 +
! dmraid
 +
| <!--  Dragora -->
 +
| <!--  Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
| <!--  Guix HURD -->
 +
| <!--  Hyperbola -->
 +
| <!--  LibreCMC -->
 +
| <!--  Parabola -->
 +
| <!--  ProteanOS -->
 +
| <!--  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>
 +
| {{yes|Yes: {{DistroPackage|parabola|cryptsetup}}}}
 +
|-
 +
! Graphical installer
 +
|
 +
|-
 +
! Rootfs
 +
| {{yes}}
 +
|}
 +
| <!--  ProteanOS -->
 +
| {{yes}}  <!--  PureOS 10 (byzantium) -->
 +
| <!--  Replicant 6.0 -->
 +
| {{yes}}  <!--  Trisquel 11 (aramo) -->
 +
| <!--  Ututo S -->
 +
|-
 +
! LUKS 2
 +
| <!--  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>
 +
| {{yes|Yes: {{DistroPackage|parabola|cryptsetup}}}}
 +
|-
 +
! Graphical installer
 +
|
 +
|-
 +
! Rootfs
 +
| {{yes|Yes but requires a /boot as GRUB only has partial LUKS2 support}}
 +
|}
 +
| <!--  ProteanOS -->
 +
| {{yes}}  <!--  PureOS 10 (byzantium) -->
 +
| <!--  Replicant 6.0 -->
 +
| {{yes}}  <!--  Trisquel 11 (aramo) -->
 +
| <!--  Ututo S -->
 +
|-
 +
! mdraid
 +
| <!--  Dragora -->
 +
| <!--  Dynebolics -->
 +
| <!--  Guix x86 GNU/Linux -->
 +
| <!--  Guix HURD -->
 +
| <!--  Hyperbola -->
 +
| <!--  LibreCMC -->
 +
| <!--  Parabola -->
 +
| <!--  ProteanOS -->
 +
| <!--  PureOS 10 (byzantium) -->
 +
| <!--  Replicant 6.0 -->
 +
| <!--  Trisquel 11 (aramo) -->
 +
| <!--  Ututo S -->
 
|-
 
|-
 
! LVM2
 
! LVM2
 
| <!--  Dragora -->
 
| <!--  Dragora -->
 
| <!--  Dynebolics -->
 
| <!--  Dynebolics -->
| <!--  Guix -->
+
| <!--  Guix x86 GNU/Linux -->
 +
| <!--  Guix HURD -->
 
| <!--  Hyperbola -->
 
| <!--  Hyperbola -->
 
| <!--  LibreCMC -->
 
| <!--  LibreCMC -->
 
| <!--  Parabola -->
 
| <!--  Parabola -->
 +
{| class="wikitable sortable" border="1"
 +
|- bgcolor="#6699ff"
 +
|-
 +
! Packages and manual installation<ref name="manual-installation"></ref>
 +
| {{yes|Yes: {{DistroPackage|parabola|lvm2}}}}
 +
|-
 +
! Graphical installer
 +
|
 +
|-
 +
! Rootfs
 +
| {{yes}}
 +
|}
 
| <!--  ProteanOS -->
 
| <!--  ProteanOS -->
| <!--  PureOS 10 (byzantium) -->
+
| {{yes}}  <!--  PureOS 10 (byzantium) -->
 
| <!--  Replicant 6.0 -->
 
| <!--  Replicant 6.0 -->
| <!--  Trisquel 10 (nabia) -->
+
| {{yes}}  <!--  Trisquel 11 (aramo) -->
 
| <!--  Ututo S -->
 
| <!--  Ututo S -->
 
|-
 
|-

Latest revision as of 15:59, 10 October 2023

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.

Known issues and limitations

  • With NTFS the free software implementation lacks the ability to repair the filesystem without nonfree software, so if you have data in NTFS filesystem it would be a good idea to move it to other filesystems.
  • ReiserFS 3 will be removed from Linux in 2025.[2]

Defaults

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

Distribution Defaults Comments
Dragora
Dynebolic
Guix
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 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:

btrfs-progs

Guix system[3] Yes
Installer Yes
Rootfs Yes
Packages and manual installation[4] Yes:

btrfs-progs

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

btrfs-progs

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

exfatprogs

Yes:

exfat-fuse,

exfat-utils

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

e2fsprogs

Guix system[3]
Installer
Rootfs
Packages Yes:

e2fsprogs

Guix system[3] Yes
Installer N/A[6]
Rootfs Yes
ext4
Packages Yes:

e2fsprogs

Guix system[3] Yes
Installer Yes
Rootfs Yes
Packages and manual installation[4] Yes: e2fsprogs
Rootfs Yes
Packages and manual installation[4] Yes: e2fsprogs
Graphical installer
Rootfs Yes
Packages and debootstrap installation[4] Yes:

e2fsprogs

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

e2fsprogs

Graphical installer
Rootfs Yes
f2fs
Packages Yes:

f2fs-tools

Guix system[3] Yes
Installer No
Rootfs Yes
Packages and manual installation[4] Yes: e2fsprogs
Graphical installer
Rootfs Yes
Packages and debootstrap installation[4] Yes:

f2fs-tools

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

dosfstools,

mtools

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

dosfstools,

mtools

Guix system[3] Yes
Installer N/A[6]
Rootfs No
Packages and manual installation[4] Yes:

dosfstools,

mtools

Graphical installer
Rootfs No
Packages Yes:

dosfstools,

mtools

Graphical installer Yes
Rootfs with the graphical installer Broken[9]
Internal partitions Yes
Rootfs No
MicroSD card Yes
hfs No[10] No[11] No[12]
Packages Yes:

hfsutils

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

hfsutils

Graphical installer ?
Rootfs with the graphical installer ?
hfs+ No[14] No[15] No[16]
Packages Yes:

hfsplus

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

hfsplus

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

jfsutils

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

jfsutils

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

util-linux

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

nilfs-utils

Guix system[3] ?
Installer ?
Rootfs ?
Packages Yes:

nilfs-tools

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

ntfs-3g

Guix system[3] ?
Installer Broken[19]
Rootfs Broken[20]
Implementation
kernel fuse
Packages Yes:

ntfs-3g

Graphical installer No[21] Yes
Rootfs with the graphical installer Broken[22]
reiser4
Kernel No[23]
Packages No
Graphical installer No
Rootfs with the graphical installer No
Kernel No[23]
Packages No
Graphical installer
Rootfs
Kernel No[23]
Packages Yes: reiser4progs
Graphical installer No
Rootfs with the graphical installer No
reiserfs
Kernel Until 2025[2]
Packages No
Graphical installer No
Rootfs with the graphical installer No
Kernel Until 2025[2]
Packages No
Graphical installer
Rootfs
Kernel Until 2025[2]
Packages Yes:

reiserfsprogs

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

xfsprogs

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

xfsprogs,

xfsdump

Graphical installer No
Rootfs with the graphical installer No
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
Distributions

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
LUKS 1
Packages and manual installation[4] Yes:

cryptsetup

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

cryptsetup

Graphical installer
Rootfs Yes but requires a /boot as GRUB only has partial LUKS2 support
Yes Yes
mdraid
LVM2
Packages and manual installation[4] Yes:

lvm2

Graphical installer
Rootfs Yes
Yes Yes

References

  1. See the Unmaintained filesystems as a threat vector lwn.net article for more details.
  2. 2.02.12.22.3 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.
  3. 3.003.013.023.033.043.053.063.073.083.093.10 This tells if that filesystem can be used in a system.scm system definition.
  4. 4.004.014.024.034.044.054.064.074.084.094.104.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.
  5. The installation fails with an error.
  6. 6.06.1 There is no HURD installer yet.
  7. After creating the rootfs with mkfs.ext4 from Guix, in Replicant, it says "Corrupted <vendor> SD card" in the notification bar.
  8. We can easily view the card content with "File Manager". It also detects a new MicroSD card when it is just formatted.
  9. The installation fails with an error.
  10. There is no hfsutils package.
  11. There is no hfsutils package.
  12. There is no hfsutils package.
  13. There is no hfsutils repository in the manifest.
  14. There is no hfsprogs package.
  15. There is no hfsprogs package.
  16. There is no hfsprogs package.
  17. There is no hfsprogs repository in the manifest.
  18. The installation fails with an error.
  19. The graphical installer complains about some UUID related issue
  20. 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.
  21. Once installed, the rootfs is mounted with FUSE and ntfs-3g.
  22. 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.
  23. 23.023.123.2 According to the reiser 4 wiki, upstream Linux has no reiser4 support.