[netatalk-ja:0386] Re: rsync -Eでもコピーされない._ファイルについて

HAT hat @ fa2.so-net.ne.jp
2014年 9月 24日 (水) 01:12:03 JST


HATです。

失礼しました。
サーバ側の拡張属性が使えない状況を忘れてました。
その状況はほとんど確認したことがないので、今試しました。

実運用しているサーバのafp.confを見せてください。

サーバ側のファイルシステムが拡張属性に対応していない場合、
netatalk 3.xはnetatalk 2.xに似た動作をします。
すなわち.AppleDoubleディレクトリを作り、その中にAppleDouble Header fileを
作ります。
このAppleDouble Header fileの中にFinder InfoとResource Forkが格納されます。

そちらのサーバの場合、Netatalkが*クライアント側*の拡張属性に対応していない
状態になっているようです。
この場合、OS Xは拡張属性を保存する場所がないので、「._」で始まる
AppleDouble Header fileを作り、その中に保存します。
既にみている通り、Finder InfoはオールゼロでResource Forkはダミーであり、
拡張属性が保存されています。

つまり、Finder InfoもResource Forkも拡張属性も保存されている可能性が
高いです。
rsyncでnetatalkからOS Xにコピーしたとき、「._」で始まるファイルの中に
保存されている拡張属性が、HFS+上では本物の拡張属性になります。
したがって、「._」で始まるファイルはHFS+上に存在しなくて問題ありません。

正しくコピーできているか確認するには、
netatalk側ではapple_dump、OS X側ではxattr -p を使ってください。
これらを比較して内容が同じであれば正しくコピーできています。

色々と設定を変えてテストしているようですが、実運用しているサーバの
設定は変更しないでください。
Netatalk 2からNetatalk 3への自動変換はある程度対応していますが、
設定変更の場合は自動変換できません。
サーバ側のファイルシステムを拡張属性非対応から対応に変更すると、
メタデータの保存方法が変わってしまい、うまく変換できません。
今回の場合、「._」で始まるファイルの中の拡張属性が変換できず喪失すると
思います。
また、「appledouble =」や「ea =」も変更しないでください。
これらのパラメータはデフォルトで最良な状態になるように設計されているので、
使わないのが一番ですが、もし既に設定しているなら変更しないでください。

あと、ログをみるようにしてください。
サーバ側のファイルシステムが拡張属性に対応していない場合、以下のような
ワーニングが出ていると思います。

volume "XXX" does not support Extended Attributes or read-only volume

それから、色々とググって調査されたようですが、オススメのページは
以下の場所で紹介しています。
http://hatx.blog.so-net.ne.jp/netatalk_status
世の中には間違った記述をしているページも多いですが、そういうページには
リンクしていません。

CentOSに関しては以下のページをどうぞ。
http://netatalk.sourceforge.net/wiki/index.php/Netatalk_3.1.6_SRPMs_for_Fedora/RHEL/Scientific_Linux/CentOS
拡張属性の件も書いています。

-- 
HAT


netatalk-ja メーリングリストの案内