Tom: Mounten von Windows-Datenträgern in Linux

Hello,

wir haben von einem Windows 2000 Server mittels smbfs einen Verzeichnisbaum in den Linux-Webserver gemounted, damit man mit PHP darauf zugreifen kann.

Das funktioniert auch ganz gut, aber leider haben wir noch Probleme mit dem Zeichensatz.

Unter Windows ist lesbar "Willi Meier präsentiert"
und in Linux wird daraus "Willi Meier pr„sentiert"

Es kommt 84h als Zeichen.

An welcher Stelle muss ich nun schrauben, damit die Anzeige ein 'ä' darstellt, und ich nachher aber auch auf den File wieder zugreifen kann?

Außerdem werden die gemounteten Pfade in eine mysql-DB eingetragen. Dort ist dann das gleiche Problem

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

  1. Hallo Tom,

    wir haben von einem Windows 2000 Server mittels smbfs einen Verzeichnisbaum in den Linux-Webserver gemounted, damit man mit PHP darauf zugreifen kann.

    welche Samba-Version?

    Das funktioniert auch ganz gut, aber leider haben wir noch Probleme mit dem Zeichensatz.

    Vielleicht kann Dir http://us1.samba.org/samba/docs/man/Samba-HOWTO-Collection/unicode.html weiterhelfen.

    Freundliche Grüße

    Vinzenz

  2. Hallo,

    Unter Windows ist lesbar "Willi Meier präsentiert"
    und in Linux wird daraus "Willi Meier pr„sentiert"
    Es kommt 84h als Zeichen.

    Also, wenn 0x84 unter Windows "ä" ergibt, dann wäre das CodePage 850 Zeichentabelle CP850 (DOS Latin 1). Zumindest bei Windows 2000 Server schon mal bemerkenswert, denn Samba rechnet mit 0x84 = "„", was Zeichentabelle CP1252 (Win Latin 1) wäre.

    viele Grüße

    Axel

    1. Hallo Axel,

      Also, wenn 0x84 unter Windows "ä" ergibt, dann wäre das CodePage 850 Zeichentabelle CP850 (DOS Latin 1). Zumindest bei Windows 2000 Server schon mal bemerkenswert, denn Samba rechnet mit 0x84 = "„", was Zeichentabelle CP1252 (Win Latin 1) wäre.

      wenn ich die von mir verlinkte Samba-Doku  richtig verstehe, könnte der Effekt an unterschiedlichen Einstellungen von

      unix charset (wohl CP850)
        display charset (wohl CP1252)

      liegen, was man mit

      testparm -v | grep "unix charset"
        testparm -v | grep "display charset"

      herausfinden können sollte.

      Freundliche Grüße

      Vinzenz

      1. Hello,

        debian:/etc/samba# testparm -v | grep "unix charset"
        Load smb config files from /etc/samba/smb.conf
        Can't find include file /etc/samba/dhcp.conf
        Processing section "[homes]"
        Processing section "[printers]"
        Processing section "[print$]"
        Loaded services file OK.
        Server role: ROLE_STANDALONE
        Press enter to see a dump of your service definitions

        unix charset = UTF-8

        debian:/etc/samba# testparm -v | grep "display charset"
        Load smb config files from /etc/samba/smb.conf
        Can't find include file /etc/samba/dhcp.conf
        Processing section "[homes]"
        Processing section "[printers]"
        Processing section "[print$]"
        Loaded services file OK.
        Server role: ROLE_STANDALONE
        Press enter to see a dump of your service definitions

        display charset = LOCALE

        Und nun? *ratlos guck*
        Wo ändere ich was, damit es keine Kettenreaktion wird?

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hallo,

          das ist glaube ich die falsche Stelle, an der Ihr bisher sucht. Die genannten Einstellungen in der smb.conf betreffen die Rolle des Samba-Servers. Du nutzt Samba aber via smbfs ja als Client. Der Server ist Windows und hat die Dateinamen offensichtlich in cp850.

          Wie mountest Du? Über /etc/fstab? Wenn ja, wie heißt der Eintrag dort?

          http://samba.org/samba/docs/man/manpages-3/smbmount.8.html
          iocharset=<arg>
          sets the charset used by the Linux side for codepage to charset translations (NLS). Argument should be the name of a charset, like iso8859-1. (Note: only kernel 2.4.0 or later)

          codepage=<arg>
          sets the codepage the server uses. See the iocharset option. Example value cp850. (Note: only kernel 2.4.0 or later)

          teste

          iocharset=iso8859-15
          codepage=850

          viele Grüße

          Axel

          1. Hallo,

            teste

            iocharset=iso8859-15
            codepage=850

            Nein, natürlich

            iocharset=iso8859-15
            codepage=cp850

            viele Grüße

            Axel

            1. Hello Axel,

              teste

              iocharset=iso8859-15
              codepage=850
              Nein, natürlich

              iocharset=iso8859-15
              codepage=cp850

              Darauf hätte ich eben auch selber kommen können *grummel*
              Hat nämlich nicht geklappt ...

              Aber das Teil scheint beim Starten auch die smb.conf zu lesen
              Da haben wir nämlich einen Parameter reingeschreiben, den er angibt zu ignorieren...

              Danke an Alle!

              Harzliche Grüße vom Berg
              http://www.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau

          2. Hello,

            teste

            iocharset=iso8859-15
            codepage=850

            So hat es nun die gewünschte Wirkung gehabt.
            Danke Axel!

            Ich hatte das zwar auch gestern schon mal geschrieben, aber das Posting ist wohl verloren gegangen.

            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau

  3. hallo Tom,

    Zum Zeichensatz weiß ich auch nix andres als Axel oder Vinzenz, aber mich interessiert noch was anderes:

    wir haben von einem Windows 2000 Server mittels smbfs einen Verzeichnisbaum in den Linux-Webserver gemounted, damit man mit PHP darauf zugreifen kann.

    Keine Frage, daß das möglich ist - nur: die Begründung erscheint mir reichlich fragwürdig. Wenn du ein Samba-Share mountest, hast du (je nach Sambakonfiguration) Vollzugriff. Du brauchst dazu keinerlei (Web-)Server, und vor allem brauchst du dazu kein PHP. Warum installierst du dir auf deiner Win2000-Kiste keinen Webserver mit PHP, auf den du dann deine Linux-Kiste als Client zugreifen läßt?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hello Christoph,

      Zum Zeichensatz weiß ich auch nix andres als Axel oder Vinzenz, aber mich interessiert noch was anderes:

      wir haben von einem Windows 2000 Server mittels smbfs einen Verzeichnisbaum in den Linux-Webserver gemounted, damit man mit PHP darauf zugreifen kann.

      Keine Frage, daß das möglich ist - nur: die Begründung erscheint mir reichlich fragwürdig. Wenn du ein Samba-Share mountest, hast du (je nach Sambakonfiguration) Vollzugriff. Du brauchst dazu keinerlei (Web-)Server, und vor allem brauchst du dazu kein PHP. Warum installierst du dir auf deiner Win2000-Kiste keinen Webserver mit PHP, auf den du dann deine Linux-Kiste als Client zugreifen läßt?

      Der Linux-Host ist der Server für ein Webradio.
      Die Files liegen aber auf der Windows-Kiste, weil es für die schon eine sehr aufwändige Software gibt zum Bearbeiten und für die Sendesteuerung, nicht jedoch für das Senden selber.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau