ubuntuusers.de

NTFS-3G

Achtung!

Dieser Artikel wird aktuell in Baustelle/Windows-Partitionen einbinden/NTFS-3G überarbeitet. Daher kann es sein, dass diese Seite hier veraltete oder nicht (mehr) zutreffende Informationen enthält. Vergleiche beide Versionen und wende dich im Zweifelsfall mit deinem konkreten Anliegen an das Support-Forum. Änderungen am Artikel bitte nur in Baustelle/Windows-Partitionen einbinden/NTFS-3G!

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

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 zu den Dateisystemen FAT/FAT32 und exFAT bietet NTFS einen gezielten Zugriffsschutz auf Dateiebene sowie größere Datensicherheit durch partielles Journaling. Bei NTFS ist die Dateigröße nicht wie bei FAT32 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. Seit der ersten stabilen Version 1.0 (21. Februar 2007) wurden zahlreiche Verbesserungen und Erweiterungen vorgenommen. Inzwischen bietet NTFS-3G optional die volle Unterstützung der UNIX-Besitz- und Zugriffsrechte [6] sowie der POSIX-ACL [7], die Interoperabilität mit Windows durch User Mapping und die Rechte-Vererbung. Auch der transparente Schreib- und Lesezugriff in komprimierten Ordnern wird voll unterstützt. Alle Funktionen des früher eigenständigen Pakets ntfsprogs sind inzwischen in NTFS-3G integriert.

Entwickelt und vertrieben wird NTFS-3G heute vom finnischen Unternehmen Tuxera 🇬🇧. 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 - Wiki 🇬🇧 Allgemeine Hinweise zur Verwendung von Windows-Partitionen in Linux bietet der Artikel Windows-Partitionen einbinden.

Hinweis:

Seit Ubuntu 22.04 LTS ist im Kernel (ab 5.15) ein Modul NTFS3 integriert, das Lese- und Schreibvorgänge voll unterstützt, das aber nicht wie NTFS-3G auf FUSE aufsetzt. Auch NTFS3 bietet eine Verwaltung von UNIX-Dateirechten und POSIX-ACL, die aber mit der von NTFS-3G leider nicht kompatibel ist. Das Kernel-Modul NTFS3 ist nicht Gegenstand dieses Artikels.

Installation und Verwendung

Installation

NTFS-3g und FUSE gehören zur Standardinstallation und sind deshalb auf jedem frisch installierten System vorhanden. Sie werden durch die Pakete ntfs-3g und fuse bereitgestellt.

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 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 ältere Standard-NTFS-Kernelmodul im Modus ro (nur lesen, keine Schreibrechte).

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 mittels 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 dann 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

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 oft 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 mount.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:

  • Besitz- und Zugriffsrechte der Ordner und Dateien auf der Partition werden ignoriert.

  • Als scheinbarer Eigentümer und Gruppe wird für alle Ordner Root/Root angenommen (simuliert).

  • Jedermann hat auf alle Ordner und Dateien der Partition vollen Schreib- und Lesezugriff (Mode 0777).

  • Alle Dateien auf der Partition gelten von den Dateirechten her als ausführbar.

  • Als Eigentümer aller mittels NTFS-3G neu angelegter Ordner und Dateien gilt in Windows "Fremder Benutzer". Jedermann hat dort vollen Zugriff.

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

  • Besitz- und Zugriffsrechte der Ordner und Dateien auf der Partition werden ignoriert.

  • Als scheinbarer Eigentümer und Gruppe wird für alle Ordner USER/USER angenommen (simuliert), wobei USER den jeweils eingeloggten Benutzer bezeichnet.

  • Der Eigentümer hat auf alle Ordner und Dateien der Partition vollen Schreib- und Lesezugriff und die Mitglieder der Gruppe USER haben Lesezugriff (Mode 0750 bzw. 0640).

  • Alle Dateien auf der Partition gelten von den Dateirechten her als nicht ausführbar.

  • Als Eigentümer aller mittels NTFS-3G neu angelegter Ordner und Dateien gilt in Windows "Fremder Benutzer". Jedermann hat dort vollen Zugriff.

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- ud exFAT-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. Echte Dateirechte auf der NTFS-Partition werden, falls vorhanden, davon nicht berührt.

Die simulierten Dateirechte gelten immer für die gesamte Partition und auch für alle nach dem Einbinden dort erzeugten oder dorthin kopierten bzw, verschobenen Ordner und Dateien. 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 (persistent) 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 stehen im Widerspruch zu den Optionen zur Simulation von Dateirechten. Deshalb wird man normalerweise vermeiden, dass beide Arten von Mount-Optionen zusammen vorkommen. Sollte dies aber trotzdem einmal der Fall sein, dann gelten folgende Prioritäten:

  • Findet NTFS-3G keine User-Mapping-Datei vor (s.u.), so haben die Optionen uid, gid, umask usw. Priorität. Eventuell vorhandene persistente Dateirechte werden dann ignoriert.

  • Findet NTFS-3G aber eine User-Mapping-Datei vor, dann haben permissions und acl Priorität, und die Optionen uid, gid, umask usw. werden ignoriert.

