Windows-Partitionen einbinden/NTFS-3G

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. mount (Partitionen temporär einbinden)

  2. fstab (Partitionen statisch einbinden)

  3. Installation von Programmen, optional

  4. Windows-Partitionen einbinden

  5. FUSE (Filesystem in Userspace)

  6. UNIX-Dateirechte

  7. POSIX-ACL, optional

  8. Ein Terminal öffnen

  9. Administrator-Rechte

  10. Pakete aus dem Quellcode erstellen (nur optional)

Inhaltsverzeichnis
  1. Installation und Verwendung
    1. Installation
    2. Transparente Verwendung in Ubuntu
    3. NTFS-Partitionen einhängen
    4. Network Assisted Storage (NAS)
  2. Standard-Einstellungen
  3. Simulation von Dateirechten
    1. "uid" und "gid"
    2. "umask", "fmask" und "dmask"
  4. UNIX-Dateirechte und POSIX-ACL
    1. "permissions"
    2. "acl"
  5. Windows-Kompatibilität
    1. User-Mapping
    2. Zugriffsrechte
    3. Verknüpfungen
    4. "compression"
    5. "inherit"
  6. Daten-Sicherheit
    1. Journaling
    2. Dateisystem-Inkonsistenz
  7. Tool-Sammlung "ntfsprogs"
    1. Defragmentierung
  8. Probleme und Lösungen
    1. Dual-Boot und Ruhezustand (Hibernate)
    2. Freigabe von NTFS-Partitionen im Netzwer...
    3. Ungünstige Rechte auf externen Partition...
    4. Remount mit rw nicht möglich
  9. Links

NTFS-3G.png NTFS (New Technology File System) ist ein proprietäres Dateisystem von Microsoft für das Betriebssystem Microsoft Windows NT und dessen Nachfolger. Im Gegensatz zum Dateisystem FAT bietet NTFS einen gezielten Zugriffsschutz auf Dateiebene sowie größere Datensicherheit durch partielles Journaling. Bei NTFS ist die Dateigröße nicht wie bei FAT auf 4 GB beschränkt.

NTFS-3G (NTFS-Treiber der 3.Generation) ist ein auf FUSE [5] aufsetzender Treiber für das NTFS-Dateisystem für Linux und andere verwandte Betriebssysteme. Die erste stabile Version 1.0 wurde am 21. Februar 2007 veröffentlicht. Seither wurden zahlreiche Verbesserungen und Erweiterungen vorgenommen. Die wichtigste davon ist die volle Unterstützung der UNIX-Besitz- und Zugriffsrechte sowie der POSIX-ACL [7] und die Interoperabilität mit Windows durch optionales User Mapping und Rechte-Vererbung seit der Version 2009.11.14. Außerdem wird nun seit der Version 2010.8.8 (8. August 2010) auch der transparente Schreib- und Lesezugriff in komprimierten Ordnern voll unterstützt. Mit der Version 2011.4.12 (10. April 2011) wurden nun alle Funktionen des früher eigenständigen Pakets ntfsprogs in NTFS-3G integriert.

Entwickelt und vertrieben wird NTFS-3G heute vom finnischen Unternehmen Tuxera 🇬🇧, dessen CTO Szabolcs Szakacsits wesentlich zur Entwicklung des Treibers beigetragen hat. Der Dateisystemtreiber wird in einem dualen Lizenzsystem neben der freien Version (Community Version) auch als "Tuxera NTFS embedded" unter einer proprietären Lizenz für Unternehmen angeboten.

Dieser Artikel muss sich auf die wichtigsten Eigenschaften von NTFS-3G beschränken; eine vollständige Übersicht bietet das NTFS-3G Manual 🇬🇧. Allgemeine Hinweise zur Verwendung von Windows-Partitionen in Linux bietet der Artikel Windows-Partitionen einbinden.

Installation und Verwendung

Installation

NTFS-3g gehört zur Standardinstallation und ist deshalb auf jedem frisch installierten System vorhanden. Es ist durch das Paket ntfs-3g bereitgestellt.

Möchte man jedoch die jeweils neueste Version von NTFS-3G verwenden, so kann man deren stabilen Quelltext von der Projektseite (Erweiterte Versionen) und auch deren Entwicklerversionen herunterladen und kompilieren [10]. Das Paket fuse sowie die zum Kompilieren benötigten Pakete gcc-4.5 und libc-dev-bin sind in Ubuntu standardmäßig vorhanden, für jüngere Entwicklerversionen werden allerdings noch build-essential und libgcrypt-dev benötigt.

Transparente Verwendung in Ubuntu

