PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows98, Samba und Umlaute



Tim Otterbach
23.08.04, 16:16
Hallo,

ich habe ein Problem was mich zur Verzweiflung / Weißglut treibt :mad:, weil absolut nichts was ich bisher gefunden habe fruchtet. Das Problem lautet folgendermaßen:

Mit Windows98 speichert man eine Datei die im Namen klein geschriebene Umlaute enthält auf einer Samba Share. Das geht ohne Probleme. Nur wenn man diese löschen möchte kommt die Meldung "Dateisystemfehler 1026".
Der Hit ist: Öffnen kann ich die Datei. Nur nicht kopieren, verschieben oder löschen.
Ausserdem: Benutze ich groß geschriebene Umlaute, macht er das ohne Murren und Knurren. Ich habe auch mal im Verzeichnis auf dem Linux Server nachgesehen, da stehen alle Dateinamen genauso wie diese auch unter Windows zu sehen sind. ( z.B. äää.txt )

Da ich schon einiges ausprobiert habe, hier die aktuellen Einstellungen:

dos char set = 850
unix char set = ISO8859-15
character set = ISO8859-15
client code page = 850
short preserve case = No
case sensitive = No
mangle case = Yes

So... Ich werde nun versuchen mich zu beruhigen, was essen ein paar Baldrian einwerfen oder sowas. :ugly:

Mit freundlichem Gruß,

Tim Otterbach

P.S.: Hilfe!

muell200
24.08.04, 09:53
Hallo,
"Dateisystemfehler 1026".



Hallo und willkommen auf dem Board!

wie hast du das board gefunden?

der erste treffer bei google könnte dein problem lösen:
google-suche (http://www.google.com/search?q=%22Dateisystemfehler+1026%22&sourceid=opera&num=0&ie=utf-8&oe=utf-8)


nächster tip:
1.) nicht jeder fehler liegt am samba server, .....
2.) wenn du das nächste mal hilfe benötigst, dann solltest du mehr informationen zu deinem problem beschreiben:
z.b.: was für eine samba-version, was steht in den log-dateien, .....


ist dein problem gelöst?

Tim Otterbach
25.08.04, 20:12
wie hast du das board gefunden?

Naja, über www.google.de


wenn du das nächste mal hilfe benötigst, dann solltest du mehr informationen zu deinem problem beschreiben:

Samba Version 3.0.4 und der Client ist Windows 98 SE



ist dein problem gelöst?

Leider nein. Habe ich schon erwähnt das ich andere Dateien ohne Probleme löschen kann? Sogar welche mit großen Umlauten. Nur mit Kleinen geht es nicht. Auf dem lokalen Datenträger funktioniert alles 1a. [ natürlich ]

In den Logfiles ( log.smbd / log.nmbd ) finde ich nichts auffälliges :confused:

Gruß, T

Tim Otterbach
25.08.04, 22:47
Jetzt habe ich ein wenig gesniffert. Und herausgekommen ist etwas, was ich mir schon gedacht hatte.

Wenn ich mit Windows 2000 auf einer Samba Freigabe eine neue Textdatei erstelle mit dem Namen: "lösung.txt", so wird das 'ö' mit 366 ( oktal ) übermittelt.

http://www.thedeadlink.de/problem/w2kwrite.jpg

Wenn ich mit Windows 2000 diese Datei wieder löschen will, dann wird das 'ö' auch mit 366 dargestellt.

http://www.thedeadlink.de/problem/w2kdel.jpg

Nun, wenn Windows 98 die Datei "lösung.txt" anlegt, dann sendet es das 'ö' schön mit 366 ( immernoch oktal ).

http://www.thedeadlink.de/problem/w9xwrite.jpg

Wenn es aber nach der Datei sucht um diese zu löschen, sendet es den Dateinamen in Großbuchstaben. Dementsprechend kodiert das 'Ö' mit 326.

http://www.thedeadlink.de/problem/w9xdel.jpg

Obwohl case sensitive = No in der smb.conf steht, meldet der Samba Server, dass diese Datei nicht existiert. Das dieser Parameter scheinbar bearbeitet wurde, habe ich überprüft indem ich einfach einmal eine Datei "hallo.txt" angelegt habe und dann versucht habe noch eine Datei mit dem Namen "HALLO.txt" anzulegen. Das funktioniert nicht. Also würde ich sagen, dass SAMBA das verstanden hat mit dem case sensitive = No.

