What is NTFSPlus and Why Does It Matter for Linux Users?

NTFSPlus is a fresh implementation of the classic in-kernel ntfs driver. Can it end the current NTFS woes for Linux users?
Warp Terminal

NTFSPlus (often stylized as NTFSPLUS) is the name of a new NTFS driver for the Linux kernel, with the goal of producing a performant, featureful, and accurate read/write driver implementation for this notoriously tricky filesystem.

Currently an out-of-tree driver (not yet included in the mainline kernel), it is the work of long-time Linux storage and filesystem developer Namjae Jeon. Jeon also developed and maintains the in-kernel exFAT filesystem driver and the accompanying exfatprogs user-space utilities.

This driver effort aims for compatibility with NTFS 3.x filesystems, fsck-style tooling (for example, a ntfsck-style checker), well documented code, and a better maintained driver that lives in the kernel. Currently, some distributions (such as Fedora) still rely on the NTFS-3G userspace driver, which uses FUSE (Filesystem In Userspace), since the current ntfs3 kernel driver has seen limited maintenance and continues to have unresolved issues.

NTFS support on Linux has long been messy

Messy code on a computer screen, with the right side faded out
Pexels/Markus Spiske

Historically, the Linux ecosystem has relied on at least three separate drivers for interfacing with Microsoft's proprietary filesystem. The original in-kernel ntfs driver was generally treated as read-only (with write support considered unreliable), and after becoming unmaintained, was completely removed in Linux kernel 6.9. Another, the ntfs3 driver by Paragon Software, was added to the kernel in Linux 5.15 and has both read and write support, but is now effectively in maintenance-only mode.

The userspace NTFS-3G driver was for a long time the only widely used implementation of a read/write capable NTFS driver for Linux. However, it can be noticeably slow, and tends to be more CPU-hungry (especially when moving large files or a large number of files) and less performant than in-kernel implementations, especially on large, modern drives.

The challenges faced by each of these drivers have largely been due to the fact that developers have had to rely on the limited documentation Microsoft has made publicly available for the NTFS filesystem, plus a lot of reverse engineering. This unfortunate circumstance has made it difficult to create a Linux driver with thorough coverage for the filesystem used by default on many of the computers sold around the world and hosting much of the world's data.

What NTFSPlus seeks to change

Person holding a Tux logo
Pexels/RealToughCandy.com

In many ways, NTFSPlus is a do-over: a fresh implementNTFSPlus is a fresh implementation of the classic in-kernel ntfs driver. Can it end the current NTFS woes for Linux users?ation that applies the lessons learned from at least two decades of NTFS work, while taking advantage of modern kernel infrastructure. Rather than attempting to modify the ntfs3 driver code (Paragon Softwareโ€™s implementation), NTFSPlus builds on the foundation of the classic in-kernel ntfs driver. It refactors and extends this existing code to support modern NTFS 3.x volumes and newer kernel APIs such as iomap and folios.

In his proposal on the Linux kernel mailing list, Jeon describes NTFSPlus as a โ€œremade ntfsโ€ implementation based on the classic driver, noting that the old code is cleaner and better commented, which makes understanding NTFS behaviour easier. That readability is a key reason for using it as a base and then layering on features like iomap, folio support, and proper utilities, rather than trying to further evolve the existing ntfs3 code. The intention this time is not only to improve performance, but also to create better documented code that is easier to navigate, test, and maintain over time.

Development has already moved on to a v2 series of patches, tracked in an ntfs-next Git branch that acts as a staging area while the driver moves toward potential inclusion in the mainline kernel. Recent updates add NTFS3-compatible mount options, improved ioctl support (including FITRIM for SSD discard and filesystem label handling), $MFT file extension support, new documentation, and currently mark the driver as experimental, as reported by Phoronix.

NTFSPlus comes bearing gifts

Jeonโ€™s proposal to create proper tooling around the driver could be a much-needed game-changer for the Linux community, especially now as many users flock to Linux from Windows. Repairing NTFS drives on Linux is possible today, but the safest advice is often still to leave the drive alone and let Windowsโ€™ own tools do the necessary work.

Having fsck-style utilities for checking and repairing NTFS volumes from user space would be a critical step for Linux adoption, as many users will not want to replace their existing filesystems if this can be avoided. For Linux distributions, this could eventually lead to a clean, in-kernel NTFS stack with first-class support for features like idmapped mounts, standard mount options, and integration with existing filesystem tools.

An open implementation

One of the most important aspects of this development is that the NTFSPlus driver is being developed fully in the open. Jeon posts updates directly on familiar kernel mailing lists and maintains an "ntfs-next" branch that interested users and distributions can test early. He is a well-known and trusted maintainer with a solid track record of producing reliable code for another of Microsoft's proprietary filesystems, as well as for the kernelโ€™s ksmbd SMB server.

This open development process means other developers have an opportunity to test and spot issues early in the project's lifecycle, which should lead to a stronger โ€œfinished productโ€ if and when it lands in the mainline kernel. If this work does make it into a future kernel release and gains wide adoption, it could finally remove the need to choose between a slower FUSE driver or an effectively stagnant in-kernel implementation.

Could this mean Linux on NTFS some day?

Perhaps, but not necessarily. It is already possible to install Linux from within Windows using disk images that are writable and do not require the creation of a new filesystem or partition. This is similar to what once powered Ubuntu's Wubi installer. However, such implementations were notably slower than running off a native Linux filesystem, and were more prone to corruption issues and other challenges.

A fully in-kernel implementation of an NTFS driver could, in theory, make โ€œLinux on NTFSโ€ a more realistic option, so long as the driver is considered stable enough for distribution maintainers to support it. That said, it may still require compromises where NTFS does not have support for certain Linux-standard features and permission models, and native Linux filesystems are likely to remain the better choice for most use cases.

About the author
Roland Taylor

Roland Taylor

Roland L. Taylor is a Barbados-born open-source writer, advocate, and multimedia designer focused on practical Linux for all. He writes tutorials and explainers on desktop Linux. At Itโ€™s FOSS, he covers apps that make Linux more fun, modern & usable.

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world

itsfoss happy penguin

Great! Youโ€™ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.