NTFS-Partitionen können wie andere Partitionen im Dateimanager (z.B. Nautilus) mit einem Mausklick temporär eingebunden werden. Dabei wird automatisch ein Mountpunkt im Systemordner /media erzeugt. Wenn die Voraussetzungen dafür erfüllt sind (vor allem muss der eingeloggte Benutzer als Mitglied der Gruppe fuse Zugriff zum FUSE-Dateisystem haben), dann verwendet Ubuntu dafür automatisch den Treiber NTFS-3G.

Sind hingegen die Voraussetzungen für die Verwendung von NTFS-3G nicht gegeben, so verwendet Ubuntu als "Fallback" das Standard-NTFS-Kernelmodul. Da dieses bisher keinen wirklich sicheren Schreibzugriff gestattet, werden dann alle NTFS-Partitionen unabhängig von den jeweils angegebenen mount-Optionen im Modus ro (nur lesen, keine Schreibrechte) eingebunden.

NTFS-Partitionen einhängen

NTFS-Partitionen lassen sich auf die gleiche Weise temporär [1] oder statisch [2] einhängen, wie Partitionen mit anderen Dateisystemen. Anders als beim Einbinden mit Mausklick muss man zuerst einen leeren Ordner als Mountpunkt einrichten. Die Angabe des Dateisystems (ntfs) bzw. des Treibers (ntfs-3g) ist optional, denn Ubuntu erkennt das Dateisystem NTFS automatisch. Wenn möglich, dann verwendet Ubuntu automatisch den Treiber NTFS-3G, ohne dass dies im Mount-Befehl oder im fstab-Eintrag angegeben werden muss. Folgende Befehlszeilen

sudo mount PARTITION MOUNTPUNKT
sudo mount -t ntfs PARTITION MOUNTPUNKT
sudo mount -t ntfs-3g PARTITION MOUNTPUNKT
sudo ntfs-3g PARTITION MOUNTPUNKT 

bewirken also das Gleiche. Zur Kennzeichnung der Partition kann deren UUID, Label oder auch ihr Eintrag in /dev verwendet werden.

# Beispiel:
sudo mount -t ntfs UUID=58CC69AFCC6987D8 /media/Bilder 

Soll die Partition statisch gemountet werden, lautet der entsprechende Eintrag in /etc/fstab [2]:

UUID=58CC69AFCC6987D8 /media/Bilder ntfs defaults 0 0

Durch einen Eintrag der folgenden Art in /etc/fstab [2]

UUID=58CC69AFCC6987D8 /media/Bilder ntfs noauto,users 0 0

lässt sich das temporäre Mounten [1] so vorbereiten, dass man nicht mit "Administrator-Rechten" [9], sondern auch gewöhnliche Benutzer mounten können. Dies ist aber nur möglich, wenn für die Datei /bin/ntfs-3g das SUID-Bit gesetzt ist. Dies geschieht mit folgender Befehlszeile

sudo chmod +s /bin/ntfs-3g 

In den Versionen vor NTFS-3G 1.2506 wird diese Möglichkeit noch nicht unterstützt.

Achtung!

Der Einsatz des SUID-Bit ist eine mögliche Sicherheitslücke und sollte nur mit Bedacht verwendet werden.

Hinweis:

Bei Einträgen in /etc/fstab [2] ist zu beachten, dass bei NTFS-Partitionen im 6. (letzten) Feld die Ziffer 0 (Null) stehen muss, weil NTFS-3G eine automatische Prüfung des Dateisystems beim Einhängen nicht unterstützt.

Die meisten üblichen Mount-Optionen werden auch von NTFS-3G unterstützt. Deshalb werden in diesem Artikel nur spezielle Optionen von NTFS-3G angesprochen.

Network Assisted Storage (NAS)

Netzwerkfähige Speichergeräte (NAS) verwenden häufig eine Linux-Version als Betriebssystem. NTFS-Partitionen werden dann dort intern meist mit "Tuxera NTFS embedded", der kommerziellen Version von NTFS-3G, eingebunden. Die Kommunikation mit den Clients erfolgt aber über einen Netzwerk-Dienst, z.B. Samba oder NFS. Deshalb sind auf den Clients beim Einbinden die Mount-Optionen des jeweiligen Netzwerk-Dienstes (für Samba siehe Samba Client cifs) und nicht etwa die von NTFS-3G zu verwenden.

Standard-Einstellungen

Beim Automatischen Einbinden von internen NTFS-Partitionen bei der Installation von Ubuntu, beim Einbinden mit Mausklick und bei Einbinden ohne die Angabe weiterer Mount-Parameter werden von NTFS-3G folgende Standard-Einstellungen verwendet:

Beim automatischen Einbinden externer Laufwerke (auch USB-Sticks) beim Booten oder Hotplug verwendet NTFS-3G in Ubuntu andere Standard-Einstellungen:

Werden externe Laufwerke nicht automatisch beim Booten oder Hotplug eingebunden, sondern durch einen Eintrag in /etc/fstab, so werden sie wie interne Laufwerke behandelt.

Achtung!

Weil dann dort jedermann uneingeschränkten Zugriff auf alle Dateien hat, kann es ein erhebliches Sicherheitsrisiko bedeuten, NTFS-Partitionen mit sensiblen Daten unter den Standard-Einstellungen von NTFS-3G einzubinden. Ganz besonders gilt dies für Windows-Systempartitionen in Dual-Boot-Systemen.

Simulation von Dateirechten

Ähnlich wie dies auch beim Einbinden von VFAT-Partitionen [4] möglich ist, kann NTFS-3G beim Einbinden von NTFS-Partitionen für diese Besitz- und Zugriffsrechte simulieren. Die simulierten Dateirechte gelten dann nur solange die Partition eingebunden bleibt, und können bei jedem erneuten Einbinden wieder unabhängig von ihren vorherigen Werten neu festgelegt werden. Die echten Dateirechte auf der NTFS-Partition werden davon nicht berührt.

Die simulierten Dateirechte gelten immer für die gesamte Partition. Für einzelne Dateien können sie mit dem Befehl chmod allenfalls weiter eingeschränkt, nicht aber erweitert werden. Der Befehl chown ist bei simulierten Dateirechten unwirksam.

"uid" und "gid"

Mit den Optionen uid=UID und gid=GID werden Benutzer und Gruppe für die Partition simuliert. Für UID und GID kann man wahlweise die numerischen Werte oder die Namen eintragen. Fehlt der Eintrag für gid, so wird die Hauptgruppe des angegebenen Benutzers gewählt. Fehlt hingegen der Eintrag für uid, so erscheint "Root" als Eigentümer.

"umask", "fmask" und "dmask"

Auch die Zugriffsrechte auf Ordner und Dateien können bereits beim Einbinden für die gesamte Partition eingeschränkt werden. Möchte man für Ordner und Dateien die gleichen Einschränkungen vornehmen, geschieht dies mittels umask. Getrennte Einschränkungen sind mit dmask (für Ordner) und fmask (für Dateien) möglich.

