FreeBSD QandA 201
Q. macintoshに対するファイルサーバをFreeBSD箱をつかってやりたいのです
が、capとnetatalkの違いをおしえてください。
A. だいたい以下のとおりです。(追加歓迎)
実装方式:
cap: カーネル外のdaemon群(bpfでappletalkパケットをつかまえる)
netatalk: カーネル内のappletalk socketインタフェース + daemon
インストールの手間:
cap:
/usr/ports/net/capにいって、root権限で
# make; make install
あとは設定ファイルを書く。
netatalk:
カーネルコンフィギュレーションファイルに以下を追加して
カーネルをmakeし、カーネルをとりかえる。
options NETATALK
リブートする。
さらに、/usr/ports/net/netatalkにいって、root権限で
# make; make install
あとは設定ファイルを書く。
ファイルシェアリング:
resource fork:
cap 各ディレクトリ/.resource/nantara に保存
netatalk: 各ディレクトリ/.AppleDouble/nantara に保存
finder関連情報:
cap: ディレクトリ/.finderinfo/nantara に保存
netatalk: 各volume/.AppleDesktop/nantara に保存
ゴミ箱:
cap: ファイルを捨てると、各volume/Network\ Trash\ Folder/* に入る
netatalk: ファイルを捨てると、各volume/Network\ Trash\ Folder/* に
入る。ただし、両者のファイルの扱いかたに互換性はないように見える。
非英字のファイル名:
cap:
(capをpkg_deleteしちゃったのでわかりません。だれか書いて)
netatalk:
日本語はshift jisのまま、非ascii文字だけ
:xx (xは16進数、小文字)
に変換して格納される。つまり、「おはよう」というファイル名は
FreeBSD側からみると
:82:a8:82:cd:82:e6:82:a4
に見える。他の言語の場合、知らない。
変換される文字種について正確に知りたい場合ソースを参照のこと。
速度について:
netatalkの方が速くて快調、という意見が多数を占めている。
そのほか:
「システムデフォルトで設定したmacintoshのボリュームだけマウントでき、
unix的にはなにもできないユーザを設定したい」場合、capではhome
directoryやshellを持たないuidを作って解決することができる。すなわち、
/etc/passwdにこんなエントリを作って、macintoshからのmount専用にするこ
とができる。
maconly:*:1024:2000:macintosh only client:/nonexistent:/nonexistent
netatalkの場合、セレクタの認証のところでhome directoryを持たないユーザ
名を入力すると拒否される。これは~/.AppleVolumes (ユーザごとのボリュー
ム設定ファイル)を読みにいこうとして失敗するためであろう。つまり、home
directoryは必ず作らないといけないようだ。
capでは、親ディレクトリに.resourceや.finderという名前のディレクトリが
ない場合には、子のディレクトリにもそれらは作られない(そのかわり、
resource forkつきファイルが格納できなかったり、finderの管理情報が保存
されなかったりする)。これはunixファイルシステムとの互換性を重視した設
計と言える。
netatalkでは勝手にどんどん.AppleDoubleが掘られるので、迂闊にmac側から
ファイルを書くと、時としてディレクトリを掘られたくないのに勝手に掘られ
ちゃって悲しむかもしれない。
capでは、デフォルトの設定ではゲストとしてのボリュームマウントが許可さ
れていないが、netatalkの場合デフォルトで許可されているので注意する
(afpd -Gとするとゲストのマウントは不許可になる)。
capのボリュームをマウントしたときmacintoshの画面に現れるアイコンは、
BSD悪魔くんなのでかわいい:-) netatalkはネットワークの生えた地球儀であ
る。
cap <-> netatalkの乗り換えツールは見たことがないので、最初からどちらか
に決めた方がよいだろう。
MacOSのボリュームサイズ制限(7.1*で2GBytes/7.5*で4Gbytes)を越えるような
partitionをmacからマウントしたときのふるまいが異なる。capはほんとのディ
スクサイズや空きサイズを伝えてしまうので、Mac側で容量が負になったりし
て書けないようになる。netatalkでは嘘の値を渡してくれるので、とりあえず
書ける。(From kanai@hallab.co.jp)
capで20MBytesを越えるファイルのコピーが失敗していた。netatalkではそう
いうことは経験していない。(From kanai@hallab.co.jp)
プリンタシェアリング: (やったことないので誰か書いて)
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。