ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × « Portsにnetatalk 3がキタ━━━(゚∀゚)━━━ !!!!! gptzfsboot error 49 » Portsにnetatalk 3.0.1がキタ━━━(゚∀゚)━━━ !!!!! この問題はnetatalk 3.0.2で修正されました。 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 Comments netatalk 3.0と3.0.1はパスの扱いに問題があり、以下のような場合、CNID関連のエラーが出ます。 pathパラメータの値がシンボリックリンクを含むとき pathパラメータの値がスラッシュ「/」で終わっているとき basedir regexパラメータの値がシンボリックリンクを含むとき パスをネストしているとき (これは昔から禁止) gitのdevelopブランチで修正したので次の3.0.2では問題ありません。 [現在の対処法] 1番と2番はシンボリックリンクを展開して、最後にスラッシュを付けずに記述してください。 3番を解決する方法はありません。/etc/passwdを書き換えるか、[Homes]ではなく一般ディレクトリにする程度ですね。 4番はもともと禁止なので昔から不安定です。3.0で更に悪化しただけです。 FreeBSDでなんとか頑張っている実例。 Portsにnetatalk 3.0.1がキタ━━━(゚∀゚)━━━ !!!!! [クソゲ〜製作所] そもそもFreeBSDでは3.0も3.0.1もマトモに動かないのに、どうしてportsに上がったんだろう。 [修正の適用方法] 方法A gitコマンドで最新版を入手する。developブランチに切り替えるのを忘れないでください。 $ git clone git:git.code.sf.net/p/netatalk/code netatalk-code $ cd netatalk-code $ git checkout develop $ git branch * develop master 方法B netatalk 3.0.1に以下の5のパッチを順に当てる。 1.realpath_immediately.patch 2.realpath_safe.patch 3.basedir_regex_symlink.patch 4.remove_realpath_afp_openvol.patch 5.ignore_duplicated_or_nested.patch 方法C netatalk 3.0.2が出るのを待つ。 [修正後の動作] 1番と2番は全く問題ないです。 3番は、シンボリックリンクを展開したパスを記述してください。例えばホームディレクトリが/home/bobで、シンボリックリンクが/home → /u… 1 | netatalk 3の設定でパスの扱いが変 | 2012-10-06 02:16 | reply afpd.confじゃなくてafp.conf 2 | HAT | 2012-10-06 02:23 | reply 詳解とご指摘有難うございます。afp.confに修正しました。 3 | Decomo | 2012-10-09 11:49 | reply Name E-Mail Website 人間の証明として、ボックス内の全ての文字を入力してください。 この項目は空のままにして下さい:Preview Comment blog/2012/2012-09-30.txt 最終更新: 2015-01-06 11:51(外部編集)