NTFS3 filesystem driver

Have you (Manjaro team) considered enabling the recently merged ntfs3 filesystem driver in Linux 5.15 and later?

diff --git a/config b/config
index 252f659..0982e2e 100644
--- a/config
+++ b/config
@@ -9558,7 +9558,10 @@ CONFIG_FAT_DEFAULT_UTF8=y
 CONFIG_EXFAT_FS=m
 CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
 # CONFIG_NTFS_FS is not set
-# CONFIG_NTFS3_FS is not set
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+CONFIG_NTFS3_LZX_XPRESS=y
+CONFIG_NTFS3_FS_POSIX_ACL=y
 # end of DOS/FAT/EXFAT/NT Filesystems
 
 #

@oberon

5 Likes

Looks like a good change, Fedora has also implemented this.

@oberon sorry to ping you again, but as far as I see, you’re the one who’s managing the linux515 package (correct me if I’m wrong), could you please say something? Would this be possible or not?

https://aur.archlinux.org/packages/ntfs3-dkms
:point_down:

Thanks, I did not know about that, it’s nice. However, I would still like it to be included in the default Manjaro kernels.

What is the argument behind including a proprietary Windows filesystem in the Linux kernel?

GPL clealy states that code derived from or using GPL must be GPL itself and must not be used as part of a commercial product.

It looks very much like the Nvidia issue discussion some time ago.

What about those individuals who don’t care for ntfs filesystem?

What would their benefit of said inclusion be?

I’m not sure I understand. The ntfs3 driver is already in the Linux kernel. See here. The reason why I opened this thread is because the Manjaro kernel configuration does not enable it. The code is fully open-source and under GPL.

Furthermore, there is already an ntfs implementation in the kernel, however, that can only read ntfs filesystems.


The majority of kernel modules shipped in the default Manjaro kernels fall into the same category. They are only relevant for small(er) number of users.

NTFS3 implemented in Linux 5.15 is of course under GPL (do kernel maintainer accept non GPL code? I never heard about that). I don’t understand why you’re talking about Nvidia license issue there.

On a side note, we already have ntfs-3g in Manjaro, by your own reasoning linux-aarhus why should we have that (obviously to offer support for it, not a real question)? I think you’re misunderstanding and/or hating for the sake of it, without even knowing what this is about.

What I mean is the kernel ntfs - is read-only - which is why ntfs-3g exist - to that end - I don’t mind modules being available - that is how the kernel is build.

How I understood the topic was that is should be activated by default and that is were I fall off the train.

We install a package to get rw access to ntfs - we install a package to get access to Nvidia.
We install a package to format using vfat or fat32 for efi partition - again because those are proprietary filesystems (vfat not any more - I think I read many moons ago).

Paragon software has reverse engineered the ntfs filesystem and improved the support for ntfs and that is great but ntfs is not native to Linux so - as fat and fat32 and vfat and ntfs - they are all proprietary.

I don’t mind the kernel being able to read those filesystems - what I don’t get is the explicit request to include it per default in the kernel - when it supposedly is already there - and all you have to do configure your system?

Why creating an explicit request when it is already there? That is what I don’t understand.

The reverse engineered code is GPL but the original is not … that was essentiall what the Nvidia dispute was about.

You cannot include Nvidia modules in the kernel - because Nvidia is closed source proprietary hardware and software.

While there exist reverse engineered drivers for Nvidia - Nouveau - they are no match for the real thing right?

The drivers for the ntfs filesystem is reverse engineered as well - it has to be - Microsoft has never released the source for the ntfs filesystem - so they will exist as modules you can add to the kernel.

Paragon Software - which has contributed the ntfs code - is using the code in their commercial products and the GPL states that GPL code cannot be used in commercial products not under GPL which in turn makes them free.

This is because both GPLv2 and GPLv3 are copyleft licenses: each of them says, “If you include code under this license in a larger program, the larger program must be under this license too.” - Why Upgrade to GPLv3 - GNU Project - Free Software Foundation