Bei diesen Optionen handelt es sich um negative Maskierungen in oktaler Darstellung (siehe dazu Unix-Dateirechte, d.h. die angegebenen Bits werden aus der Standard-Einstellung gelöscht. So bewirkt z.B. die Option umask=0027 auf internen Partitionen den Modus 0750.

Hinweis:

Die hier verwendete "negative" Maskierung darf nicht mit der "positiven" Maskierung verwechselt werden, die z.B. in Samba verwendet wird.

UNIX-Dateirechte und POSIX-ACL

NTFS-3G kann auch wie "echte" Linux-Dateisysteme (z.B. ext4) dateigebundene Besitz- und Zugriffsrechte vergeben und verwalten. Dies geschieht über die Mount-Optionen permissions und acl. Im Gegensatz zu den simulierten Dateirechten werden diese echten Dateirechte dauerhaft auf der NTFS-Partition eingetragen und sind nach dem Aushängen und erneuten Einbinden der Partition noch unverändert vorhanden.

Die Optionen permissions und acl setzen evtl. vorhandene konkurrierende Optionen zur Simulation von Dateirechten außer Kraft.

Hinweis:

Obwohl sich mit den Optionen permissions und acl eingebundene NTFS-Partitionen wie vollwertige Linux-Dateisysteme verhalten, können Dateioperationen auf NTFS-Partitionen trotzdem deutlich langsamer sein.

"permissions"

Die in Linux verwendeten UNIX-Dateirechte [6] bestehen aus den Grundrechten "Lesen", "Schreiben" und "Ausführen" sowie den Sonderrechten setuid, setgid und sticky Bit. Diese werden für den "Eigentümer", die "Gruppe" und "Andere" getrennt festgelegt. Die Abbildung der Grundrechte auf die in NTFS verwendeten Windows-Dateirechte ist kein Problem. NTFS-3G bildet auch die Sonderrechte ab, sodass sich mit der Option permissions die Verwaltung der gesamten UNIX-Dateirechte auf einer NTFS-Partition in Linux genau so darstellt wie in einem "echten" Linux-Dateisystem. Dabei entstehen allerdings für Windows unbekannte Eigentumskennungen in den ACLs. Auch lassen sich dann die Befehle chown, chgrp sowie chmod auf NTFS-Partitionen ohne Einschränkungen zum nachträglichen Ändern von Dateirechten verwenden.

"acl"

Hinweis:

Dieser Abschnitt erfordert mehr Erfahrung im Umgang mit Windows und Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Nicht nur die Identifikation der Benutzer und Gruppen, sondern auch die Verwaltung der Zugriffsrechte unterscheidet sich in Windows wesentlich von der in Linux. Während in Linux standardmäßig die UNIX-Dateirechte [6] verwendet werden, wird unter Windows NT jedem Ordner und jeder Datei ein "Security Descriptor" zugeordnet, der eine ACL (Access Control List) enthalten kann. Ist keine ACL vorhanden, so erhält jeder Benutzer Vollzugriff auf das Objekt. Mit dieser ACL lassen sich die Zugriffsrechte wesentlich differenzierter festlegen als mit den UNIX-Dateirechten.

Seit Ubuntu 9.04 werden auch in Ubuntu-Linux ACL [7] standardmäßig unterstützt. Diese entsprechen aber der (nicht offiziellen) Norm POSIX-1003.1e und sind mit den von Windows verwendeten ACL nicht identisch. NTFS-3G verwendet notwendigerweise zur Festlegung der Zugriffsrechte im NTFS-Dateisystem die Windows-ACL.

Die Option permissions bewirkt, dass beim Anlegen neuer Ordner und Dateien die UNIX-Dateirechte in eine Windows-ACL übernommen werden. Dies ist immer problemlos möglich. Durch die Option acl werden bei Ordnern und Dateien zusätzlich auch die POSIX-ACL von NTFS-3G unterstützt. Dies ist allerdings systembedingt nur in dem Rahmen möglich, wie diese sich in Windows-ACL übertragen lassen, was nicht in jedem Fall automatisch gewährleistet ist.

Windows-Kompatibilität

User-Mapping

In der Regel wird man NTFS-Partitionen nicht nur in Linux, sondern abwechselnd in Linux und Windows benutzen. Dann wird man Wert darauf legen, dass beide Betriebssysteme gegenseitig die Besitz- und Zugriffsrechte anerkennen. Besonders wichtig ist dies bei Dual-Boot-Systemen.

Hierfür reicht es aber nicht aus, die Optionen permissions und nötigenfalls noch acl zu setzen. Denn Linux verwendet zur Identifikation von Benutzer und Gruppe die Zahlenwerte UID und GID, das Dateisystem NTFS verwendet dafür hingegen den Windows-spezifischen SID. NTFS-3G kann aber nicht selbständig erkennen, welche SID es jeweils einem UID oder GID zuordnen muss. Die Zuordnung von UID und GID zu SID geschieht vielmehr über eine auf der betreffenden NTFS-Partition befindliche, versteckte Datei .NTFS-3G/UserMapping.

Die Datei .NTFS-3G/UserMapping ist eine reine Textdatei. Die einzelnen Zeilen sind durch Doppelpunkte in drei Felder unterteilt. Das erste Feld enthält einen UID, das zweite einen GID und das dritte den jeweils zugeordneten SID. Da jedem UID und jedem GID ein eigener SID zuzuordnen ist, benötigt man für jede Kombination von Benutzer und Gruppe also zwei Zeilen; es ist nicht zulässig, UID und GID in der gleichen Zeile einzutragen. Zum Erstellen einer Zuordnungstabelle ist in NTFS-3G das Tool ntfs-3g.usermap enthalten.

Man muss nun in folgender Reihenfolge vorgehen:

  1. Zuerst müssen die SID für alle Benutzer festliegen, die eigene Rechte auf der Partition haben sollen. Deshalb müssen als erstes für diese in Windows Accounts eingerichtet werden.

  2. Dann müssen diese Benutzer auf der Partition von Windows aus jeweils mindestens eine Datei oder einen Ordner anlegen, um ihren SID auf der Partition bekannt zu machen. Man merkt sich nun oder notiert, welchem Eigentümer und welcher Gruppe die einzelnen Dateien in Linux zugeordnet werden sollen.

  3. Jetzt wechselt man ins Linux-Betriebssystem, hängt aber dort die NTFS-Partition noch nicht ein!

  4. Nun gibt man in einem Terminal folgende Befehlszeile ein

    • bis einschließlich Ubuntu 16.04 LTS

      sudo ntfs-3g.usermap PARTITION 
    • ab Ubuntu 18.04 LTS

      sudo ntfsusermap PARTITION 

      wobei zur Kennzeichnung der Partition wieder wahlweise deren UUID, Label oder auch ihr Eintrag in /dev verwendet werden kann.

  5. Man erhält nun für jede der Dateien je eine Zeilen-Vorlage für den Eigentümer und für die Gruppe, in der der SID bereits eingetragen ist. Man muss diese Zeilen nur noch dadurch ergänzen, dass man den betreffenden UID bzw. GID ins richtige (!) Feld einträgt. Für UID und GID können wahlweise die nummerischen Werte oder die Namen eingetragen werden.

  6. Nun kann man die Partition in Linux einhängen. Eigentümer und Gruppen sollten einander nun in Windows und Linux wechselseitig erkennen.

Der umgekehrte Weg, Dateien, die über NTFS-3G von Linux aus auf der Partition angelegt wurden, nachträglich einen SID zuzuordnen, ist nicht ohne großen administrativen Aufwand möglich.

Möglicherweise ist die Zuordnung zwischen den SID in Windows und den UID und GID in Linux nicht vollständig. Dann legt NTFS-3G für die dort fehlenden Linux-Benutzer zufällige SID an, die aber von Windows nicht zugeordnet werden können. Dateien dieser Benutzer erscheinen dann in Windows als Eigentum eines "fremden Benutzers", und jedermann hat darauf Zugriff. Umgekehrt erscheinen Dateien, die von Windows-Benutzern angelegt wurden, die in Linux unbekannt sind, dort als Eigentum von "Root", und jedermann hat darauf vollen Zugriff.

Wenn auf der NTFS-Partition eine Datei .NTFS-3G/UserMapping vorhanden ist, dann setzt NTFS-3G automatisch die Option permissions, auch wenn diese nicht eingetragen ist. Außerdem wird dann zusätzlich auch die Option acl gesetzt, sofern kein Eintrag für permissions vorliegt.

Mit der Option usermapping=DATEINAME kann auch eine beliebige andere Datei als Zuordnungsdatei verwendet werden, sodass man z.B. bei externen Laufwerken die Zuordnung abhängig vom Rechner festlegen kann. Die so festgelegte Zuordnungsdatei darf sich auch auf jeder anderen Partition befinden, also bei externen Laufwerken auch z.B. auf einer internen Partition des jeweiligen Rechners.

Zugriffsrechte

Ist nur die Option permissions, nicht aber die Option acl gesetzt, so werden nur die die UNIX-Dateirechte [6] berücksichtigt. Diese lassen sich ohne Schwierigkeiten auf die Windows-ACL abbilden, sodass Windows die in Linux festgelegten Rechte vollständig berücksichtigen kann. Umgekehrt lassen sich aber die Windows-ACL nicht vollständig auf die UNIX-Dateirechte abbilden. NTFS-3G kann in diesem Fall nur solche in Windows getroffene Festlegungen berücksichtigen, die den UNIX-Dateirechten entsprechen.

Ist zusätzlich noch die Option acl gesetzt, so stehen in Linux die gesamten POSIX-ACL [7] zur Verfügung. Auf diese lassen sich praktisch alle Windows-ACL abbilden, sodass NTFS-3G alle in Windows festgelegten Dateirechte berücksichtigen kann. Leider sind aber nicht alle in den POSIX-ACL möglichen Kombinationen auch in Windows zulässig. Oftmals erkennt und berücksichtigt zwar Windows auch in diesen Fällen die in Linux festgelegten Rechte. Von Windows-Administrations-Werkzeugen werden sie aber falsch interpretiert bzw. fehlerhaft bearbeitet.

Aus diesen Gründen sollte man beide Systeme gut kennen und vor allem komplexe Dateirechte nur in demjenigen Betriebssystem administrieren, in dem sie festgelegt wurden.

Verknüpfungen

NTFS-3G hat immer schon harte als auch Symbolische Verknüpfungen ("Symlinks") auf NTFS-Partitionen unterstützt. Windows Ordner- und Volumen-Verweise (sog. Junctions) werden - soweit auflösbar 🇬🇧 - in Symlinks übersetzt, nicht jedoch die z.B. mittels Windows-Explorer erzeugten Verknüpfungsdateien (*.lnk). Seit der Version NT 6.0 (Vista) (mit Fremdtreiber auch unter XP 🇬🇧) werden symbolische Verknüpfungen auch von Windows unterstützt. Bis zum bisherigen Stand (NTFS-3G 2016.2.22AR.1) unter Linux erzeugte und auch funktionelle Symlinks sind jedoch nicht Windows-kompatibel und erscheinen deshalb dort als ungültig, sodass sie bisher nur auf Partitionen sinnvoll sind, wo sie ausschließlich von Linux verwendet werden.

"compression"

NTFS hat ein besonderes Speicherformat für komprimierte Dateien, das den Anwendungsprogrammen transparentes Lesen und Schreiben erlaubt. NTFS-3G konnte dieses Format schon immer lesen; seit der Version 2009.11.14 können auch neue komprimierte Dateien erzeugt oder weitere Dateien in komprimierte Ordner eingefügt werden. Erst seit der Version 2010.8.8 (Ubuntu 11.04 Natty) können jedoch auch bereits existierende komprimierte Dateien verändert oder überschrieben werden.

Wenn die Option compression gesetzt ist, werden Dateien von NTFS-3G in Ordnern, die als "komprimiert" gekennzeichnet sind, komprimiert gespeichert. In anderen Ordnern werden die Dateien dessen ungeachtet unkomprimiert gespeichert. Für das Lesen komprimierter Dateien ist diese Option nicht nötig.

Die Option compression betrifft nur das transparente Komprimieren und Dekomprimieren im speziellen NTFS-Format; die Verwendung anderer Kompressionsmethoden oder Packprogramme wird davon nicht beeinflusst.

"inherit"

In Windows werden beim Anlegen neuer Ordner und Dateien die Zugriffsrechte vom jeweils übergeordneten Ordner übernommen ("geerbt"), während sie in Ubuntu standardmäßig je nach dem gültigen Wert von umask unabhängig von den Zugriffsrechten des Ordners neu festgelegt werden. Ist die Option inherit gesetzt, werden beim Anlegen neuer Ordner und Dateien die in Windows gültigen Regeln verwendet.

Die Option inherit hat nur Wirkung bei vorhandenem User-Mapping und betrifft nur die Zugriffsrechte; die Eigentumsrechte werden davon nicht berührt.

Daten-Sicherheit

Journaling

NTFS-3G unterstützt "Partielles Journaling" und entspricht damit ungefähr der Default-Einstellung in ext3 und ext4. Dies bedeutet, dass nach einem ungeregelten Abbruch (auch Absturz) das inkonsistent gewordene Dateisystem als Ganzes wieder repariert werden kann. Dateien, bei denen im Moment des Abbruchs gerade Schreibvorgänge am Laufen waren, können aber trotzdem beschädigt sein. Ein Datenverlust kann deshalb nicht sicher ausgeschlossen werden.

"Full Journaling", wie es in ext3 und ext4 optional einstellbar und in ReiserFS Standard ist, lässt sich mit NTFS nicht verwirklichen.

Dateisystem-Inkonsistenz

Dateisysteme mit fehlerhaftem Journal werden standardmäßig von NTFS-3G eingelesen und dabei repariert. Dies lässt sich durch die Mount-Option norecover unterbinden. Stärker beschädigte NTFS-Dateisysteme können eventuell von NTFS-3G nicht repariert werden; es kann sein, dass diese sich dann auch gar nicht mehr einbinden lassen, ohne dass vorher in Windows eine Reparatur mittels chkdsk durchgeführt wird. Auch das Tool ntfsfix (s.u.) kann oftmals solche Partitionen nicht selbst reparieren; es setzt dann aber ein Flag, dass beim nächsten Einbinden in Windows dort automatisch chkdsk ausgeführt wird.

Mit der Mount-Option force lässt sich erreichen, dass NTFS-3G auch schadhafte Partitionen einbindet. Da dann aber keine Datensicherheit gewährleistet ist, sollte man hiervon nur mit größter Vorsicht Gebrauch machen.

Tool-Sammlung "ntfsprogs"

Mit den Routinen der Sammlung ntfsprogs lassen sich verschiedene Aufgaben mit NTFS-Partitionen durchführen. Seit der Ubuntu-Version 11.04 enthält das Paket ntfs-3g verbesserte Versionen der Werkzeuge aus den ntfsprogs. Man sollte deshalb die alte, eigenständige Sammlung nicht parallel zu diesem benutzen.

Um Versionsnummer und Syntax der einzelnen Routinen zu erhalten, genügt es, diese in einem Terminal ohne Parameter aufzurufen.

Derzeit sind folgende Routinen vorhanden:

"ntfsprogs"
Befehl Beschreibung
mkntfs Formatiert eine Partition mit dem NTFS Dateisystem.
ntfs.probe Prüft die Einhängbarkeit eines NTFS-Volumens.
ntfscat Verbindet Dateien auf einer NTFS-Partition und gibt deren Inhalt aus.
ntfsclone Erstellt ein Abbild einer NTFS-Partition und stellt diese aus dem Abbild wieder her.
ntfscluster Ermittelt den Besitzer eines bestimmten Sektors oder Clusters auf einer NTFS-Partition.
ntfscmp NTFS-Volumes vergleichen.
ntfscp Überschreibt Dateien auf einer NTFS-Partition.
ntfsdecrypt Entschlüsselt NTFS-Volumen und Dateien.
ntfsfallocate Ordnet Cluster einem bestimmten Attribut oder einer bestimmten Datei zu.
ntfsfix Identifiziert Fehler auf NTFS-Partitionen und versucht, diese zu bereinigen. Zwingt zusätzlich Windows, beim nächsten Start die NTFS-Partition mittels chkdsk zu prüfen und ggf. zu reparieren. ntfsfix ist kein vollwertiges Äquivalent zum Windows-Befehl chkdsk. Zwar werden von ntfsfix Dateifehler zuverlässig erkannt, doch können damit derzeit noch nicht alle davon auch repariert werden.
ntfsinfo Zeigt einige Informationen zu einer NTFS-Partition oder zu einer darauf befindlichen Datei/Ordner.
ntfslabel Zeigt das Label einer NTFS-Partition an und erlaubt es, dieses zu verändern.
ntfsls Listet Informationen über Dateien in einem Verzeichnis auf einer NTFS-Partition auf.
ntfsmove Verschiebt Datei an bestimmte Position auf der NTFS-Partition.
ntfsrecover Stellt die durch Windows übergebenen Aktualisierungen wieder her.
ntfsresize Ändert die Größe von NTFS-Partitionen. Kann (angeblich) auch ohne vorherige Defragmentierung verwendet werden.
ntfssecaudit Überprüft und bearbeitet NTFS-Datei-Sicherheits-Informationen.
ntfstruncate Kürzt spezifizierte Attribute von NTFS-Inodes.
ntfsundelete Stellt gelöschte Dateien auf einer NTFS-Partition wieder her.
ntfsusermap Hilft ein Mapping von Windows-Benutzern und -Gruppen zu Linux-Benutzern und -Gruppen zu erstellen.
ntfswipe Löscht optionsabhängig diverse NTFS-Meta-Daten.

Zur Anwendung der Routinen brauchen die betroffenen NTFS-Partitionen nicht eingebunden (gemountet) zu sein. Die früher vorhandene Routine ntfsmount ist durch ntfs-3g ersetzt.

Defragmentierung

Die Dateisysteme VFAT und NTFS neigen bekanntlich zur Fragmentierung und sollten deshalb nach längerem Gebrauch defragmentiert werden. In der Werkzeugsammlung ist bisher noch keine Routine zur Defragmentierung enthalten.

Zur Defragmentierung von VFAT- und NTFS-Partitionen eignet sich z.B. das Open-Source-Programm UltraDefrag 🇩🇪. Das Programm wurde primär für Windows erstellt; eine geplante Linux-Version wird offenbar nicht mehr weiter entwickelt (Stand Juni 2014).

Probleme und Lösungen

Dual-Boot und Ruhezustand (Hibernate)

Wird Windows in den Ruhezustand (Hibernation) versetzt, so wird der komplette RAM-Inhalt in einer speziellen Datei (hiberfil.sys) gesichert. Deren Inhalt wird beim "Erwachen aus dem Ruhezustand" wieder ins RAM geladen, und man kann wieder da weiterarbeiten, wo man aufgehört hat. Waren beim "Einschlafen" Dateien geöffnet, darf auf diese mittels Linux auf keinen Fall schreibend zugegriffen werden, da sie dann inkonsistent zu dem gesicherten Ruhezustand werden, was dann infolge z.B. noch nicht auf Platte geschriebener Daten in aller Regel mindestens zu Datenverlust, oft aber auch zur Korruption des Dateisystems führt.

Findet NTFS-3G eine Partition im Ruhezustand vor, so wird diese Partition standardmäßig nicht, bzw. seit Version 2016.2.22AR.1 nur zum Lesen ohne Schreibrechte eingebunden, ungeachtet der im Mount-Befehl angegebenen Optionen. Dies scheint auch bei Nutzung der Schnellstart-Option ab Windows 8 zu gelten.

Achtung!

Dieser Schreibschutz gilt nur für die Windows-Systempartition. Andere Partitionen, die beim "Einschlafen" von Windows im Zugriff waren, werden durch diesen Mechanismus nicht geschützt. Dies kann zu empfindlichem Datenverlust und auch Dateisystem-Korruption in Dual-Boot-Installationen führen, insbesondere wenn Daten wie beispielsweise Mozilla-Profile plattformübergreifend genutzt werden. So können z.B. sämtliche von Thunderbird gespeicherten E-Mails korrumpiert werden. Besonders tückisch: Windows kann auch völlig unbemerkt und unbeabsichtigt in den Ruhezustand gegangen sein (Standardverhalten bei Nichtbenutzung während bestimmter Zeit, im Akkubetrieb evtl. schon nach wenigen Minuten). Wehe wenn dann beim nächsten Systemstart automatisch oder nichtsahnend manuell Linux gebootet und dann automatisch per 'fstab oder manuell die ungeschützte z.B. Datenpartition eingebunden wird. Ein möglicher Schutzmechanismus wurde bisher leider nicht umgesetzt. Ein gewisser Schutz kann dadurch erreicht werden, indem man GRUB so konfiguriert, dass beim automatischen Systemstart immer die zuletzt manuell ausgewählte Partition gebootet wird.

Wenn Windows unter der Schnellstart-Option (ab Version 8) neu startet, dann werden bei allen eingebundenen Partitionen die Metadaten auf den Wert zurückgesetzt, den sie beim letzten Herunterfahren von Windows hatten. Zwischenzeitlich unter Linux erfolgte Änderungen können dadurch verloren gehen. Deshalb wird dringend empfohlen, in Dual-Boot Systemen die Schnellstart-Option von Windows zu deaktivieren.

Nach den halbjährlichen, "großen" Updates von Windows 10 kann es außerdem vorkommen, dass die Schnellstart-Option nach dem Update wieder aktiviert ist. Dies sollte nach dem Update überprüft und wenn nötig wieder deaktiviert werden.

Freigabe von NTFS-Partitionen im Netzwerk

NTFS-Partitionen und auf ihnen befindliche Ordner lassen sich mit Samba und seit dem Linux-Kernel 2.6.27 auch mit NFS im Netzwerk freigeben. Im Prinzip geht dies auch mit simulierten Dateirechten, da die Netzwerk-Dienste diese nicht von echten unterscheiden können.

Allerdings erweisen sich die Standard-Einstellungen oftmals als Hindernis. So sind z.B. auf automatisch eingehängten externen NTFS-Partitionen keine Samba-Freigaben mit Gast-Zugang möglich, weil "Andere" keinen Zugriff haben, und die von Nautilus vorgeschlagene nachträgliche Erweiterung der Zugriffsrechte funktioniert nicht. Auf mit Standard-Einstellungen eingebundenen internen NTFS-Partitionen sind keine persönlichen Freigaben mittels net usershare möglich, weil der eingeloggte Benutzer nicht deren (scheinbarer) Eigentümer ist.

Man muss deshalb simulierte Dateirechte bereits beim Mounten geeignet festlegen, oder aber über die Option permissions echte Dateirechte verwenden, die sich auch nachträglich jederzeit noch gezielt anpassen lassen.

Ungünstige Rechte auf externen Partitionen

Nicht immer sind die beim automatischen Einbinden externer NTFS-Partitionen simulierten Rechte günstig (siehe dazu auch die Achtung-Box hier). Möchte man diese ändern, so muss man die Partition entweder aushängen und mit veränderten Boot-Optionen von Hand wieder einhängen, oder aber für die Partition einen fstab-Eintrag mit geeigneten Boot-Optionen vornehmen. Beides kann lästig sein.

Eine einfache Alternative ist, auf der Partition ein User-Mapping zu simulieren. Hierzu genügt es, dort eine versteckte Datei .NTFS-3G/UserMapping anzulegen und in diese lediglich die Zeile

::S-1-5-21-3141592653-589793238-462643383-10000

einzutragen. Die ersten beiden Felder für UID und GID bleiben leer, und die drei 9- bzw. 10-stelligen Zahlen für den SID sind beliebig wählbar bis 4294967295. NTFS-3G erkennt dann bei jedem Einbinden der Partition, dass dort ein (scheinbares) User-Mapping vorhanden ist, und bindet die Partition deshalb automatisch mit den Optionen permissions und acl ein. Damit können dann dort echte Dateirechte verwaltet werden wie bei einem Linux-Dateisystem.

Remount mit rw nicht möglich

Hat man ein Dateisystem mit ro-Option eingebunden, funktioniert das Remount mit Schreibrechten nicht (Stand: Ubuntu 12.04). (siehe 186117)

Abhilfe ist, hier erst ein umount zu machen und dann mit rw-Option zu mounten.