NetatalkとSambaの共存の続編の続編の続編[追記あり]

2016年1月23日Mac,netatalk,パソコン・インターネット

NetatalkとSambaの共存、と言うか、OS XからSMBサーバを利用する時の設定方法の問題になってきました…。

OS XのSMBサーバに対するアクセスの実装が悪いのか、FreeBSD(ZFS)に設定しているsmb.conf(smb4.conf)の設定が悪いのかを切り分ける必要があります。そのために、本物のWindowsにOS XからSMBで接続してみました。

  • ABC-no-res.txt … メタデータ、リソースフォーク無しのテキストファイル
  • ABC.txt … リソースフォーク付きのテキストファイル(カスタムアイコンを付けた)
  • ABC.png … メタデータ付きのpngファイル(画面コピー)

これらのファイルを、Windowsにコピーしてみると、メタデータもリソースフォークも含めて、きちんとコピーされます。"._"で始まる隠しファイルも作られません。

OS XからWinにコピー

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さんからのアドバイスです。ありがとうございます。

Posted by お市のかた