home «前の日記(2008-04-01) 最新 次の日記(2008-04-18)»

いろいろ
Seize the day.

2004|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|07|

2008-04-07 [長年日記]

[comp] Samba で日本語名フォルダがうまく扱えない時は

以前 Samba 2 サーバ上にあったファイルをごっそり他のサーバに移し,そこで新たに Samba 3 サーバを立ち上げた.ところが,日本語を含むフォルダ名にアクセスしようとすると困ったことが起こる.ちなみに旧サーバでは coding system = SJIS だった.

(1) 文字コードを EUC にした場合:

smb.conf で,
   display charset = CP932
   unix charset = EUC-JP      # EUCJP-MS でも同様
   dos charset = CP932
とすると,日本語名ファイルを含むフォルダにアクセスできない.まあこれは旧サーバが SJIS だったからだろう.ちなみにこれは既存のフォルダの場合のみの現象で,新規フォルダの作成は問題ない.

(2) 文字コードを SJIS or UTF-8 にした場合:

smb.conf で,
   display charset = CP932
   unix charset = SJIS
   dos charset = CP932
とすると,既存のフォルダの閲覧は問題ないが,新規フォルダを作成すると奇妙なことが起こる.ファイル階層のデリミタ (UNIX では「/」,Windows では「\」) がアンダースコア「_」に変換されてしまい,階層情報が失われてしまうようだ.
例えば,「フォルダ1」の内部に「ファイル1」「ファイル2」を作り,Samba 経由で「フォルダ1」をコピーしたとしよう.
  • フォルダ1
    • ファイル1
    • ファイル2
すると,コピー先に現れるのは,「フォルダ1」「フォルダ1_ファイル1」「フォルダ1_ファイル2」という 3 つのファイルエントリになってしまう.
  • フォルダ1 (中身は実質的に空)
  • フォルダ1_ファイル1
  • フォルダ1_ファイル2
というわけで困り果てて,smbchartool の sjistoeuc を使って,日本語ファイル名をことごとく EUC に直したところ,問題なく動くようになった.
このエントリーをはてなブックマークに追加 はてなブックマーク数 はてなブックマークコメント   このエントリーを livedoor クリップに追加 livedoor クリップ数 このエントリーを del.ici.ous に追加 このエントリーを buzzurl に追加 buzzurl クリップ数

お名前:
E-mail:
コメント:
[TrackBack URL: http://nao.s164.xrea.com/td/tb.rb/20080407]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]

以下の広告はサーバによって自動的に挿入されています.


Copyright © 2004-2006, nao. All rights reserved.