# [solved] Samba Umlaut Problem mit mount

## borlander

Hy Leute,

ich habe schon länger einen Samba 3.0.x laufen. Damit auch Umlaute als Dateinamen genutzt werden können habe ich folgendes in der /etc/samba/smb.conf eingestellt:

```
display charset = ISO8859-1

unix charset = ISO8859-1

dos charset = cp850
```

Nun läuft alles von Windows oder vom KDE ("smb://") wunderbar. Wenn ich nun aber unter Linux (2.6er Kernel) eine Freigabe mounte, werden keine Umlaute angezeigt.

Ausschnitt aus der /etc/fstab:

```
//winzigweich/BLA   /mnt/bla   smbfs user,uid=sven,gid=users,rw,noauto,credentials=/home/sven/login.smb,iocharset=iso8859-1,codepage=cp850   0 0
```

Ich habe auch schon iso8859-15 ausprobiert und in der Client kernel mal iso8859-1 oder iso8859-15 fest eingestellt. Alles was ich jetzt mache ist nur noch try and error.

danke für eure Hilfe

Sven

[edit]

Lösung:

1 .Server und Client auf Unicode umstellen

Quelle: https://forums.gentoo.org/posting.php?mode=editpost&p=1904002

```
echo "CONSOLETRANSLATION=\"8859-1_to_uni\"" >> /etc/rc.conf

echo "UNICODE=\"yes\"" >> /etc/rc.conf

echo "de_DE.UTF-8/UTF-8" >> /etc/locales.build

#in der Anleitung http://forums.gentoo.org/posting.php?mode=editpost&p=1904002 steht hier LANG="german" was bei mir in zusammenhang mit man zu Problemen geführt hat.

echo "LANG=\"de_DE.uft8\"" >> /etc/env.d/02locale

echo "LC_ALL=\"de_DE.uft8\"" >> /etc/env.d/02locale

echo "GMD_LANG=\"de_DE.uft8\"" >> /etc/env.d/02locale
```

in die /etc/make.conf 

die USE Flags userlocales und unicode eintragen.

```
env-update && source /etc/profile

emerge glibc

unicode_start
```

Danach musste ich mich in KDE neu einloggen und dann lief wieder alles.

Kernel umstellen

```
cd /usr/src/linux

make menuconfig
```

File systems---> Native Language Support --->

Default NLS Option auf utf-8 setzen

<*> Codepage 850 (Europe) //brauch man glaube ich nicht

<*> NLS UTF8

```
mount /boot

make 

...

reboot

```

2. Server einstellung:

/etc/samba/smb.conf

```
display charset = UTF-8

unix charset = UTF-8

dos charset = cp850
```

[b]3. Client Einstellungen

cifs Client in Kernel hinzufügen unter

File systems ---> Network File Systems -->

<*>CIFS support

[*]    CIFS extended attributes  //Wichtig

/etc/fstab

```
#Hostname funktioniert nicht nur IP Adresse

//192.168.0.1/BLA /mnt/bla cifs user,uid=sven,gid=users,rw,credentials=/home/sven/.pass.smb,iocharset=utf8,codepage=cp850   0  0
```

War fast schon zu einfach  :Smile: 

[/edit]Last edited by borlander on Thu Jan 06, 2005 8:34 pm; edited 1 time in total

----------

## borlander

Habe ich vieleicht etwas in der Client oder Server Kernel falsch eingestellt. 

Dann ist mir aufgefallen das seit ca. 1 Tag die acl USE Flag gesetzt ist (ich hab die nicht in die /etc/make.conf eingetragen):

```
emerge samba -pv

These are the packages that I would merge, in order:

Calculating dependencies    ...done!

[ebuild  N    ] sys-apps/attr-2.4.19  -debug +nls 0 kB

[ebuild  N    ] sys-apps/acl-2.2.27  -debug +nls 0 kB

[ebuild   R   ] net-fs/samba-3.0.9-r1  +acl* +cups -debug +doc -kerberos +ldap -libclamav +mysql +oav +pam -postgres +python -quotas +readline (-selinux) -winbind +xml +xml2 0 kB
```

hat acl etwas mit meinen Problem zu tun (was ich nicht glaube)?

Wo muss ich am besten suchen?

----------

## Whitewolf Fox

Hi borlander!

Ich hatte dasselbe Problem und habe es jetzt für mich gelöst!

Anhand deines /etc/fstab Ausschnittes meine ich zu erkennen, das Du denselben "Fehler" begehst wie ich.

Du benutzt folgende Mountoptionen in deiner /etc/fstab :

```

user,uid=sven,gid=users,rw,noauto,credentials=/home/sven/login.smb,iocharset=iso8859-1,codepage=cp850  

```

Ich habe gestern entdeckt, das sich mount und smbmount/mount.smbfs beissen, was die Mountoptionen in der /etc/fstab angeht:

smbmount kennt die Optionen noauto, exec, users, etc. von mount offenbar NICHT!

Soviel ich weiss, ruft mount einfach eine Instanz von smbmount/mount.smbfs auf, wenn in der /etc/fstab als Dateisystem smbfs steht.

