ubuntuusers.de

NTFS3

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.

Dieser Artikel ergänzt den generellen Übersichtsartikel[5] Zur Verwendung von Windows-Partitionen unter Linux und enthält Besonderheiten und Hinweise bzgl. der Nutzung eines Dateisystems des Typs NTFS mit dem eigenen Treiber ntfs3 des Linux Kernels.

Installation

Der Modul ntfs3 ist in jedem Ubuntu-Kernel ab Version 5.15 enthalten und benötigt daher keine Installation. Man sollte den Modul aber erst ab Linux Kernel Version 6.4 und ab Ubuntu 22.04 einsetzen, da erst ab diesem Zeitpunkt wesentliche Fehlerbereinigungen und wichtige funktionale Ergänzungen in den Kernel eingebracht wurden.

Um unerwünschte Wechselwirkungen mit dem bei Ubuntu standardmäßig installiertem Paket ntfs-3g zu vermeiden, sollte man sein System konkret auf den Treiber ntfs3 festlegen. Dazu

  • entweder das Paket deinstallieren[1] – damit verliert man allerdings auch die Fähigkeiten zur Überprüfung und Pflege eines Dateisystems des Typs NTFS –

  • oder dem Programm /bin/ntfs-3g die Ausführungsrechte entziehen[2][3][4]:

    sudo chmod -x /bin/ntfs-3g 

Besonderheiten und Einschränkungen

Zugriffsrechte unter Linux

Im Gegensatz zu den Dateisystemen VFAT (FAT32) und exFAT bietet NTFS auch die Möglichkeit, Besitz- und Zugriffsrechte für Ordner und Dateien (kurz: Dateirechte) zu verwalten. Windows macht hiervon standardmäßig Gebrauch. Für andere Betriebssysteme (z.B. Linux) bieten sich hierfür zwei grundsätzlich verschiedene Möglichkeiten:

  1. Man bildet die bei Linux anders strukturierten Dateirechte auf die Rechtestruktur von Windows ab ("User-Mapping"), sodass die fremden Dateien in die Windows-Dateistruktur eingefügt und ihre Rechte gemeinsam mit diesen verwaltet werden.

  2. Man fügt die Linux-Dateirechte als zusätzliche, von den Windows-Dateirechten völlig getrennte "Erweiterte Dateiattribute" (Extended Attributes, EA) den jeweiligen Dateien bei und erkennt bzw. verwaltet nur diese.

Während der vor Ubuntu 20.04 standardmäßig verwendete Treiber NTFS-3G optional nach dem ersten Schema vorgeht, wählt NTFS3 immer den zweiten Weg. Die Verwaltungen der Dateirechte in Windows und Linux sind damit völlig voneinander getrennt und nehmen einander nicht zur Kenntnis.

Weil der Treiber NTFS-3G optional auch die Windows-Rechteverwaltung für Linux-Dateien verwendet, erkennen die beiden Treiber NTFS-3G und NTFS3 ihre Rechteverwaltungen gegenseitig nicht an. Mit NTFS-3G erstellte Dateien gelten unter NTFS3 wie Windows-Dateien zunächst als fremde Dateien ohne definierte Dateirechte.

Simulation von Dateirechten

Wie auch die Dateisystem-Treiber für FAT32, exFAT und der Treiber NTFS-3g ohne besondere Mount-Optionen kann auch NTFS3 für Dateien, die (noch) keine für diesen Treiber erkennbare Besitz- und Zugriffsrechte haben, Dateirechte simulieren. Dies sind alle Dateien, die in einem anderen Betriebssystem (Windows) oder mit einem anderen Treiber (NTFS-3G) erstellt und noch nicht unter NTFS3 verändert wurden. Solche simulierten Dateirechte sind dann transient, d.h. sie werden nicht dauerhaft im Dateisystem eingetragen und verschwinden somit beim Aushängen wieder.

Doch NTFS3 kennt neben diesen transienten simulierten Dateirechten standardmäßig – d.h ohne besondere Mount-Optionen – auch echte, "persistent" auf der Partition eingetragene Dateirechte. Dies sind die Rechte der Dateien, die unter NTFS3 erstellt oder verändert wurden. Echte, persistente Dateirechte haben unter NTFS3 stets Vorrang gegenüber simulierten, transienten Dateirechten. Alle Voreinstellungen und Mount-Optionen, die die Simulation von Dateirechten betreffen, sind deshalb für Dateien mit bereits vorhandenen persistenten Dateirechten ohne Bedeutung.

Standard-Einstellungen

