Which is better for SSD, Ext4 or F2FS file system?

Hi.

As the title saying. I read the following article which is dated to 2018 & now we are in 2021:

I discover that I do not know so many things about file system types & how to selecting the best one ! Really I need to learn too many things about this.

From what written in the OLD article it seem that the best file system for SSD is F2FS file system not Ext4 that I’m already selected. However, I’m lucky because till now I did not start the real use & game installation on my new SSD, so I can make turning easily …

Moreover, my new SSD is NAND based (V-NAND) - see the specification section on the following link:

Can you help me, kindly, with this: which is better ? And if F2FS is not good choice & Ext4 is better, then how can I disable journaling on it (only on new SSD that used externally never on my OS default internal HDD of my laptop). It seem according to article that if I use SSD without disabling journaling then I will loss much of life time of my SSD … I need GUI rather than command line to disable journaling of Ext4 if available …

Just auto install fedora 33 and you will get btrfs installed. Is mentioned as a good and fast FS in your posted article (The 4 best SSD-friendly file systems on Linux).

3 Likes

No ! This is out of the topic. My question is which is better F2FS or Ext4 for external SSD used to make WineHQ PREFIXES within it to install Windows game of various sizes including new games of huge sizes like 44 GB or 35 GB …

I will never used btrfs because it will shorten life span of my SSD due to copy-on-write nature of it that can not disabled. Even Ext4 if I will continue to use it in external SSD, then I will disable journaling feature of it so that it will not shorten life span of my SSD.

Moreover, I will never change my current OS Ext4 file system because I will upgrade to Fedora 34 (not 33) using command line. I’m always upgrading at yearly interval from command line.

Other point: I have previous bad experience with btrfs when I tried OpenSUSE (Leap version) because system became slower than Fedora on same laptop.

Kindly, let keep on the topic of issue …

ext4 with Auto Trim. it’s proven and supported.

That is not true. SSD controllers do wear levelling. Unlinke a simple USB thumb drive where the journal is always written to the same block, that does not happen on modern SSDs. The data is written to the blocks where the “least wear” has occured.
Don’t disable journaling, if you want data integrity.

Could you please present some evidence about your claim?

I have the feeling you are worrying too much. I have used SSDs over the past decade and so far I have not managed to destroy one, despite using my computers really long (> 6 years)

4 Likes

My personal experience from testing f2fs on ssd’s, especially ones that may be subject to power fail, indicated that ext4 is way more robust and I experienced significant trouble with inconsistancy to the point of data loss using f2fs. But this was two or three years ago and may have changed with recent versions. So I am still using ext4 with a general tendency to reducing write-access to the filesystem, like noatime,nodiratime mount options and reducing logs and caches or redirecting them to tmpfs. For myself I decided against turning off the journal since data-integrity for me has a higher priority. Write activity regarding the fs-journal on a drive with mainly read-access, like games or storage anyway is way less compared to the rootfs. Adding a small amount of extra space to the ssd’s provisioning-pool by not partitioning the whole device may already account for that.

If you want to turn off journaling for ext4 despite that you can

# replace x[1] with your device
tune2fs -O ^has_journal /dev/sdx1
fsck.ext4 -f /dev/sdx1

You will have to do this on an unmounted device with root-privileges, so take care.

Edit:
Using above commands on an already populated filesystem may result in data loss. Always make a backup first!

4 Likes

For use cases where Btrfs CoW might not be desired one can disable it (e.g. database files, virtual machine images). Such gotchas are mentioned here: Gotchas - btrfs Wiki.

I disable it for my KVM/libvirt virtual machines:

sudo chattr -VR +C /var/lib/libvirt/images
sudo chattr -VR +C ${USER}/.local/share/gnome-boxes/images
4 Likes

So, Ext4 is the winner !

1 Like

But what you main “with Auto Trim” & how can I know if “Auto Trim” is existing (activated) or not ? And how can activate it if it is to be activated ?

I have no knowledge about this …

Nice data !

Thank you for response.

How can I achieve “noatime,nodiratime” ?
I like - if possible GUI. I using GNOME Disk. After reading your replay, I searched right-click menu options of “partition” on GNOMME Disk. There is “Edit Mount Options”. I saw within it’s window, a field contain in a line:
nosuid,nodev,noauto,x-gvfs-show
is there should I add noatime,nodiratime ?

Yes simply add the options to the one’s already present. But take care, errors here might prevent the device from being mounted.

noatime,nodiratime,nosuid,nodev,noauto,x-gvfs-show
2 Likes

Trim is enabled by default on Fedora since release 32 it seems: Changes/EnableFSTrimTimer - Fedora Project Wiki

See also

3 Likes

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.