Wie genau sich smbmount nun verhällt, wenn du ihm, wie du mit deiner Config tust, die Option noauto übergibst, weiss ich nicht. Was ich aber weiss ist, das er die für Dich relevanten Optionen wie iocharset und codepage einfach unter den Tisch fallen lässt.

Probier es bitte nocheinmal neu zu mounten nachdem Du in deiner /etc/fstab deinen Eintrag durch diesen ersetzt hast:

```

//winzigweich/BLA   /mnt/bla   smbfs uid=sven,gid=users,rw,credentials=/home/sven/login.smb,iocharset=utf8,codepage=cp850   0 0

```

Warum iocharset=utf8? Ganz einfach: Seit Windows 2000 (also auch XP) benutzt Windows diese Codepage für samba - Verbindungen. Wenn Du also in deiner Linux-Kiste auch für das share utf8 benutzt, solltest du keine Probleme mehr damit haben.

Siehe hierzu auch:

http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/unicode.html#id2587302

Ich hoffe das hat Dir geholfen!

Ich bitte um Rückmeldung  :Smile: 

MfG

Marc Richter

----------

## borlander

Sorry für meine späte Antwort. Ich war länger nicht mehr zuhause.

Ich habe deine Einstellungen übernommern und immer noch die selben Probleme.   

Ich habe auf dem Server 

unix charset = UTF-8

und 

unix charset = ISO8859-1

probiert und beides hat nicht geklappt. Werde mich weiter versuchen durch die Doku zu lesen und was zu finden was mich weiterbringen kann.

----------

## froonk

Ich bin mir nicht sicher, aber muss man die charsets der FS's nicht unter 'File Systems/Native Language Support' im menuconfig in den Kernel einbinden?

----------

## Whitewolf Fox

Soweit ich weiss schon!

Das ist eine verdammt gute Idee! Ich muss gestehen, das jetzt wo Du es sagst, meine Änderungen in der /etc/fstab, wo ich eingetragen habe, das mein Share als utf8/cp850 eingehängt werden soll, immer nur mit dem utf8 - NLS - losem Kernel ausprobiert habe!!

Mann, wenn es daran liegt, trage ich aber einen Monat lang die n00b - Kappe ...  :Wink: 

Ich checke das heute abend mal!  :Smile: 

----------

## borlander

Wass soll ich genau einstellen in der Kernel???

Soll ich UTF-8 hinzufügen (gemacht und nichts geändert)

Soll ich nur UTF-8 hinzufügen

Kann mir jemand erkären was ich dann dort mache??

Danke für eure weiteren Ideen. ICh spüre schon, dass wir ganz nah dran sind  :Smile: 

[edit]

Soll ich beim Samba Server immer noch 

display charset = ISO8859-1

unix charset = ISO8859-1

dos charset = cp850

oder

display charset = UTF-8

unix charset = UTF-8

dos charset = cp850

[/edit]

----------

## Haldir

Das einfachste wird wohl sein du stellst dein System komplett auf UTF8 um

http://www.gentoo.de/main/de/presentations/UTF-8.pdf

Wie Whitewolf schon gesagt hat, Samba3 benützt als Default UTF als Charset. Wenn du dann auch deine Linuxkiste auf UTF8 umstellst (also auch Terminals, ls usw.) dann kannst du auch da ohne Probleme UTF anzeigen wenn du die Samba share in linux mit iocharset=utf8 mountest.

----------

## borlander

Dank eurer Hilfe habe ich nun nach langer Zeit mein Samba Problem gelöst.

Die Lösung habe ich oben in meinen ersten Beitrag geschrieben.

Was schade ist, dass ich in der /etc/fstab nicht den Rechnernamen angeben kann sondern nur die IP Adresse (seltsam) aber das liebe Kinder ist eine andere Geschichte  :Smile:  und wird ein anderes mal gelöst.

Vielen vielen dank.

----------

## Sebbe128

Wenn cifs als Net-FS verwendet werden soll, muss /etc/init.d/netmounter erweitert werden.

Ja, ich weiss, doof, aber ich wüsste sonst nicht wie.

Also, hier der Quelltext:

In der start()-Funktion:

Hier in der Liste der zu behandelnden Dateisysteme (rcfilesystems) cifs rein. So werden cifs-Zeilen beim mounten mitbahandelt.

```

if [ -L ${svcdir}/started/portmap ]

        then

                rcfilesystems="coda,nfs,ncpfs,smbfs,cifs"

        else

                rcfilesystems="coda,ncpfs,smbfs,cifs"

        fi

```

Und bei Stop() das ganze nochmal in den awk-Aufruf (getrennt durch die OR-Pipe), damit auch ge-umount-ed wird:

```

local remaining="$(awk '$3 ~ /coda|nfs|ncpfs|smbfs|cifs/ { if ($2 != "/") print $2 }' /proc/mounts | sort -r)"

```

Im Zuge der UTF-8 Umstellung habe ich außerdem mit

```
emerge world --newuse -av
```

mal nachgesehen, was man denn so alles neu kompilieren sollte auf seinem System durch die neuen Use-Flags! (Das ganze natürlich auch für system)

----------

