• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Bericht/Lösung: NTFS Zugriff mit ntfs-3g und fuse

Hallo, heute will ich mal anstelle blöder Fragen eine Lösung ins Forum stellen. Ich hoffe ich langweile damit niemanden, wenn es die mods
für sinnlos halten, könnt ihr es gern wieder löschen aber vielleicht hilft es
ja auch jemandem...

Vorbemerkung:
Es gibt offensichtlich eine nicht funktionierende bzw. fehlerhafte
Version von fuse, und zwar die 2.6.2.
Wenn man diese oder eine vor 2.6.2 installiert hat, kommt es zu folgender Fehlermeldung:

WARNING: Deficient FUSE kernel module detected. Some driver features are not available (swap file on NTFS, boot from NTFS by LILO), and
unmount is not safe unless it's made sure the ntfs-3g process
naturally terminates after calling 'umount'. The safe FUSE kernel
driver is included in the official Linux kernels since version
2.6.20-rc1, or in the FUSE 2.6.0 or later software packages,
except the faulty FUSE version 2.6.2. Please see the next page
for more help: http://www.ntfs-3g.org/support.html#fuse26

Weitere Symptome:
a) Irgendwie funktioniert das automatische Aushängen beim Herunterfahren nicht und WIN meckert dann beim Hochfahren und
führt chkdsk aus.
b) manuelle mount Versuche in der konsole unter Linux führten auch zu Meldungen wie "volume dirty, run chkdsk"

3. Daraufhin habe ich unter
http://fuse.sourceforge.net/
die aktuelle Version von fuse geladen und kompiliert/installiert.

LÖSUNG:
Der NTFS rw Zugriff funktioniert jetzt bei mir mit folgenden Einstellungen:

1. fuse Version 2.6.3

2. ntfs-3g Version 1.0-2ccj1@586

3. Eintrag in fstab:
Code:
/dev/hd?? /windows/E	ntfs-3g    defaults 0 0
?? = je nach System kann das hdb oder hda sein, mit der entsprechenden Nummer, natürlich muss auch der mountpoint (hier /win/E entsprechend eingetragen sein.

4. In der Datei /etc/sysconfig/kernel musste noch folgender Eintrag hinzugefügt werden, um fuse beim Hochfahren zu laden:
Code:
MODULES_LOADED_ON_BOOT="fuse"
(vielleicht auch nochmal nachschauen, ob sich unter /lib/modules im Verzeichnis des aktuellen kernels die Datei fuse.ko befindet)

5. Zur Vollständigkeit noch meine Systemdaten, es könnte durchaus sein, dass diese Lösung nur bei meiner Maschine geht .. :cry:

Distribution: Suse 10.2 (32bit Version)
Kernel 2.6.18.8-0.1-default
AMD Athlon 2800+ 1024 MB RAM
 

Pfalzwolf

Member
Mit SuSE 10.2 muss man sich nicht so viel Arbeit machen!
Die Module Fuse und ntfs-3g lassen sich einfach per smart aus dem jengelh Channel installieren.
Der erwähnte Fehler mit der Fuse Version verschwindet mit dem Kernel-Update aus dem gleichen Channel.
Daneben musste lediglich noch die fstab angepasst werden.

Meine Versionen:
Fuse 2.6.1-1-ccj0@i586
ntfs-3g 1.0-2.ccj1@i586
Kernel-default 2.6.18.8-1.ccj45@i586

Channel:

[suser-jengelh]
type = rpm-md
name = openSUSE 10.2 Suser-Jengelh Repository
disabled = no
baseurl = http://ftp-1.gwdg.de/pub/linux/misc/suser-jengelh/SUSE-10.2/
 
@pfalzwolf

Das hätte ich vor zwei Tagen wissen sollen, trotzdem
vielen Dank für die Info!

Meine Story:
Ich hatte zuerst genau die beiden von dir zitierten Versionen
Fuse 2.6.1-1-ccj0@i586
ntfs-3g 1.0-2.ccj1@i586
mittels smart aus dem jengelh channel geladen und installiert.

Allerdings nicht den
Kernel-default 2.6.18.8-1.ccj45@i586
,
den hatte ich übersehen bzw. es war mir nicht klar, daß hier ein kernel update notwendig ist. 8) :roll:

Jetzt ist mir natürlich auch klar, woher die "dirty" Probleme kamen.
OK, wieder was gelernt...Hinterher ist man immer schlauer.

Schöne Ostern an alle!
 

Martin07

Newbie
Hi,

bin neu hier. Ich habe OpenSuse 10.2 seit gestern installiert. Läuft auch soweit ganz gut. Allerdings wollte ich von Linux aus Zugriff auf meine Windows Partition C (NTFS).
Also habe ich in div. Foren gesuchtt und bin hier auf die Anleitung von ingo.trautwein gestoßen. Ich bin genau danach vorgegangen, außer dass ich jeweils die neuesten Versionen gedownloadet habe, also:

1. Fuse 2.6.5 gedownloadet und installiert
2. Neueste Version von ntfs-3g gedownloadet und installiert
3. Eintrag in fstab:
Code:
/dev/hda1	     /mnt/windows/C       ntfs-3g    defaults              0 0
4. In der Datei /etc/sysconfig/kernel folgenden Eintrag hinzugefügt:
Code:
MODULES_LOADED_ON_BOOT="fuse"
Datei fuse.ko befindet sich im Verzeichnis des Kernels unter /lib/modules

