Externe NTFS Festplatte (Partition) beschreibbar mit ntfs-3g mounten
Lange Zeit war das proprietäre NTFS-Dateisystem von Windows für Linux nicht stabil beschreibbar. Das Modul ntfs war zwar in der Lage von NTFS-Partitionen zu lesen, jedoch waren zuverlässige Schreibzugriffe auf NTFS-Partionen nur mit kostenpflichtigen closed-source Treibern von Drittanbietern möglich, die wiederum selbst Lizenzgebühren an M$ abdrücken mussten. Mit der Einführung von FUSE waren völlig neue Konzepte von Treibern unter Linux möglich. Anfang 2007 wurde die erste stabile Version des ntfs-3g Treibers veröffentlicht. ntfs-3g liest und schreibt zuverlässig auf NTFS-Partitionen bei relativ guter Performance.
Seit openSuSE 10.3 mountet YaST die NTFS-Partitionen auf internen Festplatten (HDDs) mit ntfs-3g und ermöglicht somit den Schreibzugriff. Gerade bei der Windows-Systempartition setze ich in der fstab gerne den “ro”-flag. Besonder auf System von weniger versierten Anwendern. Eine von Linux aus gelöschte Systemdatei auf der Windows-Partition kann für einen langen Abend sorgen.
Externe NTFS-Festplatten mit Schreibzugriff mounten
Standardmäßig mountet openSuSE (10.3) externe NTFS-Partitionen mit dem Modul ntfs, welches, wie bereits erwähnt, keine Schreibvorgänge erlaubt. Einblick ein die mount-Tabelle verrät uns dies. Die Tabelle kann einfach mit
mount
aufgerufen werden. Dabei interessiert und die Zeile für die angestöpselte externe Platte und deren Partitionen:
/dev/sdc1 on /media/TREKSTOR40 type ntfs (....
Diese Zeile sagt ganz einfach, dass die 1. Partition auf der Festplatte sdc in der Verzeichnis /media/TREKSTOR40 unter Verwendung des Moduls ntfs gemountet wurde. In diesem Fall gibt es auf der externen Festplatte nur eine Partition und heißt “TREKSTOR40″. Bei Euch sieht das natürlich anders auch.
So können wir natürlich nicht auf die Partition schreiben. Es gibt im Netz diverse Vorschläge, wie man Linux dazu bringt auch externe Platten mit ntfs-3g zu mounten. Da gibt es Tools, usw. Ich werde hier eine relativ simple Lösung per Regelwerk aufzeigen.
Der elegante Weg
Spätestens seit den USB-Zicken von SuSE 10.0 wissen wir, dass der HAL-Daemon mit Regeln, die in *.fdi-Dateien abgelegt werden, gesteuert werden kann. Das machen wir uns jetzt zunutze und legen einfach eine Regel an, die den HAL-Daemon (rchal) dazu bringt alle hot-plug NTFS-Partitionen mit ntfs-3g zu mounten. Profis wissen natürlich, wie sie eine Textdatei an einer bestimmten Stelle im Verzeichnisbaum ablegen. Hier ist die Schritt-für-Schritt Anleitung, die auch Newbies verstehen sollten:
- Lade die Datei 10-ntfs-policy.fdi herunter und leg sie in Deinem Homeverzeichnis ab.
- Öffne eine Konsole und werde root. Jetzt kopieren wir die Datei an die richtige Stelle:
cd /usr/share/hal/fdi/policy/10osvendor/
cp /home/Zorro/10-ntfs-policy.fdi .Den Punkt am Ende nicht übersehen! Und an die absoluten Schlaumeier: “Zorro” ist der Platzhalter für Deinen Benutzernamen.
- Lass die root-Konsole offen und flushe alle buffer:
syncJetzt kannst Du alle externen mass-storage (Massenspeicher) vom USB abstöpseln.
- Du bist immer noch root und startest den HAL-Daemon neu:
rchal restartJetzt hat der HAL-Daemon die neue Regel eingelesen.
- Stöpsel die externe USB-Festplatte mit der NTFS-Partition an, und teste, ob Du darauf einen Ordner oder sonstiges anlegen oder drauf kopieren kannst. Klappt das, hast Du alles richtig gemacht.
Nun sollte uns mount folgendes für die NTFS-Partition ausgeben:
/dev/sdc1 on /media/TREKSTOR40 type fuseblk (rw,.....
Die externe NTFS-Partition wurde nun also als FUSE-BlockDevice gemountet.
Warum sollte ich meine ext. USB HDD mit NTFS formatieren?
Soll die externe Platte hauptsächlich unter Windows genutzt werden, ist gerade bei den aktuellen Festplattengrößen von einigen hundert GigaBytes das NTFS-Dateisystem empfehlenswert. Die Platten werden ab Werk mit FAT32 vorformatiert, weil es von allen Betriebssystem gelesen und beschrieben werden kann. FAT32 gibt es seit Windows95B, es entstammt also einer Zeit in der Festplatten max. 5 GB groß waren. Zwar können sehr große Partitionen mit FAT32 formatiert werden, es ist jedoch aufgrund der Einschränkungen von FAT32 nicht angeraten, wenn man Wert auf die Daten legt.
Linux-User nehmen EXT3
Linux-Nutzer haben die Wahl eines besseren Dateisystems: EXT3. Wer hauptsächlich unter Linux und anderen freien Betriebssystem arbeitet, dem sei EXT3 ans Herz gelegt.
Quellcode der 10-ntfs-policy.fdi
Sollte es nicht möglich sein, die Datei 10-ntfs-policy.fdi herunter zu laden, kann der hier angegebene Quellcode einfach in einen Editor kopiert werden und die Datei dann an die entsprechende Stelle buchsiert werden.
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="volume.fstype" string="ntfs">
<match key="@block.storage_device:storage.hotpluggable" bool="true">
<merge key="volume.fstype" type="string">ntfs-3g</merge>
<merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
<append key="volume.mount.valid_options" type="strlist">locale=</append>
</match>
</match>
</device>
</deviceinfo>
Leider sieht der Inhalt der fdi-Datei hier unübersichtlich aus. In der Originaldatei ist die Formatierung erhalten.
ntfs-3g bringt Fehlermeldung beim Mounten
Wird eine NTFS-Partition unter Windows nicht mit “Sicher entfernen” abgestöpselt, hat das für das NTFS-Dateisystem mittlelschwere Folgen. Zwar sollte es bei dem standardmäßig abgeschaltetem Schreib-Cache unter Windows keinen Datenverlust geben, jedoch wird das Journal nicht beendet. Das NTFS-Dateisystem ist weiterhin als “in use” gekennzeichnet. Das merkt dann auch ntfs-3g und bringt folgende Fehlermeldung:
$LogFile indicates unclean shutdown (0,0) Failed to '/dev/sde1'.
...., etc
ntfs-3g bringt dann noch einige Ratschläge. Derjenige, der am schnellsten das Problem löst fehlt in dem Fall. Wir müssen nämlich das Journal aufräumen. Das ganze geht mit ntfsfix. In meinem Fall ist der Fehlermeldung zu entnehmen, dass sich sde1 nicht mounten lässt. Als root lassen wir nun ntfsfix auf sde1 los:
ntfsfix /dev/sde1
Damit beginnt die Aufräumaktion. Ist diese abgeschlossen, kann die externe Platte abgezogen werden. Beim erneuten anstöpseln, wird sie nun richtig gemountet.
NTFS, ntfs-3g, Linux, openSuSE, mount, USB, mass-storage, writeable
June 13th, 2008 at 09:09
[...] HAL: Wechselmedien mit ntfs-3g automatisch schreibbar mounten Wer (USB)-Wechselmedien wie z.B. externe Festplatten oder Speichersticks mit NTFS Dateisystem schreibbar einbinden will, findet einige Anleitungen, die relativ kompliziert sind und sehr haeufig recht unschoene und besonders fuer Anfaenger recht schwierige "Hacks" enthalten. Das Ganze geht aber mit einer entsprechenden HAL-policy und ohne Veraenderungen an den schon vorhandenen Mechanismen, es wird nur eine weitere Datei erstellt und an die richtige Stelle kopiert. Das Original findet sich hier: cloudkicker.net » Externe NTFS Festplatte (Partition) beschreibbar mit ntfs-3g mounten Als Grundvoraussetzung, die jedoch so oder so fuer schreibenden Zugriff via fuse/ntfs-3g erfuellt werden muss, sollten die Pakete (Ueberraschung) Code: [...]
Using Netscape Navigator 4.0July 6th, 2009 at 11:00
Hallo,
Using Mozilla Firefox 3.0.11 on SuSE Linuxvielen Dank für diese ausführliche und funktionierende Erklärung.
Hat mir sehr geholfen. Aber dennoch scheint es kleinere Probleme zu geben die ich mal auf die Festplattengöße schiebe.
Habe jeweils eine 40gb und eine 1650gb HDD mittels IDE2USB Adapter am PC aber diese werden nicht immer erkannt.
lieben Gruß aus Darmstadt
July 6th, 2009 at 12:58
Es kann sowohl an der Platte als auch am IDE2USB Adapter liegen. Mit einer aktuellen Distro (grüne Box ganz oben) sind Probleme auf der Softwareseite größtenteils ausgeschlossen. Egal ob interne oder externe Festplatten mit NTFS machen keinerlei Zicken. Wobei NTFS grundsätzlich nicht schön ist. Ich habe aus Datenintegritätsgründen auch alle meine externen Platten mit ext2/3 formatiert.
Using Mozilla Firefox 3.0.11 on Ubuntu Linux