It’s not there already. That’s why I raised this “issue”. The Manjaro kernel configuration does not enable it, therefore it is not available without installing e.g. the DKMS version, etc. It was merged into the Linux kernel, yes, but it is not enabled in Manjaro kernels. I think it would be beneficial to many users, that’s why I am asking it to be enabled.

dkms is used for rebuilding a module when the kernel changes.

This is used e.g. vmware, virtualbox, wifi drivers etc.

I don’t see why ntfs3 should be any different - if you want support for it install the support - like you do with nouveau drivers or wifi drivers or vmware but don’t default.

Just picture your system defaulting to include vmware drivers or nvidia or … when you never intended to use it - you would be so annoyed.

My system already includes e.g. the amdgpu kernel module, yet, I have absolutely no use for it. In fact, most of the kernel modules shipped with the default Manjaro kernel are not useful on my system.


The nouveau kernel module is enabled in the default Manjaro kernel configuration, and is shipped with all kernels; in fact, it’s also sitting on my machine doing nothing.

Please note, that the vmware, virtualbox, and various realtek wifi drivers are mostly out-of-tree kernel modules. The ntfs3 kernel module is part of the Linux kernel source tree, just like nouveau.

Learning something everyday.

Yet you have to install a packaged driver for it to work - xf86-video-nouveau - or am completely off here? In which case why having the package at all?

The above link to Paragon is what makes me wonder how the code got into the kernel as derivations using the in-kernel code must be GPL’d as well which the Paragon software most certainly is not.

That package provides the Xorg driver: /usr/lib/xorg/modules/drivers/nouveau_drv.so.

From my quick research, and from my understanding of how kernel maintainers accept things in kernel, the NTFS3 addition is GPL.

This is not their commercial driver (what you linked to).

  • Fully Open Source implementation based on knowledge and expertise in the field
  • Advanced performance and resource efficiency
  • Full-featured file system implementation (read, write, compression, sparse files, journal replaying) integrated in the core of Linux (the Kernel)

What is the difference between Paragon’s commercial NTFS implementation and the NTFS3 version provided by Paragon for inclusion in the Linux Kernel?

Paragon’s commercial NTFS implementation and NTFS3 for Linux Kernel are derived from two different code bases. The commercial NTFS implementation originates from NTFS for DOS that Paragon introduced back in 1997, which has been updated and improved for over two decades. NTFS3 was intentionally developed from scratch in 2020 to be a part of the Linux Kernel. NTFS3 is written in C language, whereas Paragon’s commercial NTFS implementation is a combination of C++ and C code.

Both implementations undergo Paragon’s same comprehensive testing procedures. Paragon’s quality assurance (QA) process for file system implementations includes over 160,000 tests, such as smoke tests, performance tests, load tests, and long-term endurance crash and stress tests.

A detailed comparison of all the NTFS for Linux implementations referenced in this FAQ, is provided in the table.

1 Like

I don’t think you would have to install a driver to be able to get a FS driver to work… So I would propose to integrate the line from the OP.

@oberon Is there a possibility to do that?

FYI - I don’t know how long ntfs3-dkms in AUR will be maintained after the release of kernel 5.15 on Arch Stable.

So if it’s not activated within our kernel, then people who want to use this driver might have issues. Well, unless non-Arch users plan to maintain the AUR package to help others.

Also… PLEASE STOP PINGING PEOPLE OVER AND OVER AGAIN. It is quite rude imo.

Do we need ntfs-3g if enabled the NTFS support in 5.15? if the latter is better, why don’t we use it? Have you ever think about dual-boot users which may put lots of data in NTFS drives because it can be used in both Windows and Linux?

Go to aur.archlinux.org and search for ntfs3-dkms. Install it, read comments, profit.
There is a plenty of kernels supported by Manjaro which do not have built-in ntfs3 code.