FreeBSD QandA 201

FreeBSD QandA

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 まで お知らせください。