Fedora 44 and later packaging, kernel-module integration and maintenance automation for the linux-ntfs NTFS filesystem driver developed by Namjae Jeon, tracking the upstream ntfs-next development branch.
This project packages the Linux NTFS kernel driver as Fedora RPM/AKMOD/KMOD packages and provides automatic kernel-module maintenance through akmods. It builds and maintains ntfs.ko for Fedora kernels and integrates with the standard Fedora storage stack (udisks2).
The driver is compiled as an external kernel module (ntfs.ko) from the upstream linux-ntfs/ntfs-next source. This project does not merely enable or activate an ntfs driver already built into the Fedora kernel.
Status: experimental project for Fedora 44 and later. This repository packages and automates the upstream
linux-ntfsdriver; it is not the upstream driver repository itself. It is independent of the desktop environment and is specifically designed to provide nativentfsfilesystem support rather thanntfs-3g/FUSE or the separate in-kernelntfs3filesystem.
linux-ntfsbuilt as Fedora RPM packages with akmod integration.- Automatic rebuild of the module for installed Fedora kernels through akmods.
- Automatic monitoring of the upstream
ntfs-nextbranch. - Automatic source archive and SPEC maintenance when upstream changes.
- A user systemd timer that performs the periodic upstream check.
- A controlled root installation path using systemd and Polkit instead of direct privileged operations from the user service.
- Native NTFS mounting through the
ntfskernel filesystem driver.
The project is designed so that a normal user does not need to manually compile ntfs.ko after every kernel update.
Clone the repository and run the single installation entry point as the target user:
git clone git@github.com:lyesseb/linux-ntfs-akmod.git \
"$HOME/Developpement/linux-ntfs-akmod-dev"
cd "$HOME/Developpement/linux-ntfs-akmod-dev"
git switch ntfs-next-latest
./tools/install-systemd-user.shThe installer automatically:
- checks the required Fedora build/runtime dependencies;
- ensures RPM Fusion Free is available;
- removes
ntfs-3gwhen it is installed, somount -t ntfsis not redirected to the FUSEntfs-3ghelper; - installs the required build tools and matching
kernel-develfor the running kernel; - installs the system helper, systemd template and Polkit rule;
- installs and enables the user systemd timer.
The installer is intended to be run without sudo. It invokes sudo only for operations that require root privileges.
The project provides a dedicated uninstallation entry point:
cd "$HOME/Developpement/linux-ntfs-akmod-dev"
./tools/uninstall-systemd-user.shThe uninstaller is intended to be run without sudo. It invokes sudo only for operations that require root privileges.
Before a real uninstallation, all NTFS volumes using the linux-ntfs driver must be unmounted. The uninstaller checks this automatically and stops if an ntfs filesystem is still mounted.
A simulation can be performed first:
./tools/uninstall-systemd-user.sh --dry-runThe uninstaller removes:
- the user
linux-ntfs-next-update.timerand its service files; - the system-side installation helper and systemd template;
- the Polkit rule installed by the project;
- the installed
akmod-linux-ntfspackage; - the installed
linux-ntfs-kmod-commonpackage; - all installed
kmod-linux-ntfs-*packages.
After removal, ntfs-3g is restored automatically so that the system has a standard NTFS userspace handler again.
The uninstaller does not modify /etc/fstab.
After uninstallation, the project-specific automatic maintenance timer, AKMOD/KMOD packages and privileged installation path are no longer present.
This project intentionally uses the upstream linux-ntfs filesystem driver as the ntfs filesystem type.
ntfs-3g must not intercept -t ntfs, because its mount.ntfs helper routes the request through FUSE and produces fuseblk mounts.
With ntfs-3g absent, the expected path is:
Dolphin / UDisks
↓
ntfs
↓
linux-ntfs.ko
NTFS volumes can then be mounted normally from Dolphin/UDisks without adding NTFS entries to /etc/fstab.
The validated result is an actual ntfs mount, not fuseblk and not the in-kernel ntfs3 filesystem.
NTFS partitions can also be mounted automatically at boot through /etc/fstab once the linux-ntfs AKMOD/KMOD mechanism is installed and the module is available for the running kernel.
The main orchestrator is:
tools/auto-update-ntfs-next.sh
It:
- checks the upstream
ntfs-nextbranch; - detects whether the tracked commit changed;
- prepares a reproducible source archive;
- updates
documentation/ntfs-next-commit.txtand the SPEC; - synchronizes the local
rpmbuildtree; - builds the expected RPMs with
rpmbuildwhen required; - identifies the expected AKMOD RPM deterministically from the SPEC;
- removes an existing SRPM carrying exactly the same version-release reference before rebuilding;
- requests installation through the systemd root helper.
The user systemd units are installed by:
tools/install-systemd-user.sh
tools/systemd/linux-ntfs-next-update.service.in
tools/systemd/linux-ntfs-next-update.timer
The root-side installation path is implemented by:
tools/linux-ntfs-akmod-install
tools/systemd/linux-ntfs-akmod-install@.service.in
tools/polkit/49-linux-ntfs-akmod.rules
The dependency bootstrap is:
tools/install-dependencies.sh
Preparation of the ntfs-next source archive is idempotent: an existing
stale target archive no longer prevents a new update attempt. The update
mechanism prepares the archive in a temporary location before installing it,
so a retry after a failed update can start cleanly without being blocked by
a residual artifact.
A successful build produces the common, generic KMOD and AKMOD packages, for example:
linux-ntfs-kmod-common-<version>-<release>.<disttag>.x86_64.rpm
kmod-linux-ntfs-<version>-<release>.<disttag>.x86_64.rpm
akmod-linux-ntfs-<version>-<release>.<disttag>.x86_64.rpm
For a specific installed kernel, the corresponding kernel KMOD package is produced and installed by the normal Fedora akmods workflow.
Check the current kernel and matching module:
uname -r
rpm -q "kernel-devel-$(uname -r)"
modinfo ntfs | grep -E '^(filename|description|vermagic):'Check the installed packages:
rpm -qa | grep -E '^(akmod-linux-ntfs|kmod-linux-ntfs|linux-ntfs-kmod-common)-' | sortCheck the automatic maintenance timer:
systemctl --user status linux-ntfs-next-update.timer --no-pager
systemctl --user list-timers linux-ntfs-next-update.timer --no-pagerCheck NTFS mounts:
findmnt -t ntfs
findmnt -t fuseblk || trueThe expected filesystem type is ntfs and fuseblk should be absent for volumes mounted through this project.
The project has been validated on multiple Fedora systems.
Validation records include clean installation and reinstallation scenarios,
AKMOD/KMOD installation, kernel-module loading after reboot, automatic
maintenance through the systemd user timer, and functional NTFS mounting
through Dolphin/UDisks using the ntfs filesystem.
See documentation/VALIDATION-MACHINES.txt
for the detailed validation records.
The project intentionally keeps these responsibilities separate:
upstream ntfs-next
↓
automatic update checker
↓
SPEC + source archive
↓
rpmbuild
↓
deterministic AKMOD selection
↓
systemd root installation helper
↓
akmods
↓
kmod-linux-ntfs for each kernel
Do not reintroduce:
- date-based discovery of the RPM produced by
rpmbuild; - permanent manual compilation of
ntfs.koafter every kernel update; - direct
akmodsexecution from the user update service; ntfs-3gas the handler for thentfsfilesystem type.
Detailed project documentation is available in:
documentation/README.txtdocumentation/INSTALLATION-REINSTALLATION.txtdocumentation/MAINTENANCE.txtdocumentation/ntfs-next-commit.txtdocumentation/packages.txtdocumentation/VALIDATION-MACHINES.txt
Upstream project:
https://github.com/namjaejeon/linux-ntfs
This repository contains the Fedora packaging, automation and installation machinery around the upstream ntfs-next development branch; it is not the upstream kernel driver repository itself.