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

Leap 42.3 nfs-mounts auf 13.2 und Zeichensatz

Hallo Forum,
ich baue gerade einen neuen Fileserver unter OpenSuse Leap42.3 auf.
Zur Altdatenübernahme möchte ich per nfs (nfs) auf die bestehenden exports des alten Servers (OpenSuse 13.2) zugreifen.

Auf diese exports greife ich seit Jahren von anderen 13.2er Servern und 14.04er Ubuntu-Clients problemlos zu.

Von 42.3 funktioniert das zwar prinzipiell, scheitert aber in den Fällen, in denen ein Verzeichnis- oder Dateiname Umlaute enthält. Da heißt es dann: "X existiert nicht".
Benenne ich ein betroffenes Verzeichnis um, bspw. "Ätsch" in "Aetsch", dann funktioniert alles.

Wie kann ich die Altdaten auch mit Umlauten lesen?

Stichworte, die ich gefunden habe sind iocharset=utf8 und ...locale... setzen.
Ich komme damit aber nicht weiter und bräuchte Eure Hilfe.

Vielen Dank schon mal.
Gruß,
Radiergummi
 

marce

Guru
poste doch mal die Samba-Konfig und den Mount-Befehl.

Sinnvoller wäre aber vermutlich, die daten vom alten auf den neuen Server per rsync zu übertragen.
 
nfs v.3x konnte kein utf8, nfs v.4x kann und WILL. D.h. deine alten Filenamen wurden irgendwie_codiert.
Prinzipiell liefert ein nfs_server die Namen wie sie sind, erst der empfangende nfs_client codiert, oder eben nicht. Das neue libnfs will UTF-8. Da hakt es dann.

Ich würde die neue Installation nicht herunterbrechen auf v.3 (was möglich wäre), sondern die alten Dateinamen am alten System konvertieren, also bereinigen.
Dem alten nfs_server ist das egal.
Siehe dazu
# convmv

Problem:
Lesen von nfs_alt mit nfs_alt ist dann nicht mehr möglich.

Gruß
Gräfin Klara
 
OP
R

radiergummi

Member
ich habe mir convmv nachinstalliert.

Das Programm sagt, die Dateinamen wären bereits UTF-8-kodiert, weswegen es nichts zu tun gäbe. Hmm.
Sehr praktisch finde ich, daß das Programm erstmal von einem Testlauf ausgeht.

Das Quell-FS (13.2) ist ein XFS. (NFSv3 Server)
Auf dem Zielsystem habe ich mount-points in btrfs- und xfs-Filesysteme probiert. Kein Unterschied.

Gibt es weitere Ideen?

Danke und Gruß,
Radiergummi
 
Am neuen System noch nfs_v3? Sicher?
Andererseits, wenn am server schon alles utf-8 ist (was wir nun wissen) und der client nfs_v3 sowieso nicht kodiert, sollte es funktionieren.
Teste am Ziel mit ext4.
 
OP
R

radiergummi

Member
ich habe eben das Quellsysystem auf nfsv4 umgestellt.

Am Zielsystem fragt der nfs-Client für jeden zu mountenden export nach der nfs-Version. Das habe ich angepasst.

Geändert hat sich dadurch nichts.

Ich frage mich langsam, ob es überhaupt an nfs liegt.

Gruß,
Radiergummi
 
radiergummi schrieb:
Ich frage mich langsam, ob es überhaupt an nfs liegt.

Die Frage ist nun berechtigt ... seltsam, seltsam

Was ist mit
# ls -la /mnt/mein_guter_alter_nfs_server
Umlaute auf der console ok?

# cp /mnt/mein_guter_alter_nfs_server/üöä.. /tmp
# ls -la /tmp
Umlaute auf der console ok?
 
OP
R

radiergummi

Member
Gräfin Klara schrieb:
Was ist mit
# ls -la /mnt/mein_guter_alter_nfs_server
Umlaute auf der console ok?
das habe ich auch schon gemacht. Das ls-Ergebnis ist in etwa so: "Gr??fin Klara"
beim Kopieren sagt er:
Code:
cp: omitting 'G'$'\303\244''fin Klara'
und macht nichts.
 
radiergummi schrieb:
Gräfin Klara schrieb:
Was ist mit
# ls -la /mnt/mein_guter_alter_nfs_server
Umlaute auf der console ok?
das habe ich auch schon gemacht. Das ls-Ergebnis ist in etwa so: "Gr??fin Klara"
beim Kopieren sagt er:
Code:
cp: omitting 'G'$'\303\244''fin Klara'
und macht nichts.

Zusammenfassung:
# convmv -> sagt, am alten system ist alles utf8
nfs_v3_server am alten system überträgt alles wie es ist und nfs_v4_client achtet am Ziel, dass es utf8 ist.

Das Problem kann nur mehr an deinem neuen Zielsystem liegen und nicht an nfs

was sagt am neuen system
# locale
?
 
OP
R

radiergummi

Member
Du kannst Gedanken lesen
habe ich gerade gemacht.