Wenn nicht durch Mount-Optionen anders festgelegt, wird immer der einhängende Benutzer ($USER) Eigentümer des Dateisystems, und nur dieser hat Schreibrechte, während Gruppe und Andere nur lesen und ausführen dürfen (Modus 0755) Wird das Dateisystem schon vor dem Einloggen eines Benutzers z.B. über einen Eintrag in /etc/fstab eingehängt, wird root Eigentümer. Beim Einhängen nach Zustecken eines Datenträgers im laufenden Betrieb, mit den Hilfsmitteln der GUI (Dateimanager u.a.), mittels gio mount -d oder auch udisksctl mount -b werden jedoch ggf. in /etc/udisks2/mount_options.conf für NTFS3 eingetragene abweichende Optionen berücksichtigt.

Optionen uid, gid und umask

Mit den Optionen uid=UID und gid=GID werden Benutzer und Gruppe 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 primäre Gruppe des angegebenen Benutzers gewählt. Fehlt hingegen der Eintrag für uid, so erscheint root als Eigentümer.

Auch die Zugriffsrechte auf Ordner und Dateien lassen sich bereits beim Einbinden einschränken. Möchte man für Ordner und Dateien die gleichen Einschränkungen vornehmen, geschieht dies mit der Option umask. Getrennte Einschränkungen sind mit den Optionen 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 den Modus 0750.

Bei mount und bei Einträgen in fstab müssen alle gewünschten Optionen für jeden Einhänge-Vorgang einzeln angegeben werden. Für das Einhängen mittels Hotplug, GUI, gio mount -d und udisksctl mount -b sind in UDisks für den Treiber NTFS3 folgende Mount-Optionen vorgegeben:

ntfs:ntfs3_defaults=uid=$UID,gid=$GID 

bzw. bis Ubuntu 22.04:

ntfs_defaults=uid=$UID,gid=$GID 

Diese Optionen können mit Root-Rechten in der nötigenfalls neu angelegten Datei /etc/udisks2/mount_options.conf überschrieben oder auch erweitert werden.

Hinweis:

die Optionen uid, gid, umask, fmask und dmask wirken sich nur auf fremde Ordner und Dateien aus, die keine persistenten Dateirechte haben.

Echte (persistente) Dateirechte

Ohne besondere Voreinstellungen oder Mount-Optionen kann NTFS3 auch standardmäßig echte ("persistente") Dateirechte verwalten. Während man sich beim Dateisystem-Treiber NTFS-3G für die jeweilige Sitzung festlegen muss, ob man mit simulierten, transienten Dateirechten oder mit echten, persistenten Dateirechten arbeiten möchte, können bei NTFS3 während einer Sitzung beide Arten von Dateirechten nebeneinander existieren. NTFS3 geht mit beiden gleich um, und man merkt oft erst nach dem Aushängen und Wiedereinhängen der Partition, um welche Art von Dateirechten es sich bei einem Ordner oder einer Datei handelt.

Neu erstellte Ordner und Dateien

Erstellt man auf dem mit NTFS3 eingebundenen Dateisystem neue Ordner und Dateien bzw. kopiert oder verschiebt man solche von einer anderen Stelle, so unterscheidet sich der Vorgang in nicht von dem mit einem Linux-Dateisystem (z.B. ext3/4) gewohnten Verhalten: In der Regel sind die Dateien dann Eigentum des eingeloggten Benutzers, und die Zugriffsrechte werden durch den für ihn gültigen Wert von umask festgelegt. Doch die so eingerichteten Dateirechte werden gleich ins Dateisystem eingetragen und sind damit persistent, d.h sie bleiben gleich, wenn das Dateisystem aus- und vielleicht unter einem anderen Benutzer wieder eingehängt wird.

Änderungen bei vorhandenen Dateien

Beim den Dateisystemen VFAT (FAT32), exFAT und beim Treiber NTFS-3G lassen sich die simulierten Dateirechte weder mit den Befehlen chown, chgrp und chmod noch mit dem Dateimanager verändern, sie werden beim Einhängen für die ganze Sitzung festgelegt. Bei NTFS3 ist dies anders. Die zunächst simulierten Dateirechte lassen sich in genau der gleichen Weise verändern wie die echten. Man merkt dabei keinerlei Unterschied. Doch es gibt einen wichtigen: Nach jeder Veränderung werden die Dateirechte persistent ins Dateisystem eingetragen. Durch jede Veränderung werden aus simulierten, transienten Dateirechten echte, persistente Dateirechte! Nach reinen Veränderungen des Dateiinhalts (z.B. Schreiben in eine Textdatei) werden die Dateirechte jedoch nicht persistent.

Hinweis:

Durch die Befehle chown, chgrp und chmod bzw. durch entsprechende Veränderungen mittels Dateimanager werden zuvor transient simulierte Dateirechte fremder Dateien persistent in die Dateiverwaltung übernommen („Adoption von Dateien“).

Option acl