5. Systemdaten:

Distribution: Suse 10.2 (32bit)
Kernel: Linux 2.6.18.2-34-default i686
Intel Pentium 4, 2,5GHz, 512MB RAM

Jedoch befindet sich die Windows Partition C nicht im Linux Arbeitsplatz. Habe ich etwas falsch gemacht? Ich hoffe Ihr könnt mir helfen.
 
Hallo Martin,
wenn alles richtig installiert ist, müsste eigentlich beim
öffnen vom Arbeitsplatz C: angezeigt werden.

PS: Ob es eine gute Idee ist, die C:(=boot) partition von WIN schreibbar
zu mounten? Wenn du Schreibrechte hast, wird bei eventuellen
fehlern oder "verklickern" gnadenlos gelöscht, Linux fragt nicht nach
systemdateien oder essentiellen bestandteilen von WIN.
Wenn Du Platz hast, lege lieber eine (VFAT) partition zum Datenaustausch an, das ist sicherer. NTFS brauchst Du eigentlich nur wenn Du mit
files > 2 GB arbeiten musst. (bei mir liegen z.B. videodateien auf
einer NTFS partition, sonst hätte ich die ntfs-3g attacke gar nicht geritten) Ob ntfs schneller ist, kann ich dir nicht sagen, ich merk bei mir nix

Zu deinem Problem
schau doch erstmal mal nach folgendem:

1) lass dir mittels yast das startprotokoll anzeigen und suche nach
fehlermeldungen von fuse

2) gib mal in einer (root) Konsole den befehl
"mount /dev/hda1" ein, ob fehler angezeigt werden.
(root rechte erhältst du in der Konsole durch eingabe von "su" und
dem paswort von root")
Wenn keine fehlermeldungen kommen, kannst du mittels "ls" die
dateien anzeigen lassen. (oder benütze zum Suchen des mountpoints das programm "mc", das ist
ein netter, dem alten Norton Commander nachempfundener Dateimanager.

3) Überprüfe, ob der mountpoint "/mnt/windows/c" tatsächlich existiert oder ob du ihn in der fstab falsch getippt (z.B. groß /klein) hast.

Dann sach ma' Bescheid.
 

Martin07

Newbie
Hi,

mir würde es auch reichen, C: als readonly zu mounten. Es wäre nett wenn du mir sagen könntest wie das geht, habe im Internet nichts darüber gefunden. Das wäre zur Zeit die einfachste Lösung, weil es im Moment nur darum geht aus Linux meine MP3s hören zu können. Muss ich dazu auch die Schritte 1-3 durchführen oder entfällt das?
Später werde ich dann wahrscheinlich eine Datenaustauschpartition anlegen, Platz habe ich genug.
Übrigens weiß ich nicht, ob das mit dem Mountpoint richtig ist. Woher weiß ich was ich da eingeben muss? Naja egal eigtl. brauche ich nur readonly

Gruß
Martin
 
Hi Martin, um C: nur readonly zu mounten, ändere bitte die entsprechende Zeile mit einem Texteditor deiner Wahl in deiner /etc/fstab wie folgt:

Code:
/dev/hda1 /mnt/windows/c  ntfs  ro user,users,gid=users,utf8=tue, 0 0

(bitte die Leerzeichen und Groß/Klein beachten, sonst passiert murks!)
Im Prinzip ist es egal ob du groß oder klein schreibst, im Gegensatz zu
Windows sind aber in Linux die Datei- und Verzeichnisnamen "case sensitive" d.h. /dev/gr0SS ist nicht gleich /DEV/groSs

Wenn das Verzeichnis /mnt/windows/c nicht existiert, gib bitte
in einer Konsole als sysadmin (=root) folgendes ein:

Code:
mkdir /mnt/windows/c

Dann teste ob das Verzeichnis angelegt wurde:
Code:
cd /mnt/windows/c

Dein prompt müsste nun etwas wie
Code:
<dein hostname>:/mnt/windows/c#

anzeigen.

Nun sollte auch dein C: im Arbeitsplatz angezeigt werden

Bis dann,
 

Martin07

Newbie
Hi,

habe alles gemacht, wie du es gesagt hast, außer das mit dem Verzeichnis anlegen über die Konsole hat nicht funktioniert (Verzeichnis war danach nicht vorhanden), habe es dann manuell angelegt. aber es funktioniert einfach nicht, nach einem Neustart ist die Partition C immer noch nicht im Arbeitsplatz. :(
 
Hallo Martin,
weiß der Geier warum "mkdir" nicht funkt, probiers mit "md"

1) Öffne eine Textkonsole
2) logge dich als superuser ein:

Code:
<dein username>@<dein hostname>:~> su

Passwort:<dein root passwort>

<dein username>@<dein hostname># md /mnt/windows/c

das sollte funzen.

PS: ich habe direinen tippfehler übermittelt:
es muss in der fstab natürlich heissen: utf8=true nicht "tue"
 
PS: vergiss das mit dem Neustart, Linux ist nicht WIN
wenn die fstab OK ist, muss es auch so gehen.

Eine Bitte:
Damit wir hier das forum nicht mit basisfragen und missverständnissen zumüllen schick mir doch eine pn (persönliche nachricht), wir kriegen das schon hin...
 
Oben