# NTFS-3G

NTFS-3G ist ein auf FUSE aufsetzender Treiber für das NTFS-Dateisystem für Linux und andere Betriebssysteme, auf denen FUSE verfügbar ist. Entwickelt und vertrieben wird NTFS-3G heute von Tuxera, deren CTO Szabolcs Szakacsits einen großen Teil zur Entwicklung des Treibers beigetragen hat. Das finnische Unternehmen bietet den Dateisystemtreiber in einem dualen Lizenzsystem neben der freien Version auch unter einer proprietären Lizenz für Unternehmen an.
NTFS-3G ermöglicht vollständigen Schreib- und Lesezugriff, derzeit mit Ausnahme von verschlüsselten Dateien sowie dem Erstellen und Ändern komprimierter Dateien. Zugriffs- und Eigentumsrechte können nur beim Einhängen des Dateisystems global für den Einhängepunkt gesetzt werden. Nach umfangreichen Tests gilt der Treiber als stabil.

## Entwicklung

Bereits mit dem Linux-Kernel 2.1.74 von 1995 existierte ein Treiber für das NTFS-Dateisystem, der jedoch nur eingeschränkten Lesezugriff auf NTFS-Dateisysteme bot. Im Jahr 2000 startete Anton Altaparmakov das Linux-NTFS-Projekt auf SourceForge, das neben einer freien NTFS-Programmbibliothek und entsprechenden Dateisystem-Werkzeugen (wie fsck) auch einen Treiber für den Linux-Kernel vorsah. Dieser wurde 2002 im Entwicklerkernel 2.5.11 integriert und zusätzlich auf den damals stabilen Kernel 2.4.18 portiert. Er wurde erst 2024 mit Kernel 6.9 wieder entfernt, nachdem 2021 ein verbesserter NTFS-Treiber von Paragon unter der Bezeichnung NTFS3 in Kernel 5.15 aufgenommen worden war.
Die Dateisystem-Werkzeuge für das NTFS-Dateisystem sind im Paket ntfsprogs untergebracht, das auch den FUSE-Dateisystem-Treiber ntfsmount enthält. FUSE steht für “File System in Userspace”, Dateisystem im Benutzer-Modus. Im unprivilegierten Modus läuft der Dateisystemtreiber zwar etwas langsamer, ist aber in vielen Belangen flexibler einsetzbar und dank der Verfügbarkeit von FUSE auf zahlreichen Plattformen auch einfacher portierbar.
Der Entwickler Szabolcs Szakacsits stellte schließlich 2006 einen im Beta-Stadium befindlichen FUSE-Treiber vor, der die von Linux-NTFS bekannten Einschränkungen nicht mehr aufweisen sollte. Damit war es erstmals möglich, beliebige Dateioperationen von Linux aus auf einem NTFS-Dateisystem durchzuführen. Nach erfolgreicher Weiterentwicklung wurde schließlich am 21. Februar 2007 die erste stabile Veröffentlichung als NTFS-3G Version 1.0 bekanntgegeben.
Nach eigenen Angaben wurde das Unternehmen Tuxera Ltd im Jahr 2008 von Szabolcs Szakacsits gegründet, weil immer mehr Anfragen von bekannten Firmen bezüglich der Integration in deren Produkte diesen Schritt nötig machten. Auf dessen Internetseite bietet das Unternehmen individuell abgestimmte Versionen als Tuxera NTFS for Embedded Systems an.
Ende August 2009 wurde bekannt, dass Tuxera mit Microsoft eine Kooperation eingegangen ist, die auch ein Abkommen zum Geistigen Eigentum einschließt. Da Microsoft damit auch Einblick in die Spezifikation von exFAT ermöglichte, konnte Tuxera neben NTFS auch den Treiber Tuxera exFAT for Embedded Systems entwickeln, der für kommerzielle Abnehmer angeboten wird.

## Eigenschaften

NTFS-3G wurde mittlerweile auf eine Vielzahl an Betriebssystemen portiert. Da der Treiber auf FUSE aufsetzt, läuft er auf nahezu allen Betriebssystemen, für die FUSE selbst auch verfügbar ist.
Die stabile Version bietet fast vollständigen Zugriff auf Dateien auf einem NTFS-Dateisystem. Sollten Schreibzugriffe auf das Dateisystem durchgeführt werden während es noch unter einem anderen Betriebssystem eingebunden ist (z. B. bei Verwendung des Ruhezustands oder der Schnellstart-Funktion von Windows 8 und neuer), besteht die Gefahr von Datenverlust, da das andere Betriebssystem unter Umständen Informationen zum Zustand aller eingebundenen Dateisysteme im Speicher behält. Aktuelle Versionen von NTFS-3G binden das Dateisystem deshalb standardmäßig nur schreibgeschützt ein, wenn ein Windows mit aktivem Schnellstart oder im Ruhezustand erkannt wird.
Im Entwicklungszweig “Advanced Features” werden experimentelle Funktionen in NTFS-3G getestet und unter Mithilfe der Benutzer verbessert und fehlerbereinigt. Erst wenn diese Funktionen als stabil gelten, werden sie für die stabile Version freigegeben.
Diese sind derzeit:
* Unterstützung von Zugriffs- und Eigentumsrechten nach den POSIX-Regeln, interoperabel mit Windows.
* POSIX ACLs (Access Control Lists)
* „Junction points“ und symbolische Links werden als symbolische Links dargestellt
* Oft benötigte Daten werden in einem Cache gespeichert
* Die Allokation von Speicherplatz für fragmentierte und Sparse-Dateien wurde verbessert
* Der Zugriff auf Windows- und NTFS-spezifische Attribute wie „Versteckt“ oder „System“ ist über die sogenannten „extended attributes“ möglich.
* Beim Anlegen und Ändern von Dateien wird das Archiv-Bit gesetzt.
* Komprimierung: Sequentielles Schreiben auf komprimierte Dateien wird unterstützt. (Ausnahme: Sparse-Dateien)
* Die letzten Testversionen ermöglichen das Lesen und Setzen des 8.3-DOS-Dateinamens.
* Werkzeuge für die Übersetzung von Windows-Benutzern und -Benutzergruppen in POSIX-Benutzer und -Gruppen sowie für die Überprüfung der Integrität der Daten für Zugriffs- und Eigentumsrechte
Die Verwendung dieser erweiterten Funktionen ist auf der Webseite dieser Erweiterungen ausführlich dokumentiert.