In Ubuntu können alle Kernel optional auch POSIX-(Draft-)ACL verwalten. Ist die Mount-Option acl gesetzt, so wird diese Möglichkeit vom Treiber NTFS3 in gleicher Weise unterstützt wie von einem der echten Linux-Dateisysteme, z.B. ext3/4. Die POSIX-ACL werden dabei nicht auf die andersartigen Windows-ACL zugeordnet, sondern sie haben mit diesen überhaupt nichts zu tun. Deshalb gibt es auch keinerlei Einschränkungen, wie man sie z.B. vom User-Mapping beim Treiber NTFS-3G kennt.

Zugriffsrechte unter Windows

Für Ordner und Dateien, die unter NTFS3 erstellt wurden, gilt in Windows standardmäßig: Besitzer ist die Gruppe Administratoren, und jeder hat Vollzugriff.

Im Gegensatz zum FUSE-Treiber NTFS-3G kann man jedoch in Windows allen Ordnern und Dateien, auch den unter NTFS3 erstellten, uneingeschränkt Datei und Zugriffsrechte erteilen, ohne damit die Rechteverwaltung von NTFS3 zu beeinträchtigen. So ist es z.B. möglich, in Dual-Boot Systemen Dateien und Ordner in Linux und Windows einander entsprechende, aber auch völlig verschiedene Rechte zu erteilen.

Auch wenn die Dateirechte in Linux und Windows einander entsprechend gewählt sind, entsteht dadurch keine Verbindung zwischen beiden Rechte-Systemen. Änderungen müssen dann ggf. in beiden Systemen getrennt von Hand vorgenommen werden.

Sonstiges

Zu den Themen

lese die entsprechenden Abschnitte in der Übersicht[5].

NTFS-Partition einhängen

Achtung!

Windows darf sich nicht im Ruhezustand befinden, und der Schnellstart muss (ab Version 8) in den Energieoptionen abgeschaltet sein. Sonst können beim Versuch zu mounten Daten korrumpiert werden, genaueres siehe hier.

Die grundsätzlichen Möglichkeiten der Einbindung eines Dateisystems NTFS mit dem Kernel Modul ntfs3 beschreibt Windows-Partitionen unter Linux (Abschnitt „Praxis-der-Einbindung“).

Über die dort beschriebenen Beispiele hinaus gehend können alle vom konkreten Dateisystem unabhängigen allgemein für das VFS gültigen Mount-Optionen (siehe dazu Artikel fstab) und zusätzlich die in folgender Tabelle genannten speziellen Mount-Optionen für den Modul ntfs3 benutzt werden.

⚓︎

