Egal ob Windows XP oder Windows Vista: Der lesende und schreibende Zugriff auf NTFS-Partitionen gelingt mit Hilfe mehrerer Tools inzwischen reibungslos.
Mit NTFS formatierte Festplatten waren lange der Albtraum jedes Linux-Anwenders: Mit etwas Glück ließ sich der Inhalt der Platte zwar lesen, jeder Versuch eines Schreibzugriffs aber brachte die Gefahr von Datenverlusten mit sich. Daher musste zum Austausch von Dateien zwischen Windows und Linux meist das FAT32-Dateiformat herhalten, das lediglich 32 GByte große Partitionen erlaubt und Weder Verschlüsselung noch Kompression oder Quotas unterstützt.
Das hat sich mittlerweile jedoch geändert: Sogar auf die neueste NTFS-Variante unter Windows Vista greifen Sie mit Linux inzwischen problemlos lesend und schreibend zu. Dieser Artikel stellt die bekanntesten freien Lösungen vor und testet die zwei wichtigsten davon im Praxiseinsatz mit Open Suse und Ubuntu.
Kernelmodul
Das NTFS-Kernelmodul [1] greift hauptsächlich lesend auf die Laufwerke zu. Seit Kernel 2.6.16 vergrößert und verkleinert es Dateien auch. Einen Schreibzugriff, der es erlaubt, neue Dateien anzulegen, erwarten die Entwickler im Kernel frühestens ab Sommer 2007. So lange müssen Sie jedoch nicht warten, um Dateien auf einer NTFS-Partition abzulegen.
Ntfsmount
Während das Kernelmodul im so genannten Kernel Space agiert, setzt Ntfsmount [2]Fuse ein, das im User Space operiert. Es gehört zu den Ntfsprogs, einer Sammlung von Tools, um NTFS-Partitionen zu manipulieren: So ändern Sie über Ntfsresize die Größe einer NTFS-Partition oder legen über Mkntfs eine neue an. Ntfsmount dient zum Einhängen eines NTFS-Laufwerks und erlaubt daneben das Vergrößern und Verkleinern von Dateien und Erstellen von Hardlinks, Dateien und Verzeichnissen. Das klappt zwar nicht immer reibungslos, Fehler erkennt das System jedoch rechtzeitig und bricht den Vorgang ab, bevor Schaden am fremden Dateisystem entsteht.
Ntfs-3g
Ein Fork von Ntfsmount heißt Ntfs-3g [3] und existiert seit Februar 2007 in einer stabilen Version 1.0. Da die Anwender längere Zeit keine nennenswerten Probleme im Umgang mit dem Tool meldeten, erklärten es die Entwickler zur stabilen Version. Auch Ntfs-3g nutzt Fuse zum Speichern und Verwalten der Dateien, die Syntax ähnelt der von Ntfsmount fast aufs Haar. Sie legen neue Dateien an, vergrößern, verkleinern und löschen vorhandene Dateien – vor verschlüsselten und komprimierten Dateien kapituliert Ntfs-3g allerdings noch.
Captive
Auch Captive [4] schreibt verhältnismäßig zuverlässig Dateien auf NTFS-Partitionen. Das Tool nutzt dazu die Originaltreiber von Windows. Der Haken: Das Schreiben der Dateien erfolgt extrem langsam, und Entwickler Jan Kratochvil betreut Captive laut Aussage auf der Mailingliste nicht mehr aktiv.
Ubuntu und Ntfs-3g
Zwar bringt Ubuntu das NTFS-Kernelmodul mit, allerdings ohne Schreib-Support für NTFS. Dafür preist das Ubuntu-Wiki zum Schreiben Ntfs-3g an. Tatsächlich bietet “Edgy” über das Tool eine komfortable Möglichkeit, NTFS-Partitionen zu beschreiben.
Sie installieren die Pakete ntfs-3g, libntfs-3g0 und libfuse2. Um den Mountpunkt /mnt/windows zu nutzen, erstellen Sie vorher via sudo mkdir /mnt/windows ein entsprechendes Verzeichnis. Dann mounten Sie die NTFS-Partition über den Befehl
sudo mount -t ntfs-3g /dev/hda1 /mnt/windows -o locale=de_DE.utf8,uid=1000,umask=0027
Hier ersetzen Sie gegebenenfalls /dev/hda1 durch die Gerätedatei für Ihre Windows-Partition. Die Option -t ntfs-3g verrät Ubuntu, welches Modul sich um das Dateisystem kümmert. Alle weiteren Optionen hängen Sie über -o an den Befehl an.
Die Option locale sorgt dafür, dass Linux Umlaute auch auf NTFS-Partitionen erkennt: Sowohl Open Suse als auch Ubuntu setzen auf UTF8. Der Wert hinter uid ordnet die eingehängte Partition dem aktuellen Nutzer zu, dessen UID Ihnen der Befehl id verrät (Abbildung 1). Über den Parameter gid weisen Sie das Verzeichnis auf Wunsch auch einer bestimmten Gruppe zu.