Und das ist das Problem. Das erklärt auch, warum das funktioniert wenn man nur große Umlaute verwendet.
Denn: Wenn ich direkt in Großbuchstaben anlege ( LÖSUNG.TXT ), dann klappt alles.

muell200
26.08.04, 09:16
ändere samba, das die sonderzeichen richtig dargestellt werden:

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

gruss

Tim Otterbach
26.08.04, 12:01
Ich habe gerade mal Suse Linux 9.1 versucht. Da funktioniert alles ohne das ich irgendetwas einstelle. Es scheint wohl ein Problem des ODS-Servers ( Linux Schulserver von Heise ) zu sein.

Der meldet beim Hochfahren das er den Unicode Modus abschaltet. Das scheint mir aber genau die Sache zu sein die den Fehler verursacht. Ich habe mal im Skript /etc/init.d/kbd nachgesehen. Und das bringt die Meldung beim Start. Es überprüft ob die $LOCALE_CHARMAP="UTF-8" ist. Wenn nicht, schaltet es den Unicode Modus ab.

Wenn jetzt noch jemand weiß wo diese Variable gesetzt wird, dass wäre echt spitze.

Gruß, T

Tim Otterbach
09.09.04, 01:24
Die Lösung des Problems... es ist so naheliegend und doch so schwer drauf zu kommen ( 2 Wochen Arbeit [ nicht ununterbrochen ] ).

http://www.thedeadlink.de/problem/Loesung.jpg

Also lag es nicht am Unicode Modus usw....

Ich kann es mir nicht verkneifen zu erzählen wie ich darauf gekommen bin. :idee: Nun, wenn man ein Problem mal zwei Tage liegen lässt, kommt man auf ganz neue ( oder ganz alte ) Ideen. ( Ihr müsst das alles ja nicht lesen wenn ihr nicht wollt :) )

Mir fiel da doch ein, dass ich zwar bereits alle Zeichensätze ausgetauscht hatte, aber zwei Dateien fehlten noch. Die sind mir schon vorher immer wieder ins Auge gefallen: lowcase.dat und upcase.dat ( in diesem Zuge dann auch valid.dat ).

Also habe ich mein Suse 9.1 angeworfen wo das Problem mit den Umlauten und Windows 98 nicht aufgetreten ist. Dort kopierte ich diese drei Dateien auf den ODS-Server, das Sorgenkind. Meine trüben Augen erkannten schnell das es sich bei den gerade kopierten um genau dieselben Dateien handelte wie die, die schon da waren. ( gleiche Größe gleiches Datum usw. )

Also dachte ich: Schau doch mal in der /var/log/samba/log.smbd nach, was die so sagt. ( hatte ich bis dahin noch nicht gemacht ) :aet:
Dort stand dann sowas:

http://www.thedeadlink.de/problem/log.smbd.jpg

Jaja: Asche auf mein Haupt. Ich sagte ja, dass mir eigentlich nichts aufgefallen ist. Aber wenn man das Gehirn beim Lesen einschaltet eröffnen sich einem ganz neue Erkenntnisswelten. :D

Das sag irgendwie verdächtig danach aus, dass der was nicht gefunden hat.
Als ich mir den Quelltext von util_unistr.c zur Brust nahm, viel mir auf, dass das Ding tatsächlich diesen Text in die Logdatei schreibt wenn der diese beiden Dateien nicht findet.

Warum findet der Bursche die Dateien nicht? Meine Vermutung ist, dass beim ausführen von configure vor dem Kompilieren vergessen wurde die lib-directory mit anzugeben. So wurde diese nicht auf /usr/lib/samba festgelegt, wo die benötigten Dateien wirklich liegen, sondern auf /usr/lib. Das geht nach dem parameterlosen Ausführen von configure aus der config.log hervor.

Schlussendlich war das des Rätsels Lösung. Nun kann man auch mit Windows 98 nach Lust und Laune Umlaute in Groß- und Kleinschreibung verwenden und diese Dateien ohne Umwege auch wieder löschen.

Achja: Ich hatte anfangs vergessen etwas zum System zu sagen.

Das Betriebsystem ist der ODS-Server Version 4.0 29beta. Der ist scheinbar aus einer SUSE Linux Version entstanden.
SAMBA Version 3.0.4

http://www.arktur-schule.de/Doku/index.htm