exFAT vs NTFS on Linux

Situation: I need a filesystem on thumbdrives that can be used across Windows and Linux.

Problem: By default, the common FS between Windows and Linux are just exFAT and NTFS (at least in the more updated kernels)

Question: In terms of performance on Linux (since my base OS is Linux), which is a better FS?

Additional information: If there are other filesystems that you think is better and satisfies the situation, I am open to hearing it.

EDIT 14/4/2020: ExFAT is being integrated into the Linux kernel and may provide better performance in comparison to NTFS (which I have learnt since that the packages that read-write to NTFS partitions are not the fastest [granted, it is a great interface]). Bottom line is still — if you need the journal to prevent simple corruptions, go NTFS.

EDIT 18/9/2021: NTFS is now being integrated into the Linux kernel (soon), and perhaps this will mean that NTFS performance will be much faster due to the lesser overhead than when it was a userland module.

EDIT 15/6/2022: The NTFS3 kernel driver is officially part of the Linux Kernel as of version 5.15 (Released November 2021). Will do some testing and update this question with results.


Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Both exFAT and NTFS are Microsoft proprietary filesystem. exFAT, also called FAT64, is a very simple filesystem, practically an extension of FAT32, due to its simplicity it’s well implemented in Linux and very fast.

But due to its easy structure, it’s easily affected by fragmentation, so performance can easily decrease with the use.

exFAT doesn’t support journaling thus meaning it needs full checking in case of unclean shutdown.

NTFS is slower than exFAT, especially on Linux, but it’s more resistant to fragmentation. Due to its proprietary nature it’s not as well implemented on Linux as on Windows, but from my experience it works quite well. In case of corruption, NTFS can easily be repaired under Windows (even for Linux there’s ntfsfix) and there are lots of tools able to recover lost files.

Personally, I prefer NTFS for its reliability. Another option is to use ext4, and mount under Windows with extfsd, ext4 is better on Linux, but the driver is not well implemented on Windows. Extfsd doesn’t fully support journaling, so there is a risk to write under Windows, but ext is easier to repair under Linux than exFAT.

Method 2

I suggest you give UDF a try. UDF is an open, vendor-neutral file system that was originally designed for use on optical disks, but can be used R/W on other drives too, including USB drives. UDF supports a maximum file system size of 2 TB (with a block size of 512 bytes), it supports long Unicode file names, and keeps record of file times.

Windows apparently requires the disk to be partitioned, and the file system should be created with media type hd and a block size of 512:

mkudffs --media-type=hd --blocksize=512 /dev/sdxN

Method 3

I, unlike the other answerers, use exFAT. I’m not an overly serious user, but it is a bit annoying to have to install exfat-fuse on a fresh install.

An additional benefit of NTFS is full support in the best partition manager, gParted. Find out more at https://gparted.org/features.php

That’s why I’ll switch to NTFS soon for my 150GB internal Shared partition which I need to access from Linux distros and Windows 10.

As for EXT4, Ext2Fsd is not my favourite tool, and it’s not easy to use.

One problem with NTFS, though, is fsck. ntfsfix is nowhere near as good on NTFS, and in the end you get headaches with paid, proprietary software in Windows

Method 4

I can’t believe that no one has suggested this, but: try regular old VFAT. This works everywhere and is tried-and-true.

It’s not super-great for performance, but neither are USB flash drives.

Method 5

Situation: I need a filesystem on thumbdrives that can be used across Windows and Linux.

Problem: By default, the common FS between Windows and Linux are just exFAT and NTFS.

what you need in linux is ntfs-3g from tuxera.com. It is open-source, and included with many linux distributions, however…

Being a SLES 11.4, and RHEL 6.9 to 7.6 user, my experience with windows 10 is that something has changed in how the NTFS system is done (compared to win7) where older versions of ntfs-3g which come with your linux distro do not work with NTFS coming from win10. So you need to download and install the latest version which currently is ntfs-3g_ntfsprogs-2017.3.23, released on March 28, 2017 from their website; with that then having NTFS formatted drives coming from Windows 10 (as opposed to win7) works without issue.

  • Like was said using EXT2FSD on windows to read linux EXT file systems is not great, nor does it help if you use BTRFS or XFS. I also found it to be problematic. Definitely better/easier to make linux read NFTS rather than windows read linux filesystems.
  • Depending on what you are doing using EXFAT may be fine and is widely compatible: I am not aware of any linux distro that doesn’t support it. If you are a casual user… handful of various data files (like .mkv movie files, .doc, .xls, .ppt, .txt, .jpg) to go between windows, linux, your tv then no worries with exfat.
  • Real problem arises when you have an operating system disk that is win 7/8/10 which must be NTFS (can’t be exfat) and you cannot change that so how do you mount it as read/write in linux? Answer is latest version ntfs-3g. My tv now reads a 32gb usb formatted as NTFS.
  • I routinely boot my work oriented computer using a linux disk on sata-1 while having my win10 home SSD on sata-0; and have linux via ntfs-3g mount my win10 disk so I can read/write files when convenient; with the latest ntfs-3g I have had no problems with win10 booting afterwards provided win10 fast startup is off or unchecked otherwise a common result was the ntfs dirty flag getting set resulting in a disk check on windows boot.

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments