Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Es kann verschiedene Gründe geben, von Linux aus auf eine mit einem Windows-Dateisystem formatierte Partition zuzugreifen. Es kann sein, dass man in einem Dual-Boot-System eine interne Partition von Windows und von Linux aus gemeinsam nutzen möchte. Oder man möchte eine externe Partition (Festplatte, SD-Karte oder USB-Stick) abwechselnd in Windows und Linux benutzen. Externe Geräte wie Musikplayer oder Fernseher, Kameras oder Navigationsgeräte können oftmals nur mit Datenträgern umgehen, die mit einem Windows-Dateisystem formatiert sind usw.
Ubuntu kann die Windows-Dateisysteme VFAT (FAT12, FAT16, FAT32) und NTFS automatisch erkennen und auf diese lesend und schreibend zugreifen. Interne Partitionen mit Windows-Dateisystemen lassen sich wie Partitionen mit Original Linux Dateisystemen automatisch oder einfach mit einem Mausklick einbinden, und USB-Sticks oder externe Festplatten mit Windows-Dateisystemen werden nach dem Anschließen automatisch eingebunden und auf dem Desktop angezeigt.
Trotzdem gibt es wesentliche Unterschiede zwischen Windows- und Linux-Dateisystemen und dadurch bedingt einige Einschränkungen, die es zu beachten gilt.
Dieser Artikel betrifft nicht den Zugriff auf Windows-Partitionen über ein Netzwerk. Siehe dazu z.B. Samba oder Heimnetzwerk.
Linux-Dateisysteme verwenden die UNIX-Dateirechte und ggf. noch die POSIX ACL. Das Dateisystem VFAT kennt hingegen überhaupt keine Dateirechte, und NTFS verwendet die für Windows konzipierten, völlig anders strukturierten SID ggf. mit eigener, nicht POSIX-konformer ACL. Deshalb wird die Rechteverwaltung von Linux auf Windows-Partitionen nicht bzw. nicht direkt unterstützt.
Damit sich eingebundene Windows-Dateisysteme in Linux-Dateistrukturen einfügen, werden für diese dann Dateirechte simuliert. Dabei gelten folgende Standard-Einstellungen:
Interne Partitionen:
VFAT: Eigentümer und Gruppe sind "root/root"; Eigentümer und Gruppe haben vollen Zugriff, andere nur Lesezugriff (umask=0002
). Auch der eingeloggte Benutzer kann also ohne Administrator-Rechte auf dieser Partition nicht schreiben.
NTFS: Eigentümer und Gruppe sind "root/root"; Alle haben vollen Zugriff (umask=0000
).
Externe Partitionen (automatisch beim Booten oder per Hotplug eingebundene Datenträger):
Eigentümer ist der jeweils eingeloggte Benutzer. Nur dieser hat vollen Zugriff, Gruppe und Andere haben gar keinen (umask=0077
).
Wenn auf einer NTFS-Partition nicht eigens eine Linux-Rechteverwaltung mit User-Mapping eingerichtet ist, dann werden bei der Neuerstellung von Dateisystemobjekten unter Linux die Windows-Dateirechte immer auf "Vollzugriff" für "Jeder" gesetzt. Da dies auch innerhalb von durch Windows geschützten Ordnern, z.B. /Users/[Benutzer] passiert, ist dadurch der von Windows vorgesehene Schutz gewissermaßen unterwandert. Um dies zu verhindern wurden bereits vorläufige Patches bereitgestellt. Diese und die damit verbundenen Besonderheiten werden im NTFS-3G-Forum behandelt. Auch ein Ubuntu-Fehlerbericht liegt dazu bereits vor.
Manchmal möchte oder muss man diese Dateirechte verändern. Simulierte Dateirechte lassen sich nicht nachträglich im Dateimanager (z.B. Nautilus) oder mit den Befehlen chown, chgrp und chmod verändern. Man kann diese aber bereits beim Einbinden mit den Mount-Optionen uid
und gid
sowie umask
, fmask
und dmask
anders festlegen. Dies ist hier im Artikel mount genauer beschrieben.
Die simulierten Dateirechte beziehen sich immer auf die gesamte Partition. Sie werden dort nicht eingetragen und gelten deshalb nur für die jeweilige Sitzung bis zum Aushängen der Partition; beim erneuten Einhängen können sie unabhängig davon wieder neu und ganz anders festgelegt werden.
Seit der Version 2009.11.14 (in Ubuntu ab 10.04 Lucid Lynx) bietet der von Ubuntu für NTFS verwendete Dateisystem-Treiber NTFS-3G optional auch die Möglichkeit, Linux- bzw. UNIX-Dateirechte und -ACL auf die in NTFS verwendeten SID mit Windows-ACL abzubilden und so auf NTFS-Partitionen eine echte Verwaltung von Linux-Dateirechten einzurichten. Mit User-Mapping lässt sich sogar erreichen, dass in Dual-Boot-Systemen Windows und Linux (mit gewissen Einschränkungen) gegenseitig die Dateirechte anerkennen. Im Artikel NTFS-3G ist dies näher erklärt.
Aus Gründen der Kompatibilität mit VFAT und mit früheren Treiber-Versionen wird beim automatischen Einhängen von NTFS-Partitionen standardmäßig keine UNIX-Rechteverwaltung eingerichtet (Stand: April 2014).
Werden in Linux-Dateisystemen Ordner oder Dateien kopiert oder verschoben, dann bleiben dabei standardmäßig Besitzer und Gruppe unverändert. Als Folge davon bleibt auch der Zeitstempel (Datum und Uhrzeit) gleich. Beim Kopieren oder Verschieben auf Windows-Partitionen mit simulierten Dateirechten ändern sich jedoch in vielen Fällen Besitzer und Gruppe. Linux interpretiert dann die kopierte bzw. verschobene Datei als neu angelegt und trägt den momentanen Zeitpunkt als Zeitstempel ein. Dies kann vor allem bei der Dateisicherung (Backup) sehr lästig sein.
Weitgehend vermeiden lässt sich das Problem, indem man die Windows-Partitionen von vorne herein so einbindet, dass sich beim Kopieren Eigentümer und Gruppe möglichst nicht ändern.
Ein weiteres Problem besteht darin, dass zwar NTFS - wie auch die Linux-Dateisysteme - eine Unterstützung für Zeitzonen und Sommerzeit kennt, FAT hingegen nicht. Deshalb erscheinen Dateien auf FAT-Partitionen nach der Sommerzeit/Zeitzonen-Umstellung ggf. um eine/mehrere Stunde(n) verschoben. Bei Backup-Programmen (z.B. rsync oder FreeFileSync) kann dies erhebliche Probleme verursachen.
Linux-Kernel und NTFS-3G unterstützen standardmäßig den Zeichensatz UTF-8. Deshalb werden auch (westeuropäische) Sonderzeichen in Datei- und Ordnernamen richtig wiedergegeben. Ausnahmen sind allerdings Sonderzeichen in den Namen von Dateien, die von MS-DOS oder älteren Windows-Versionen angelegt wurden. Wenn man in solchen Fällen die Verwendung von Sonderzeichen nicht vermeiden kann, muss bei den Mount-Optionen evtl. noch die Codepage angegeben werden.
Abgesehen von den nationalen Sonderzeichen (Umlaute, Akzente usw.) gibt es sowohl in Windows als auch in Linux noch Zeichen, die in Dateinamen nicht zulässig sind.
Um die Verwendung Windows-kompatibler Zeichen zu erzwingen, kann unter NTFS-3G die mount Option windows_names
verwendet werden.
Linux unterscheidet auch auf Windows-Partitionen konsequent Groß- und Kleinschreibung. Erika.JPG und erika.jpg sind in Linux zwei voneinander unabhängige Dateinamen, die im selben Ordner nebeneinander verwendet werden dürfen. In Windows ist dies nicht zulässig. Auch wenn Groß- und Kleinbuchstaben angezeigt werden, gelten in Windows beide Namen dennoch als identisch.
Ein weiteres Problem kann die Interpretation von Ziffern in der Ordnungsstruktur sein. Während Windows auch Zahlen alphabetisch ordnet, ordnet sie Linux numerisch. Die selben Dateien auf dem selben Datenträger können deshalb in Windows und Linux verschieden angeordnet erscheinen.
Interne Windows-Partitionen werden standardmäßig so eingebunden, dass alle darauf befindlichen Dateien als "ausführbar" erscheinen, selbst wenn sie dies gar nicht sind (Mount-Option exec
). Es ist deshalb hier nicht nötig, Skripte oder Binärdateien eigens als "ausführbar" zu kennzeichnen.
Bereits in Windows installierte Programme können in der Regel unter Wine ohne Neuinstallation nicht gestartet werden. Dagegen lassen sich portable Windows-Programme oftmals direkt durch einen Doppelklick auf die exe-Datei mittels Wine starten.
Aus Sicherheitsgründen werden externe Windows-Partitionen jedoch standardmäßig als "nicht ausführbar" eingebunden (Option noexec
). Skripte, Binärdateien und exe-Dateien können auf diesen dann nicht direkt ausgeführt werden. Es ist jedoch jederzeit möglich, diese Option durch Aushängen und wieder Einhängen (nicht Aus- und Einstecken!) zu ändern (s.u.).
Werden externe Windows-Datenträger als "ausführbar" eingehängt (Option exec
), dann lässt es sich nicht sicher ausschließen, dass ggf. Schadprogramme über Wine aktiv werden.
Von VFAT-Dateisystemen aus sind weder harte noch symbolische Verknüpfungen (Symlinks) möglich. Von Linuxdateisystemen aus sind aber symbolische Verknüpfungen zu Zielen auf VFAT-Partitionen erlaubt.
Anders als bei VFAT sind auf NTFS-Partitionen sowohl harte als auch symbolische Verknüpfungen ohne Einschränkungen zulässig.
Dateien können systembedingt bei FAT16 (veraltet) nicht mehr als 2 GB und bei FAT32 nicht mehr als 4 GB umfassen.
Wenn die Voraussetzungen für die Verwendung von NTFS-3G nicht erfüllt sind, dann verwendet Ubuntu statt dessen das NTFS-Kernelmodul und hängt damit die Partitionen ohne Schreibzugriff (ro
) ein.
Windows darf sich nicht im Ruhezustand befinden und (ab Version 8) muss der Schnellstart in den Energieoptionen abschaltet sein. Ansonsten kommt beim Versuch zu mounten bestenfalls der Hinweis, das Windows nicht ordnungsgemäß heruntergefahren wurde usw., schlimmstenfalls können auch unbemerkt Daten korrumpiert werden (genaueres in der Achtung-Box hier).
Möchte man für die simulierten Dateirechte die Standard-Einstellungen verwenden, werden Windows-Partitionen in der gleichen Weise temporär [1] eingehängt wie andere Partitionen. Zur Kennzeichnung der einzuhängenden Partition kann wie immer deren UUID, aber auch deren Eintrag in /dev/ oder deren Label verwendet werden.
In folgender Befehlszeile wird - abweichend von den Standardeinstellungen - der Benutzer mit der UID 1000 ("Erstbenutzer") als Eigentümer festgelegt, und nur diesem werden Schreibrechte eingeräumt:
sudo mount -t ntfs -o uid=1000,umask=0022 /dev/sda5 /media/Musik
Die Angabe -t ntfs
ist optional, da Ubuntu das Dateisystem selbständig erkennt.
Soll die Partition statisch [2] eingehängt werden, lautet der entsprechende Eintrag in /etc/fstab:
/dev/sda5 /media/Musik ntfs uid=1000,umask=0022 0 0
Statt ntfs
und vfat
kann auch auto
angegeben werden; anders als oben beim Befehl mount
darf aber hier das Feld nicht einfach ausgelassen werden. Wichtig ist auch, dass im 6. (letzten) Feld immer die Ziffer 0 (Null) steht, weil eine automatische Überprüfung von Windows-Partitionen beim Bootvorgang nicht vorgesehen ist.
Auch externe Laufwerke können auf diese Weise mit geänderten Optionen eingehängt werden. Ist ein Eintrag in /etc/fstab vorhanden, dann werden externe Partitionen genau so behandelt wie interne. Sollen externe Partitionen ohne Eintrag in /etc/fstab temporär eingehängt werden, müssen sie ggf. vorher ausgehängt werden. Die Kennzeichnung über /dev/ ist für externe Partitionen weniger geeignet.
In diesem Beispiel wird ein FAT-formatierter USB-Stick in das Verzeichnis /media/usbstick eingehängt:
sudo mount -t vfat -o uid=simon,gid=plugdev,umask=0027 UUID=36FF-F3BA /media/usbstick
Die UUID des Sticks wurde mit dem Befehl sudo blkid
ermittelt. Für Eigentümer und Gruppe hätte man auch die Zahlenwerte uid=1000,gid=46
angeben können. Wegen umask=0027
hat der Eigentümer Simon vollen Zugriff, Mitglieder der Gruppe plugdev dürfen lesen und andere haben gar keinen Zugriff. Der entsprechende Eintrag in /etc/fstab wäre dann:
UUID=36FF-F3BA /media/usbstick vfat uid=simon,gid=plugdev,umask=0027 0 0
Auch hier darf auto
an der Stelle von vfat
stehen.
Weitere Beispiele findet man hier.
Für die Wartung von FAT-Partitionen bietet Linux einige Shell-Befehle an:
Befehl | Beschreibung |
mkdosfs | formatiert eine Partition mit einem FAT-Dateisystemen. |
dosfsck | überprüft und repariert nötigenfalls eine FAT-Partition |
dosfslabel | Zeigt das Label einer FAT-Partition an und erlaubt es, dieses zu verändern. |
Die Partition darf nicht eingehängt sein.
Für die Wartung von NTFS-Partitionen gibt es die Tool-Sammlung ntfsprogs. Seit der Version 2011.4.12 (Ubuntu 11.10) ist diese in NTFS-3G integriert und braucht nicht mehr eigens installiert zu werden.
Früher wurde dazu geraten, Partitionen, die von Windows und Linux gemeinsam benutzt werden ("Austauschpartitionen") vorzugsweise mit VFAT (FAT32) zu formatieren, da nur dieses Dateisystem von beiden Betriebssystemen gleichermaßen unterstützt wurde. Durch ständige Verbesserungen hat aber inzwischen der Dateisystem-Treiber NTFS-3G einen solchen Stand erreicht, dass vieles dafür spricht, auch hier das Dateisystem NTFS zu bevorzugen.
Auf FAT-Partitionen ist keine Zugriffskontrolle möglich. Auf NTFS-Partitionen lässt sich zwar auch in Linux eine Zugriffskontrolle einrichten, doch lässt sich diese jederzeit mühelos deaktivieren. Ohne User-Mapping erkennen Windows und Linux die im jeweils anderen Betriebssystem eingerichtete Zugriffskontrolle nicht an. Deshalb ist davon abzuraten, sensible Daten oder Systemdateien auf gemeinsam genutzten Partitionen unterzubringen.
Es kann ein Sicherheitsrisiko bedeuten, sensible Daten oder Systemdateien auf Partitionen unterzubringen, auf die Windows und Linux abwechselnd Zugriff haben.
FAT-Dateisysteme kennen kein Journaling. Sind bei Störungen (Stromausfall, Platzmangel, Ausstecken externer Datenträger usw.) noch offene Dateien vorhanden oder Schreibvorgänge nicht abgeschlossen, droht deshalb Datenverlust.
Das Journaling von NTFS wird auch in Linux unterstützt, sodass in solchen Fällen meist keine Daten verloren gehen.
Wird ein NTFS-Datensystem durch Fehler inkonsistent (etwa nach einem Systemabsturz), so kann es vorkommen, dass sich diese Partition in Linux nicht mehr einhängen lässt. Dieser Zustand lässt sich dann nur in einem Windows-Betriebssystem wieder korrigieren. Oftmals reicht es aus, einmal Windows mit dem fehlerhaften Datenträger zu starten und die externe Festplatte wieder auszuhängen bzw. den PC korrekt herunterzufahren.
Das Installationsprogramm Wubi installiert ein komplettes Ubuntu-System unter Windows auf einer Windows-Partition. Danach greift aber Ubuntu nicht direkt auf diese Partition zu, sondern es verwendet Abbilder von Linux-Partitionen ("Loop-Device"), die sich als Dateien auf dieser Windows-Partition befinden. Da es sich bei Wubi also nicht um das Einbinden einer Windows-Partition in eine Linux-Dateistruktur handelt, sondern vielmehr um eine Linux-Dateistruktur, die über ein Loop-Device eingebunden wird, wird diese rechtemäßig wie jedes andere Linuxsystem behandelt. Für diese Linux-Dateistruktur sind also die Einschränkungen und Bedenken, die sich auf eingehängte Windows-Partitionen beziehen, gegenstandslos.
Allerdings kann man von Wubi-Ubuntu aus auch direkt auf die mit dem Bezugspunkt /host eingebundene NTFS-Referenzpartition zugreifen. Für diese gelten automatisch die Standard-Optionen von NTFS-3G. Man sollte lieber nicht versuchen, hieran etwas zu ändern, um die Funktionsfähigkeit des Linux-Systems nicht zu gefährden.
Über Samba können sowohl ganze Windows-Partitionen als auch auf diesen befindliche Ordner im Netzwerk freigegeben werden. Dabei sind folgende Einschränkungen zu beachten:
Persönliche Freigaben mit net usershare (Nautilus -> Rechtsklick) sind in der Grundeinstellung nur für Dateien zulässig, die (echt oder simuliert) Eigentum des jeweils eingeloggten Benutzers sind. Bei internen Windows-Partitionen ist dies standardmäßig nicht der Fall.
Öffentliche Freigaben (Gast-Zugriff). Auf standardmäßig eingebundenen FAT-Partitionen kann Gästen nur Lesezugriff gewährt werden.
Aus diesen Gründen kann es nötig sein, die Rechte für die betreffenden Windows-Partitionen bereits beim Einhängen anders festzulegen.
Das in reinen Linux-Netzwerken am häufigsten verwendete Netzwerk-Protokoll ist NFS. Dieses eignet sich jedoch nur eingeschränkt, um Ordner oder Dateien von Windows-Dateisystemen freizugeben.
Mit VFAT ist NFS nicht sicher aufgrund des Fehlens permanenter Inode-Nummern (siehe hier ).
Mit NTFS ist der Export mittels NFS erst ab Ubuntu Jaunty 9.04 möglich.
Partitionierung: Erstellen und Verändern von Partitionen
NTFS-3G: Der standardmäßig für NTFS-Partitionen verwendete Dateisystem-Treiber.
MS-Windows Integration: Hinweise zum Parallel-Betrieb von Linux und Windows auf einem Rechner oder in einem Netzwerk.
Externe Laufwerke statisch einbinden und Einbindung per UUID
Linux-Partitionen unter Windows: Auch der umgekehrte Weg ist möglich.
vfat-tipps: Pro-Linux: Tipps zum vfat-Dateisystem unter Linux mit praktischen Anwendungsbeispielen vom 17.01.2005
NTFS-3G in Wikipedia
Diese Revision wurde am 2. August 2016 16:22 von UlfZibis erstellt.