====== Portsにnetatalk 3.0.1がキタ━━━(゚∀゚)━━━ !!!!! ======
この問題はnetatalk 3.0.2で修正されました。
FreeBSD Portsのnetatalkが3.0.1になっていたのでインストールした。
[[:blog:2012:2012-09-07|前のバージョンはビルドでこけていた]]が、今回はすんなり入った。
[[http://www003.upp.so-net.ne.jp/hat/netatalk/andsamba.html|HATさんのところ]]を参考に''afp.conf''を書いて、netatalkを起動。Macからログインユーザーのホームディレクトリにアクセスしてみたら、「Something wrong with the volume's CNID DB, using temporary CNID DB instead. Check server messages for details!」ウィンドウがキタ━━━(゚∀゚)━━━ !!!!!
ログを見ると''cnid_metad {netatalk_conf.c:1316} (E:Default): getvolbypath("/usr/home/Decomo"): no volume for path''とのこと。はて、''/usr/home/Decomo''は間違いなく存在してるんだけどな…。ならばと、''basedir regex = /usr/home''にしてみると、今度は共有一覧にホームディレクトリが出なくなってしまった。passwdのホームディレクトリパスは''/home''始まりだから、マッチしなくなったんだろうね……多分。
他の共有ボリュームも同様のエラーが出たので調べてみたら、netatalk 2とはシンボリックリンクの扱いが変わったっぽい?
うちのFreeBSD鯖はMacの流儀に合わせ、''/Volumes''以下に必要なボリュームのシンボリックリンクを置き、それらを使うようにしてある。netatalkも例外ではなく、''/Volumes/XXXX''を公開する設定にしていたのだが、これらボリュームで軒並み Somethin wrong... CNID DB と、no volume for pathが発生していた。
''path''を実体に置き換える事で問題は無く使えるようになったが、俺的運用では微妙に不便というか気持ち悪い。
てか、この仕様だとFreeBSDで''[Homes]''を使ったログインユーザー毎のホームディレクトリ共有が無理っぽい気が。
''basedir regex = /home''だと''getvolbypath''で失敗するし、かといって''/usr/home''にするとpasswdからユーザーのホームディレクトリを引けなくなる。オワタ。設定か何かで回避出来るんだろうか…?
とりあえず、家鯖は自分一人しか使ってないので、通常ボリュームとしてホームディレクトリを共有する設定にした。最終的なafp.confはこんな感じ。
;
; Netatalk 3.x configuration file
;
[Global]
; Global server settings
vol preset = _DEFAULT
log file = /var/log/netatalk.log
[_DEFAULT]
file perm = 0600
directory perm = 0700
;[Homes]
;basedir regex = (/home|/usr/home)
;home name = $u
[Decomo]
path = /usr/home/Decomo
[Time Machine]
;path = /Volumes/TimeMachine/
path = /zdata3/NFC/backup/TimeMachine
time machine = yes
vol size limit = 2097152
[Data]
;path = /Volumes/Data
path = /zdata3/NFC/data
[Public]
path = /usr/home/PUBLIC
file perm = 0660
directory perm = 0770