id zeigt Ihnen, zu welchen Gruppen der aktuelle Benutzer gehört und wie seine UID lautet.” width=”290″ height=”228″ /> Abbildung 1: Der Befehl id zeigt Ihnen, zu welchen Gruppen der aktuelle Benutzer gehört und wie seine UID lautet.
Lese- und Schreibrechte für den Ordner legen Sie über umask fest, 0027 bedeutet, dass der Benutzer selbst Dateien und Ordner lesen, schreiben und ausführen darf. Benutzer, die zur selben Gruppe gehören, können im Verzeichnis lesen und Programme ausführen, aber nicht schreiben. Außenstehende haben keinen Zugang zum Dateisystem (Abbildung 2). Geben Sie als Wert 0000 ein, dürfen alle Nutzer alles. Mehr zur Dateirechten und zu Umask lesen Sie in einem Artikel in der letzten Ausgabe des LinuxUser [5].
Die oben gezeigte Einstellung mountet also die NTFS-Partition für den Benutzer mit der UID 1000 zum Lesen, Schreiben und Ausführen; über sudo umount /mnt/windows hängen Sie das Dateisystem wieder aus.

Abbildung 2: Die Rechtevergabe für die Windows-Partition: Der Benutzer mit der UID “1000” darf lesen, schreiben und ausführen, Gruppen dürfen nur lesen und ausführen, der Rest darf gar nichts.
Um die NTFS-Partition beim Start automatisch einzubinden, schreiben Sie mit Root-Rechten folgende Zeile in die Datei /etc/fstab (Abbildung 3):
/dev/hda1 /mnt/windows ntfs-3g locale=de_DE.utf8,uid=1000,umask=0027 0 0
/etc/fstab sorgt dafür, dass Linux die Windows-Partition automatisch einhängt.” width=”300″ height=”26″ />
Abbildung 3: Der Eintrag in der Datei/etc/fstab sorgt dafür, dass Linux die Windows-Partition automatisch einhängt.Ubuntu und Ntfsmount
Alternativ bleibt Ihnen die Möglichkeit, Ntfsmount einzusetzen. Installieren Sie dazu die Pakete ntfsprogs und ntfstools, jeweils in der Version 1.12, sowie libfuse2 über einen Paketmanager. Der Befehl:
sudo ntsfmount /dev/hda1 /mnt/windows -o locale=de_DE.utf8,uid=1000,umask=0027
richtet die Partition (wie bei Ntfs-3g) für den Benutzer mit der UID 1000 zum Lesen und Schreiben ein. Wollen Sie die NTFS-Partition bei jedem Hochfahren des Systems fest einbinden, ergänzen Sie die Datei /etc/fstab um folgende Zeile:
/dev/hda1 /mnt/windows ntfs-fuse umask=0027,uid=1000,locale=de_DE.utf8 0 0
Vorher müssen Sie allerdings einen Bug umgehen. Dazu verlinken Sie mittels des Befehls
sudo rm /sbin/mount.ntfs-fuse && sudo ln -s /usr/bin/ntfsmount /sbin/mount.ntfs-fuse
die Datei mount.ntfs-fuse neu: ntfsmount sucht sie fälschlicherweise im Verzeichnis /sbin, statt unter /usr/bin, wo sie tatsächlich lagert.
Zugriff mit Open Suse 10.2
Auch Open Suse 10.2 bringt das NTFS-Kernelmodul mit. Im Unterschied zu Ubuntu können Sie damit zwar auf die NTFS-Partition schreiben – aber keine neuen Dateien erzeugen, sondern höchstens vorhandene vergrößern und verkleinern.
Open Suse und Ntfsprogs
Daneben bringt Open Suse 10.2 auch Ntfsmount zum Zugriff auf NTFS-Laufwerke mit. Installieren Sie über YaST das Paket ntfsprogs-fuse, wobei YaST Fuse in der Version 2.6.0 gleich mit installiert. Legen Sie nun als root via mkdir /mnt/windows ein Verzeichnis an, in das Sie Windows später einhängen. Dann laden Sie über modprobe fuse das Kernelmodul und schreiben:
ntfsmount /dev/hda1 /mnt/windows -o umask=0027,uid=1000,locale=de_DE.utf8
Auch Ntfsmount binden Sie fest in die Datei /etc/fstab ein, indem Sie dort folgende Zeile ergänzen:
/dev/hda1 /mnt/windows ntfs-fuse umask=0027,uid=1000,locale=de_DE.utf8 0 0
Anschließend tragen Sie als root in die Datei /etc/rc.d/boot.localfs den Befehl modprobe fuse ein, damit Open Suse das Kernelmodul lädt, bevor es versucht, die NTFS-Partition zu mounten.
Open Suse und Ntfs-3g
Bleibt noch Ntfs-3g, für das der Nutzer jengelh[6] fertige Pakete anbietet. Binden Sie das Repository über YaST | Software | Installationsquelle wechseln ein (Abbildung 4) und installieren Sie die Pakete fuse und ntfs-3g. Anschließend geben Sie mit Root-Rechten folgendes Kommando ein:
mount -t ntfs-3g /dev/hda1 /mnt/windows -o uid=1000,umask=0027,locale=de_DE.utf8

