2018年01月16日 arch linux cifs の日本語めもめも 〆(._.)メモメモ [長年日記]
_ ファイルシステムに日本語のはいっている fileserver の日本語が linux からの
mount で文字化けするのを修正したときのメモ.
filer server は drobo 5n2 (もっとも中の HDD は別のところからの移植品)
たぶん文字コードは UTF-8 だと思うが, RAID で単品で見れないので未確認.
mac からは Apple Share?, CIFS で mount して普通に見れているっぽいが
Linux から cifs で mount すると ???? 表示になってしまう.
構成としては
arch linux client urxvt + screen
<-- ssh --> arch linux server
<-- cifs --> drobo 5n2drobo の管理者名忘れたのかデフォルトで何か設定されたのか不明だがリセット.
disk 移植のせいか聞かれるタイミングがなかったが管理者名が漢字で "管理者" になっているという奇妙な現象に遭遇. 正直気付くのに結構かかった. いいたいことはいろいろある.とりあえず server に cifs mount
# mount -t cifs \\\\<server>\\<fsname> -o "username="xx",password="yy",iocharset=utf-8,rw,ver=3.0,uid=<uid>,gid=<gid>" /mnt/<somewhere>
で mount.
codepage=cp932 とかはどうもオプションからなくなっている模様. ver は明示的に付けていないとある時突然 mount が[1600421.488206] CIFS VFS: protocol revalidation - security settings mismatch
[1600421.491027] CIFS VFS: session ffff8d48e4301000 has no tcon available for a dfs referral request
[1600421.491728] CIFS VFS: cifs_mount failed w/return code = -5
[1600437.745625] No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
とかいって発狂することがあるっぽい. 付けなくてもいける時もあるから正直何がトリガーかちょっと謎.mount した terminal が UTF-8 対応で LANG が ja_JP.UTF-8 になってれば ls /mnt/
で日本語表示できるはず.
screen は以前とちがい日本語はそのままいけるっぽい.drobo 固有の問題だが共有の設定で cifs mount のユーザ writable に設定しても書き込めない. samba server の再起動か?
と思ってそれらしい UI 探すがそれらしいのがないので仕方なく再起動.
再度接続することで指定した uid/gid で書き込み出来る模様.client で使用する terminal を LANG=ja_JP.UTF-8 にしておく. あとは ssh で適当に.
どうも screen や cui filer も大体これで行けてるので UTF-8 を LANG にして起動したプロセスなら
通せるっぽいおまけ. LC_MESSAGES=C でとりあえずコマンドのメッセージは大体英語で出してくれるっぽいので当面 LANG=ja, LC_MESSAGES=C で運用予定.