[[Vorlage(Kopie, Windows-Partitionen_einbinden/NTFS-3G)]] [[Vorlage(Getestet, bionic, focal, jammy)]] {{{#!vorlage Wissen [:mount:mount (Partitionen temporär einbinden)] [:fstab:fstab (Partitionen statisch einbinden)] [:Pakete_installieren: Installation von Programmen] (optional) [:Windows-Partitionen einbinden:] [:FUSE:FUSE (Filesystem in Userspace)] [:Rechte:UNIX-Dateirechte] [:ACL:POSIX-ACL] (optional) [:Terminal: Ein Terminal öffnen] [:sudo: Administrator-Rechte] }}} [[Inhaltsverzeichnis(3)]] [[Bild(NTFS-3G.png, align=left)]] '''NTFS''' ('''N'''ew '''T'''echnology '''F'''ile '''S'''ystem) 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 [wikipedia:Journaling Dateisystem:Journaling]. Bei NTFS ist die Dateigröße nicht wie bei FAT32 auf 4 GB beschränkt. '''NTFS-3G''' (NTFS-Treiber der '''3'''.'''G'''eneration) 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 [wikipedia:Access_Control_List: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 [http://www.tuxera.com Tuxera] {en}. 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 [https://github.com/tuxera/ntfs-3g/wiki NTFS-3G - Wiki] {en} Allgemeine Hinweise zur Verwendung von Windows-Partitionen in Linux bietet der Artikel [:Windows-Partitionen einbinden:]. {{{#!vorlage 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 {{{#!vorlage Befehl 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:], [:Labels:Label] oder auch ihr Eintrag in '''/dev''' verwendet werden. {{{#!vorlage Befehl # 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 }}} {{{#!vorlage 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: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)== [wikipedia:Network_Attached_Storage: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 [wikipedia: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. {{{#!vorlage Warnung 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 [wikipedia: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. {{{#!vorlage 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 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. {{{#!vorlage 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"== {{{#!vorlage 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 [wikipedia:Access Control List:ACL] (__A__ccess __C__ontrol __L__ist) 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 [wikipedia:Security Identifier: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 {{{#!vorlage 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. 1. 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. 1. Jetzt wechselt man ins Linux-Betriebssystem, __hängt aber dort die NTFS-Partition noch nicht ein__! 1. Nun gibt man in einem [:Terminal:] folgende Befehlszeile ein {{{#!vorlage Befehl sudo ntfsusermap PARTITION }}} Zur Kennzeichnung der Partition kann wieder wahlweise deren [:UUID:], [:Labels: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. 1. 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 ([:ln#Hardlinks: Hardlinks] und [:ln#Symbolische-Verknuepfungen: 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 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. ## ==Erweiterte Dateiattribute== =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: {{{#!vorlage Tabelle <-2 rowclass="titel">"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 [:Labels: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 [:defrag: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 [wikipedia:Flash-Speicher:Flash-Speichern], vor allem auch [wikipedia: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. {{{#!vorlage Warnung 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_plattformübergreifend_nutzen: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_2/Konfiguration/#Bedeutung-der-Variablen: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 [:Windows-Partitionen_einbinden/#Simulierte-Dateirechte: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 [[Vorlage(Tasten, enter)]] 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. =Links= * [:FUSE:FUSE (Dateisystem im Userspace)] wird von NTFS-3G benötigt. * [:MS-Windows Integration:]: Hinweise zum Parallel-Betrieb von Linux und Windows. * [:Windows-Partitionen_einbinden:] * [:Externe Laufwerke statisch einbinden:] * [wikipedia:ntfs-3g:] in Wikipedia. * [https://github.com/tuxera/ntfs-3g]: Homepage bei GitHub {en} * [https://github.com/tuxera/ntfs-3g/wiki]: NTFS-3G - Wiki {en} * [https://www.tuxera.com/ja/community/ntfs-3g-faq]: FAQ {en} * [https://docs.kernel.org/filesystems/ntfs3.html]: Linux Kernel-Dokumentation NTFS3 {en} # tag: Installation, System, Windows, Partition, mount, fstab, Dateisystem