Abbildung 4: Unter Open Suse 10.2 installieren Sie Ntfs-3g einfach über ein externes Repository. Das binden Sie über YaST ein.
Um auch hier die NTFS-Platte beim schon beim Systemstart einzuhängen, tragen Sie in die Datei /etc/fstab die gleiche Zeile ein, die auch für Ubuntu und Ntfs-3g gilt.
Ntfsmount oder Ntfs-3g?
Bei zwei konkurrierenden Systemen stellt sich die Frage: Welches soll man benutzen – Ntfsprogs oder Ntfs-3g? In einem kleinen Test brauchten beide Tools etwa 105 Sekunden, um eine 2,5 GByte große Dateien von Ubuntu Edgy Eft (Ext3) nach Windows Vista (NTFS) zu kopieren. Es gibt also keinen spürbaren Unterschied. Das zügige Kopieren zeigt aber, dass die Tools inzwischen für den Alltagseinsatz taugen.
Glossar
-
NTFS
-
New Technology File System. Das von Microsoft entwickelte Dateisystem beerbte FAT16 und FAT32. Es kann unter anderem Dateien komprimieren, verschlüsseln und Nutzern Festplattenkontingente zuweisen. Auch Windows Vista setzt auf NTFS, die neuen Funktionen finden Sie aber dank regelmäßiger Updates bereits in Windows XP.
-
Fuse
-
steht für Filesystem in Userspace. Das Kernelmodul ermöglicht es, Dateisystemtreiber in den User Space zu übertragen.
[1] Ntfsprogs: http://wiki.linux-ntfs.org/doku.php?id=ntfsprogs
[2] NTFS-Kernelmudol: http://wiki.linux-ntfs.org/doku.php?id=driver
[3] Ntfs-3g: http://www.ntfs-3g.org
[4] Captive: http://www.jankratochvil.net/project/captive
[5] Rechtevergabe: Heike Jurzik, “Zutritt erlaubt!”, LinuxUser 03/2007, S. 91, http://www.linux-user.de/ausgabe/2007/03/091-zubefehl/index.html
[6] Suse-Pakete von jengelh: http://ftp.gwdg.de/pub/linux/misc/suser-jengelh/SUSE-10.2