Code:
LANG=POSIX                                                                                                                                   
LC_CTYPE=POSIX                                                                                                                                         
LC_NUMERIC="POSIX"                                                                                                                                     
LC_TIME="POSIX"                                                                                                                                        
LC_COLLATE="POSIX"                                                                                                                                     
LC_MONETARY="POSIX"                                                                                                                                                        
LC_MESSAGES="POSIX"                                                                                                                                                        
LC_PAPER="POSIX"                                                                                                                                                               
LC_NAME="POSIX"                                                                                                                                                                
LC_ADDRESS="POSIX"                                                                                                                                                             
LC_TELEPHONE="POSIX"                                                                                                                                                           
LC_MEASUREMENT="POSIX"                                                                                                                                                         
LC_IDENTIFICATION="POSIX"
LC_ALL=

EDIT

und auf dem Quellsystem
steht LC_CTYPE auf
Code:
LC_CTYPE=de_DE.UTF-8
 
Ja, hier liegt das Problem. Mit Posix kann es nicht funktionieren,
Tut mir leid. Wir sind von hinten nach vorne, das hätte nicht sein müssen ... egal.

So sieht es bei mir aus:
Code:
LANG=en_US.utf8
LC_CTYPE=en_US.utf8
LC_NUMERIC=de_DE.utf8
LC_TIME=de_DE.utf8
LC_COLLATE=C
LC_MONETARY=de_DE.utf8
LC_MESSAGES=en_US.utf8
LC_PAPER=en_US.utf8
LC_NAME=en_US.utf8
LC_ADDRESS=en_US.utf8
LC_TELEPHONE=en_US.utf8
LC_MEASUREMENT=de_DE.utf8
LC_IDENTIFICATION=en_US.utf8
LC_ALL=
Meines ist ein Mischmasch aus alles english aber Zeit, Geld, etc, Deutsch
Pass das an deine Bedürfnisse an, dann ist das Problem behoben

Gruß
 
radiergummi schrieb:
Gräfin Klara schrieb:
Pass das an deine Bedürfnisse an, dann ist das Problem behoben

mach ich sofort, wenn Du mir sagen könntest, wie das geht.

Da muß ich leider passen. Diese Einstellungen sind sehr distributionsabhängig und die verwenden die unterschiedlichsten Werkzeuge.
Ich habe von OpenSuse keine Ahnung. Hier muß dir jemand weiterhelfen, der sich mit OpenSuse Leap auskennt.
Hab ein bißchen Geduld, es wird sich schon jemand melden.

Gruß
Gräfin Klara
 

marce

Guru
Was passiert denn nun eigentlich, wenn Du die Daten per SCP / rsync vom alten auf den neuen Server kopierst und nicht über die Samba-Krücke? Werden sie dann auf dem neuen Server richtig angezeigt?

(weil grundsätzliche sollten sowohl OS als auch Samba damit problemlos klar kommen - nur beim kopieren von Samba auf Samba muss er komische Konvertierungen durchführen...)
 
marce schrieb:
Was passiert denn nun eigentlich, wenn Du die Daten per SCP / rsync vom alten auf den neuen Server kopierst und nicht über die Samba-Krücke?

Das kann ich dir gerne sagen.
Wenn der rsyncd mit -conv kompiliert wurde, dann werden alle Namen nach Posix konvertiert und sind damit am Zielsystem falsch.
Es ist vor einer Übertragung der Daten unerlässlich, das Zielsystem in Ordnung zu bringen.
Im Übrigen diskutierten wir hier über nfs und nicht cifs.
 

marce

Guru
Argl. Ich sollte so spät nichts mehr nebenbei machen. Da reicht das Gehirn wohl nur für einen Task...

Trotzdem würde ich versuchen, was passiert, wenn man die Daten "nativ" kopiert und nicht über NFS. Ich hab so ein paar NFS-Migrationen hinter mir und das war grundsätzlich immer problemlos. Daten von Server 1 auf Server 2 ge-rsyncd, NFS hochfahren, fertig. Auch bei Umstellungen von v3 auf v4. Und eigentlich auch unabhängig von irgendwelchen Locales.
 
OP
R

radiergummi

Member
Da muß ich leider passen.

Ich danke Dir auf jeden Fall schon mal für die Hilfe bis hierher.

ALSO:
wer kann mir sagen, wie ich in Leap42.3 das locale LC_CTYPE setze?

Versucht habe ich:
yast/sysconfig editor/System/Environment/Language
dort habe ich unter RC_LC_CTYPE >UTF-8< ohne die Klammern eingetragen

und

yast/language/details/ locale für root "nur CTYPE"

nach reboot, keine Änderung

yast/language/details/ locale für root "JA"

alle Werte unter locale auf UTF-8 geändert.

Kann das richtig sein? Auf dem 13.2er System ist nur der Wert für LC_CTYPE auf UTF-8 gesetzt der Rest sitzt auf "POSIX"

Danke für Tipps.
 
Oben