Add XFS as a filesystem option for the new Calamares installer

I absolutely love that the new Calamares installer, introduced in 21.1 (RC), allows you to choose from a list what filesystem to use for automatic partitioning.

However, it misses a very stable, mature, and fast filesystem that performs especially well on SSD drives: XFS

Red Hat uses it as their default, and I have found it to perform better than ext4. (Some benchmarks place it neck and neck with F2FS, yet XFS makes more sense as a desktop filesystem, regardless.)


Currently the shiny new Calamares offers ext4, btrfs, and f2fs, but it would be great to offer xfs as well. (I believe there are more Linux installations that use XFS over F2FS, not including Android.)


UPDATE:

I have successfully installed, from scratch, an encrypted system using “xfs” from the drop-down list after modifying /etc/calamares/modules/partition.conf in the live session prior to launching the installer. (See my posts below.)

I changed from this…

availableFileSystemTypes: [“ext4”, “btrfs”, “f2fs”]

To this…

availableFileSystemTypes: [“ext4”, “btrfs”, “xfs”, “f2fs”]

Now the window gives me xfs as an option:

The installation was successful, and it behaves no differently than my previous tests (when I selected ext4 and btrfs). :sunglasses:


RATIONALE:

XFS is a mature filesystem, and to this day has active development with constant improvements. It’s stable and fast (especially for many common “desktop” use-cases).

It’s the default filesystem for Red Hat, and it is stable, reliable, safe, and performs exceptionally well on newer hardware and SSDs.

I have been using it as my mainstay filesystem (with and without LUKS) on different PCs and laptops, as well as Manjaro installations for others, for the past few years. I have never returned to ext4 since a few years back and I have been very, very pleased with the performance and results of using XFS as my default filesystem.

By providing it as an option to the users, it will bring XFS into more mainstream light, just as has been done with Btrfs recently.

I humbly ask the Calamares team to add it to the drop-down list when the user is given the choice of which filesystem to use. :pray:


Ticket for this issue: Add XFS as a filesystem option for the new Calamares installer (#5) · Issues · Packages / Extra / calamares · GitLab

3 Likes

Do you get more options, if you deselect “Encrypt system”?

Nope. Exact same selection of ext4, f2fs, and btrfs.

For what it’s worth, I have previous installations of Manjaro using XFS and XFS+LUKS (some are on others’ computers). To do XFS was simple, while XFS+LUKS required manually configuring everything with manjaro-architect.

I think it’s an awesome game-changer that the new Calamares installer actually prompts you for which filesystem you want to use and offers encryption when you choose the “automatic / entire disk” option.

I was surprised to see XFS was left out, considering its performance, stability, maturity, and adoption (Red Hat’s default), and I would place it above F2FS in these regards.

1 Like

you can play with options in partition.conf ?

/usr/share/calamares/modules/partition.conf
1 Like

I see that it defines “ext4” as the default, but I do not see where a list, array, or menu is populated with: ext4, btrfs, f2fs (in this partition.conf file)

Those are the three that appear on the drop-down menu, yet they are not defined in partition.conf

Going inspect some of the other files.


UPDATE: Bingo! I found where it is defined. :grinning:

/etc/calamares/modules/partition.conf

I’m going to see if it works, not just in offering it, but also doing a fully encrypted installation (checking the box “Encrypt system” and selecting “xfs” from the drop-down.)

Here is what my modified /etc/calamares/modules/partition.conf looks like:

---
efiSystemPartition:     "/boot/efi"
userSwapChoices:
    - none      # Create no swap, use no swap
    - small     # Up to 4GB
    - suspend   # At least main memory size
    - file      # To swap file instead of partition
alwaysShowPartitionLabels: true
# There are four options: erase, replace, alongside, manual),
# the default is "none".
initialPartitioningChoice: erase
initialSwapChoice: none
defaultFileSystemType:  "ext4"
availableFileSystemTypes:  ["ext4","btrfs","xfs","f2fs"]

Notice the very last line I slipped “xfs” into the list. :wink:

Currently installing from scratch with "xfs" selected from the drop-down and “Encrypt system” enabled. So far so good! :crossed_fingers: I’ll report back in here after it’s done.

1 Like

also found - is a patch (read last lines) in manjaro PKGBUILD
add line in .conf:

availableFileSystemTypes:  ["ext4", "btrfs", "f2fs"]

Woohoo, baby! This installation went without a hitch. I’m up and running! When I rebooted, I was immediately prompted to unlock the LUKS container (as expected). After unlocking it, I’m met with the Grub menu (I set the timeout for 10 seconds.) It boots as expected, no issues!

Here is the result after installation and rebooting:

  • EFI system partition
  • Root (“OS”) partition is encrypted with LUKS
  • Within this LUKS container is an XFS filesystem (instead of ext4)

Here is a sample of lsblk:

NAME                                          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sda                                             8:0    0   32G  0 disk  
├─sda1                                          8:1    0  300M  0 part  /boot/efi
└─sda2                                          8:2    0 31.7G  0 part  
  └─luks-58c9ca9e-5ecd-4fd5-baa8-884c17c4ce1b 254:0    0 31.7G  0 crypt /

Here is a sample of mount:

/dev/mapper/luks-58c9ca9e-5ecd-4fd5-baa8-884c17c4ce1b on / type xfs (rw,noatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)

/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)

Here is a sample of fstab:

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>

UUID=1548-F108                            /boot/efi      vfat    umask=0077 0 2

/dev/mapper/luks-58c9ca9e-5ecd-4fd5-baa8-884c17c4ce1b /              xfs     defaults,noatime 0 1

/swapfile                                 swap           swap    defaults,noatime 0 0

Everything’s working! :slight_smile: Thanks for hinting me where to look, @papajoke

2 Likes

Due to the above success, I more strongly feel that “xfs” should ship as a selectable option in the drop-down list of filesystems when doing an installation from scratch (i.e, “automatic partitioning”).

In regards to /etc/calamares/modules/partition.conf

It should change from this…

availableFileSystemTypes: [“ext4”, “btrfs”, “f2fs”]

To this…

availableFileSystemTypes: [“ext4”, “btrfs”, “xfs”, “f2fs”]

1 Like

congratulation
you can open an issue with link to this subject

I tried creating a GitLab account, and now I’m getting PTSD of previous issues where I couldn’t create an account because the string “winnie” is on some public spambot list for no apparent reason. It won’t let me verify my account.

EDIT: Okay, I’m in! Took a while for the email to appear, and the site said “you already verified” (when I didn’t) and I had no email in my inbox, so I got stuck with no means of moving forwards. I’m in, going to create the new request.

EDIT 2: Nope. Now I can’t sign in, says incorrect password, and even if I request a password reset, it never arrives in my inbox. This happened shortly after I finished the “questionnaire” for new users. :frowning:

EDIT 3: I’m in again! This is a trip. Tried a different browser.

Issue opened: https://gitlab.manjaro.org/packages/extra/calamares/-/issues/5

1 Like

@winnie : When partitioning manually via Calamares, can xfs be selected for any prepared pre-existing partition? E.g. /, swap etc.?

If YES, I would try this on the next installation (on SSD).

As far as I could tell, that has remained the same as with previous versions of Calamares: you get a laundry list of filesystem types to format the individual partitions. (XFS being one of them.) However, manual partitioning requires extra care and knowledge, especially if encryption is involved. (The manjaro-architect installer filled in that gap for power users that wanted more flexibility and nuanced installations.)

This version of Calamares, staged to be introduced with Manjaro 21.1 ISO (which is currenly a release-candidate, slated to be released as a final version soon), introduced a new feature:

  • The ability to select the filesystem type when choosing automatic partitioning/encryption.

However, it only offers ext4, btrfs, and f2fs when going this route. I hope I made a convincing argument why xfs needs to be added to this list (see my posts above.)

1 Like

Based on my preferences and experiences since using Linux as a desktop solution since 2006:

  • EXT2: Superseded
  • EXT3: Superseded
  • EXT4: For the users that want a tried-and-true “default” that is familiar to them (yet it’s gotten long in the tooth and was not originally designed as the “end result” by its original developers)
  • XFS: For a stable, robust, fast, and mature filesystem that even Red Hat uses as the default, and it’s geared towards modern hardware with great results on SSDs
  • BTRFS: For it’s more advanced and builtin features, including copy-on-write, snapshots, and RAID-like redundancy (if using multiple drives)
  • ZFS: For use on non-system partitions, such as /home, /data, external drives, or NAS servers, to leverage the features Btrfs offers and more, as well as a future-proof all-in-one solution (ZFS is my favorite filesystem, nothing comes close. I just don’t use it on any Linux “system” partition, since it’s not yet had mainstream insertion outside of NASes and tinkerers on Linux.)
1 Like

I would not suggest using this on /home tbh. Don’t get me wrong it’s an excellent filesystem and I use it constantly on my NAS, but given that it’s not supported at the kernel level, you can end in a situation where a kernel update will cause you not to be able to mount /home, not a fun situation.

Once Larry Ellison sends Linux Torvalds a personalized letter where he promises not to sue him, we should be seeing ZFS merged into mainline kernel development. :partying_face: :wink:

Sadly we shall keep dreaming… till then we can use OpenZFS…