Mount-Optionen für ntfs3
Option Vorgabe Beschreibung Kernel
iocharset=name iocharset=utf8 Angabe, wie Dateinamen zwischen Windows und Linux in beiden Richtungen übersetzt werden sollen. Windows verwendet immer Unicode in der Codierung UTF-16, Ubuntu standardmäßig Unicode in der Codierung UTF-8 (CONFIG_NLS_DEFAULT).
uid= siehe → Vorgabe ist $USER, d.h. der jeweils eingeloggte Benutzer. Es spielt dabei keine Rolle, wie bzw. von wem das Einbinden ausgeführt wird. Gilt nur für fremde Dateien ohne echten (persistenten) Benutzer. Nur dann, wenn das Einbinden schon vor dem Einloggen eines Benutzers geschieht, wird die Partition Besitz von root:root.
gid= siehe → Siehe vorstehende Erklärung für uid, aber bzgl. der Gruppe.
umask= siehe → Angaben, welche Dateiberechtigungen im eingebundenen Dateisystem entzogen werden sollen. Option umask setzt dmask und fmask. Option dmask wirkt nur auf Ordner, fmask auf reguläre Dateien. Vorgabe ist umask=0022, (entspricht Modus 0755) d.h. nur $USER hat Schreibrecht, alle dürfen lesen und ausführen. Gilt nur für fremde Dateien ohne persistente Zugriffsrechte.
dmask=
fmask=
acsrules acsrules Option noacsrules (“No access rules”) aktiviert temporäre Dateiberechtigungen 777 und setzt Besitzer und Gruppe auf root. Änderungen dieser Werte unter Linux werden nicht dauerhaft im Dateisystem gespeichert, sondern gelten während der aktuellen Einbindung. Diese Mount-Option hat Vorrang vor anderen Festlegungen von Dateiberechtigungen.
Dieser Modus hat nie fehlerfrei funktioniert und wurde daher entfernt.
vor 6.4
sys_immutable nosys_immutable System-Dateien von Windows (spezielles Windows-Attribut FILE_ATTRIBUTE_SYSTEM) erhalten unter Linux das erweiterte Attribut immutable.
hidden hidden Unter Windows versteckte Dateien (spezielles Windows-Attribut FILE_ATTRIBUTE_HIDDEN) werden auch unter Linux versteckt. Mit nohidden abschaltbar.
hide_dot_files nohide_dot_files Dateien, deren Name mit einem Punkt beginnen und deshalb unter Linux versteckt werden, erhalten bei Erzeugung oder Verschiebung/Umbenennung das spezielle Windows-Attribut FILE_ATTRIBUTE_HIDDEN), bei Dateien, deren Name nicht mit einem Punkt beginnen, wird bei diesen Operationen dagegen das Attribut gelöscht. ab 6.2
windows_names nowindows_names Verhindert Anlegen und Umbenennung von Dateien mit bzw. auf unter Windows unzulässigen Dateinamen. Unzulässig sind Dateinamen, wenn sie ein Zeichen ” * / : < > ? \ | und ASCII 0 - 0x20 enthalten, oder einem reservierten Namen (CON, AUX, NUL, PRN, LPT1-9, COM1-9) entsprechen, oder der Name endet auf ein Leerzeichen oder einen Punkt. Existierende solche Namen können normal benutzt werden. ab 6.2
discard nodiscard Aktiviert die Verwendung des Kommandos TRIM für Hardware, die es unterstützt. Verbessert die Performanz bei Löschungen. Option wird empfohlen für SSDs.
force noforce Erzwingt die Einbindung bei einem als dirty markiertem Dateisystem. Benutzung widerraten.
sparse nosparse Neue Dateien werden als "sparse file" angelegt.
showmeta noshowmeta Per Vorgabe versteckte System-Dateien von Windows ("meta files") werden angezeigt.
prealloc noprealloc Bei Schreiboperationen wird über den tatsächlichen Bedarf hinaus Speicherplatz bis zum Schließen der Datei reserviert. Diese Maßnahme reduziert eine Fragmentierung des Speichermediums.
acl noacl Aktiviert die Unterstützung auf Ebene des Dateisystems für POSIX ACLs (Access Control Lists), sofern der Kernel es unterstützt, was bei Ubuntu zutrifft. POSIX ACLs sind nicht identisch mit NTFS ACLs.

Zu den von der Kernel Version abhängigen Optionen siehe:

Die Anwendung der Optionen zu Steuerung der Zugriffsrechte (uid, gid, umask, fmask, dmask und acl) wurde oben beschrieben.

Die Optionen sys_immutable, hidden, hide_dot_files, showmeta modifizieren die Behandlung der bei Windows verfügbaren Dateiattribute HIDDEN und SYSTEM; diese sind wie auch die Attribute ARCHIVE und READONLY sonst unter Linux nicht zugänglich.

Die Option windows_names verdient besondere Beachtung. Sie sorgt dafür, dass Dateinamen unter Linux wie unter Windows üblich behandelt werden, insbesondere bzgl. Groß-/Kleinbuchstaben. Die von verschiedenen Programmen hierfür verwendeten Vorgaben unterscheiden sich jedoch, somit ist sinnvoll, jeweils selbst das gewünschte Verhalten vorzugeben.

⚓︎

Überprüfung und Pflege

Für die Erstellung (Formatierung), Überprüfung und Pflege eines Dateisystems des Typs NTFS benötigt man die Tool-Sammlung ntfsprogs. Seit der Version 2011.4.12 (Ubuntu 11.10) ist diese bei Ubuntu in das Paket ntfs-3g integriert. Dieses Paket darf daher beim Einsatz von ntfs3 nur dann aus dem System deinstalliert werden, wenn man in diesem System auf Erstellung, Überprüfung und Pflege eines Dateisystems des Typs NTFS verzichten kann. Siehe Windows-Partitionen unter Linux (Abschnitt „Formatierung-berpruefung-und-Pflege“).

Zum Gebrauch der Werkzeuge siehe Artikel Windows-Partitionen einbinden/NTFS-3G.

Ein (etwa nach einem Systemabsturz) inkonsistentes Dateisystem lässt sich in Linux zuweilen nicht mehr einhängen.

  • Dieser Zustand lässt sich bei NTFS dann vielfach unter Linux mittels ntfsfix -d korrigieren; die Partition darf nicht eingehängt sein.

  • Empfohlen wird jedoch in einem Windows-Betriebssystem die Ausführung von chkdsk /f.

  • Oftmals reicht es auch schon aus, einmal Windows mit dem fehlerhaften Datenträger zu starten und wieder auszuhängen bzw. den PC korrekt herunterzufahren.

Journaling

Das Journaling von NTFS wird auch in Linux unterstützt.

Diese Revision wurde am 6. Juli 2024 17:59 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Dateisystem, Partition, Windows, System