FreeBSD Portsのnetatalkが3.0.1になっていたのでインストールした。
前のバージョンはビルドでこけていたが、今回はすんなり入った。
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