Hinweis:

Obwohl mit den Optionen permissions und acl eingebundene NTFS-Partitionen sich 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.

In Ubuntu werden POSIX-ACL [7] standardmäßig unterstützt. Diese sind aber mit den von Windows verwendeten ACL nicht identisch. NTFS-3G verwendet notwendigerweise zur Festlegung der Zugriffsrechte im NTFS-Dateisystem intern 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.

Die durch NTFS-3G mit den Optionen permissions und acl in den ACL erzeugten Eigentumskennungen sind in Windows unbekannt. Deshalb sind so erstellte Dateien in Windows zunächst Eigentum eines fremden Benutzers, und jedermann hat darauf uneingeschränkt Zugriff. Erst durch das User-Mapping (s.u.) werden die Dateirechte von Linux nach Windows und umgekehrt übernommen.

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 Textdatei. Standardmäßig ist dies die auf der betreffenden NTFS-Partition befindliche, versteckte Datei .NTFS-3G/UserMapping. Die einzelnen Zeilen dieser Datei 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.

Die Datei .NTFS-3G/UserMapping kann unter Windows leicht in einem Editor von Hand erstellt werden. Der Befehl

wmic useraccount get name,sid 

(cmd oder PowerShell) liefert eine Liste der Namen und SID aller im Windows-System registriereten Benutzer und Gruppen.

Alternativ ist zum Erstellen einer Zuordnungstabelle unter Linux in NTFS-3G das Tool ntfs-3g.usermap bzw. ntfsusermap enthalten. Damit muss man 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

sudo ntfsusermap PARTITION 

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

  1. 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.

  2. 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, entsprechend aufgebaute 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 unterstützt sowohl feste als auch symbolische Verknüpfungen (Hardlinks und Symlinks) auf NTFS-Partitionen. In Linux erzeugte und auch funktionelle Symlinks sind jedoch nicht Windows-kompatibel und erscheinen deshalb dort als ungültig, sodass sie bisher nur auf solchen 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 unterstützt dies auch in Linux uneingeschränkt, d.h. komprimierte Dateien können gelesen, erzeugt, verändert oder auch überschrieben werden. Wenn die Option compression gesetzt ist, werden Dateien von NTFS-3G in Ordnern, die als "komprimiert" gekennzeichnet sind, automatisch 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 auch in Linux 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"

In allen derzeit verfügbaren Versionen von NTFS-3G sind die Hilfsprogramme der Tool-Sammlung "ntfsprogs" bereits integriert. Ist von früher her noch ein eigenständiges Paket ntfsprogs installiert, so muss dieses zur Vermeidung von Dateikonflikten deinstalliert werden.

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 den Befehl 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. Wenn nötig, sollte man diese unter Windows vornehmen. Von der Defragmentierung von NTFS-Partitionen unter Linux wird abgeraten. Bei Flash-Speichern, vor allem auch SSD, ist eine Defragmentierung grundsätzlich nicht sinnvoll.

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 Windows-Systempartition im Ruhezustand vor, so wird diese Partition standardmäßig nur zum Lesen ohne Schreibrechte eingebunden, ungeachtet der im Mount-Befehl angegebenen Optionen. Gleiches gilt auch bei Nutzung der Schnellstart-Option von Windows.

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. 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 gewisser Schutz kann dadurch erreicht werden, dass man GRUB so konfiguriert, dass beim automatischen Systemstart immer die zuletzt manuell ausgewählte Partition gebootet wird.

Wenn Windows unter der Schnellstart-Option 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 grundsätzlich zu deaktivieren. Dies sollte nach allen halbjährlichen, "großen" Updates von Windows unbedingt wieder überprüft werden, da bei diesen manchmal die Schnellstart-Option unbemerkt wieder aktiviert wird.

Freigabe von NTFS-Partitionen im Netzwerk

NTFS-Partitionen und auf ihnen befindliche Ordner lassen sich mit Samba und 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 bei Samba 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 außerdem 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 z.B. die Zeile

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

einzutragen und diese mit abzuschließen (wichtig!). 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 ist bei NTFS-3G nicht möglich

NTFS-3G unterstützt die Mount-Option remount nicht. Hat man z.B. ein Dateisystem mit ro-Option eingebunden, funktioniert das Remount mit Schreibrechten nicht (Stand Ubuntu 22.04)

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

Diese Revision wurde am 17. März 2024 09:27 von Berlin_1946 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: mount, fstab, Partition, Windows, Dateisystem, System, Installation