Fedora: driver fs on default: ntfs3 (kernel) or ntfs-3g?

Greetings!

The question is: will Fedora use the ntfs 3 file system driver by default (provided by the kernel) or use the driver via FUSE ntfs-3g?
Ntfs-3g has not been updated for a long time since October 2022.

NTFS has been unchanged since version 3.1 in Windows XP, which was released quite a bit before October 2022.

In any case, why not simply mount a filesystem and see what happens?

$ sudo mount /dev/sda2 /mnt

$ mount | grep sda2        
/dev/sda2 on /mnt type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)

$ sudo umount /mnt 

$ sudo mount -t ntfs3 /dev/sda2 /mnt

$ mount | grep sda2                 
/dev/sda2 on /mnt type ntfs3 (rw,relatime,uid=0,gid=0,iocharset=utf8)

As you can see, Fedora 40 defaults to ntfs-3g but can be told to use the ntfs3 driver in the kernel, e.g., by putting the filesystem type in a line in /etc/fstab. If you regularly need to mount NTFS filesystems on removable disks, which you cannot add to fstab, you can also add a udev rule to default to the ntfs3 driver.

2 Likes

I agree, NTFS does not change, but there may be errors or further code optimization?!

I tried to mount with the ntfs3 driver. The result works!

Yes, you can write rules in udev.

In this case, the question is: why not use ntfs3 by default in new Fedora releases (41+)?

AFAIU, the code is quite mature. Yes, it does not have a lot of activity, but apparently the same was (is?) true for the ntfs3 driver

That is something you need to ask the Fedora folks.When you simply call mount, with either no filesystem type or with -t ntfs, mount will call an existing mount.ntfs to handle mounting NTFS. (This is true for any filesystem, mount will try to call mount.TYPE to handle anything special for a certain type; see man 8 mount, the description of -t/--types.)
That’s why, at the moment, attempting to mount an NTFS filesystem results in a call to mount.ntfs, which is a symlink /usr/sbin/mount.ntfs -> mount.ntfs-3g, which in turn is another symlink /usr/sbin/mount.ntfs-3g -> /usr/bin/ntfs-3g.

2 Likes

The NTFS3 driver is actively being developed.

“ntfs3: now with fewer bugs in kernel 6.10!”
Joking aside, I am not in a position to judge the quality of either ntfs3 or ntfs-3g.

But that is the great thing about free (as in freedom) software: you can choose whatever implementation you prefer for your data. (And you cannot blame a vendor for that choice or ask for your money back if something eats your data.[1])

Whichever implementation you choose (for any filesystem but for non-native filesystems like NTFS in particular), a good backup strategy is a really nice thing to have. Just saying.


  1. README from a long-ago release of DJGPP: “This software comes with ABSOLUTELY NO WARRANTY. Even if it erases your hard drive, too bad. Although we did fix that bug from the last release.” :wink: ↩︎

Apologies for Bumping too late but there are definitely some changes in NTFS after XP.

Please see Here1 and Here2

  • NTFS 1.0 (Windows NT 3.1, 1993)
    The initial version, supporting long file names, security descriptors, and journaling.
  • NTFS 1.1 (Windows NT 4.0, 1996)
    Introduced features like disk quotas and improved journaling.
  • NTFS 3.0 (Windows 2000, 2000)
    Added features such as dynamic disks, encrypted file system (EFS), and improved fault tolerance.
  • NTFS 3.1 (Windows XP, 2001)
    Introduced support for file system transactions, sparse files, and additional security features.
  • NTFS 3.2 (Windows Vista, 2006)
    Included improvements for system performance and reliability, although not officially labeled as a new version.
  • NTFS 3.3 (Windows 7, 2009)
    Focused on performance enhancements and support for larger volumes and files.
  • NTFS 3.4 (Windows 8, 2012)
    Improved support for modern hardware and larger file sizes, but again, not officially labeled as a new version.
  • NTFS 3.5 (Windows 10, 2015)
    Continued improvements on performance and reliability, with a focus on SSD optimization.

Coming back to the question - I personally faced some file corruptions to ntfs3 so I will sstick to ntfs-3g for now, though it has less performance.