NetatalkとSambaの共存の続編の続編の続編[追記あり]
NetatalkとSambaの共存、と言うか、OS XからSMBサーバを利用する時の設定方法の問題になってきました…。
- NetatalkとSambaの共存[追記あり] : プラスα空間 (2014年7月9日)
- NetatalkとSambaの共存の続編 : プラスα空間 (2014年7月11日)
- NetatalkとSambaの共存の続編の続編 : プラスα空間 (2014年7月11日)
OS XのSMBサーバに対するアクセスの実装が悪いのか、FreeBSD(ZFS)に設定しているsmb.conf(smb4.conf)の設定が悪いのかを切り分ける必要があります。そのために、本物のWindowsにOS XからSMBで接続してみました。
- ABC-no-res.txt … メタデータ、リソースフォーク無しのテキストファイル
- ABC.txt … リソースフォーク付きのテキストファイル(カスタムアイコンを付けた)
- ABC.png … メタデータ付きのpngファイル(画面コピー)
これらのファイルを、Windowsにコピーしてみると、メタデータもリソースフォークも含めて、きちんとコピーされます。"._"で始まる隠しファイルも作られません。
streamコマンドで確認すると、代替ストリームに保存されている事がわかります。
“ABC-no-res.txt"には、メタデータもリソースフォークも付いていないので、何も表示されません。
試しに、"streams -d *"で、代替ストリームを消してみると、メタデータもリソースフォークも失われ、カスタムアイコンも無くなりました。
この結果からすると、OS XのSMBサーバに対するアクセスの実装は、きちんとできている様です。
一方、これらのファイルを、FreeBSD(ZFS)で動かしているSamba3.6またはSamba4.1にコピーしてみると、カスタムアイコン(リソースフォーク)が見えなくなります。FreeBSDのlsexattrコマンドで調べると、拡張属性が無くなっている事がわかります。
現時点のsmb.conf(smb4.conf)はこんな感じです(抜粋)。
[global]
dos charset = CP932
display charset = UTF-8
ea support = yes
kernel oplocks = no
oplocks = no
level2 oplocks = no
unix extensions = no
[public]
path = /export/CIFSRoot
public = yes
guest only = yes
guest ok = yes
writable = yes
read only = no
vfs objects = streams_xattr
ea support = yesとvfs object = streams_xattrを設定すれば、拡張属性を代替ストリームとして扱ってくれるはずなのですが…。
smb.confの設定は、次の所を参考にさせていただいています。ありがとうございます。Thank you!
ちゃんと、smb.confのマニュアルを読んで、丹念にsmb.confを見直して設定するしかなさそうです。
ちなみに、代替ストリームを使わずに、メタデータやリソースフォークを、"._"で始まるファイルに保存させる様にすれば、カスタムアイコンなどがきちんと反映されます。
(追記 2014-07-17 20:20)
書き忘れていました。この検証をする事になったきっかけは、HATさんからのアドバイスです。ありがとうございます。
@oichinokata OS XからWindowsへSMBで各種メタデータ付きのファイルをコピーし、それをWindowsからsambaへコピーするとどうなるでしょうか。これで問題が出たら、smb.confの問題です。問題が出なかったらOS XのSMB実装の問題です。
— HAT (@HAT0001) July 14, 2014
ディスカッション
コメント一覧
まだ、コメントがありません