mount_smbfs und Umlaute

max93

Well-Known Member
Hallo!

Ich frage mich gerade, was ich falsch mache: Ich habe 2 FreeBSD Rechner. Einer spielt Server und exportiert Verzeichnisse mit Samba. Wenn ich so eine Freigabe am anderen Rechner einbinde, dann stimmen die Umlaute nicht mehr (ich sehe am Client Fragezeichen anstelle von Umlauten).

Der verwendete Zeichensatz beider FreeBSD Rechner ist ISO8859-15. In der smb.conf am Server habe ich die Optionen "display charset = ISO8859-15" und "unix charset = ISO8859-15" gesetzt. Dort sind die Umlaute in der Shell als solche lesbar.

Wenn ich jetzt am 2. Rechner per

mount_smbfs -I bsd -L en_US.ISO8859-15 -Eiso8859-15:iso8859-15 -N //guest@bsd/daten /mnt/bsd/daten

eine Freigabe mounte, dann erhalte ich anstelle von Umlauten nur Fragezeichen in den Dateinamen. Was genau übersehe ich denn noch? IIRC werden die Umlaute richtig dargestellt, wenn man die Freigabe von einem Windows Rechner aus mountet (kann ich jetzt gerade nicht testen, hole ich aber nochmal nach).

Danke & Ciao.
Markus Mann
];-)
 
mount_smbfs -I bsd -L en_US.ISO8859-15 -Eiso8859-15:iso8859-15 -N //guest@bsd/daten /mnt/bsd/daten
Die Amerikaner kennen keine Umlaute. Korrekt wäre:

mount_smbfs -I bsd -L de_DE.ISO8859-15 -Eiso8859-15:iso8859-15 -N //guest@bsd/daten /mnt/bsd/daten
 
AndreasMeyer schrieb:
Die Amerikaner kennen keine Umlaute.
Aber das ISO8859-15 Character Set. Mit der Änderung auf de_DE erhalte ich (erwartungsgemäß) leider das selbe Ergebnis. Die Sprache hat damit nichts zu tun, es geht ja um das Encoding.

Danke & Ciao.
Markus Mann
];-)
 
Hallo Markus,

ich habe gerade mal eine ältere smb.conf ausgebuddelt. Die hatte auch mit Umlauten funktioniert. Ich glaube zwar kaum das es des Rätsels Lösung ist, aber einen Versuch ist es vielleicht wert.

dos charset = CP1252
unix charset = ISO8859-1
display charset = ISO8859-1

Ich bin mir auch nicht ganz sicher was dos charset genau macht, da ich kein Samba mehr einsetze hatte ich mich auch nicht weiter damit auseinandergesetzt.

Viel Glück/Erfolg

Christian
 
Aus "# man mount_smbfs":
http://www.freebsd.org/cgi/man.cgi?...ion=0&manpath=FreeBSD+6.1-RELEASE&format=html

-L locale
Use locale for lower/upper case conversion routines. Set the
locale for case conversion. By default, mount_smbfs tries to use
an environment variable LC_* to determine it.

Also: mount_smbfs und smb kommunizieren wahrscheinlich korrekt mit ISO8859-15. Aber wie sollen deine Programme (z.B. "ls") Umlaute darstellen, wenn Sie nur mit dem reinen ASCII (7-bit) arbeiten dürfen (Der Befehl "locale" gibt wahrscheinlich etwas nach dem Stil: "LC_xy="C"" aus). Setze die Umgebungsvariablen LANG und MM_CHARSET korrekt, gemäss den Anleitungen:

http://www.freebsd.ch/doc/de_DE.ISO8859-1/books/handbook/using-localization.html
http://wiki.bsdforen.de/index.php/FreeBSD_-_UNICODE

dann sollten auch die Umlaute auf dem Client erscheinen.
 
AndreasMeyer schrieb:
Also: mount_smbfs und smb kommunizieren wahrscheinlich korrekt mit ISO8859-15.
Eben genau das machen die beiden offenbar nicht und das ist es, was mich ja so (ver)zweifeln lässt. Eines der ersten Dinge, die ich bei jeder FreeBSD Installation mache wirkt sich auf die Umlaute aus (ich hatte das auch im Ursprungsposting angedeutet):

Gilt für beide Maschinen:
Code:
mann@max93:~$ locale
LANG=en_US.ISO8859-15
LC_CTYPE="en_US.ISO8859-15"
LC_COLLATE="en_US.ISO8859-15"
LC_TIME="en_US.ISO8859-15"
LC_NUMERIC="en_US.ISO8859-15"
LC_MONETARY="en_US.ISO8859-15"
LC_MESSAGES="en_US.ISO8859-15"
LC_ALL=

Danke & Ciao.
Markus Mann
];-)
 
Zuletzt bearbeitet:
Bingo!

NotMyJob schrieb:
aber einen Versuch ist es vielleicht wert.

dos charset = CP1252
unix charset = ISO8859-1
display charset = ISO8859-1
Der Kandidat hat 99 Punkte und gewinnt damit soviele Waschmaschinen, wie er tragen kann.

Für die Nachwelt:

In meiner smb.conf am Server habe ich jetzt auch "dos charset" gesetzt (wie oben vorgeschlagen auf cp1252). Auf dem Client sieht der /etc/fstab-Eintrag so aus:

Code:
//guest@bsd/daten  /mnt/bsd  smbfs  -Ibsd,-N,-Lde_DE.ISO8859-15,-Ecp1252:iso8859-15,ro,noauto  0  0

Und die Umlaute sind jetzt auch am Client lesbar.

NotMyJob schrieb:
Ich bin mir auch nicht ganz sicher was dos charset genau macht,
Laut Doku setzt es nur den Charset, den eben ein DOS Client vorgesetzt bekommt, wenn er die Freigabe mountet. Ich habe FreeBSD rein intuitiv für mehr als ein antiquiertes Disk Operating System gehalten (was für ein fataler Fehler! ];-) Vielleicht habe ich den Punkt einfach falsch verstanden und JEDER Client ist ein DOS Client? Mich macht ja die Tatsache stutzig, dass bisher kaum jemand außer mir darüber gestolpert ist (dann muss es wohl an mir liegen).

Herzlichen Dank & Gute Nacht.
Markus Mann
];-)
 
Zurück
Oben