HATさんのNetatalk and Samba(昔のページ。今はアーカイブ)

http://web.archive.org/web/20171216211207/http://www003.upp.so-net.ne.jp/hat/netatalk/andsamba.html

Netatalk and Samba(HATさん)

2017.03.20

Unix系OSをWindowsのファイルサーバとする場合、SambaというSMB (CIFS)用のソフトウェアがあります。
一方、現在のmacOSはAFPを縮小し、SMBに移行しつつあります。
このページでは、MacからはNetatalk、WindowsからはSambaへ接続しつつ、Sambaのみに移行する方法を述べます。

注: Time Machine機能はAFPのみなのでNetatalkが必要です。

このページはNetatalk 3.1.xについて説明しています。
古いバージョンは仕様が異なるので、以下のページをご覧ください。
Netatalk 2.xから3.xへ移行する人のための情報 – 仕様が大幅に変更。
Netatalk 2.2.x and Samba – Spotlight対応なし。設定が複雑。メタデータを隠しディレクトリに保存。
Netatalk 3.0.x and Samba – Spotlight対応なし。設定が簡潔。メタデータを可能な限り拡張属性に保存。無理なら隠しファイルに保存。

ここでは特に触れていない速報、バグ情報、各プラットフォームでのインストール実例などはblogの方に書いています。
Netatalk and Samba:HAT blog
各ファイルシステム/プロトコルの差異

以下のように、MacとWindowsは仕様が異なるので、20年以上NetatalkとSambaを併用するしかありませんでした。
しかしながら、近年になってAppleはSMBを独自拡張し、Macの要件を満たすようにしました。
現在のSambaはvfs_fruitというvfsモジュールを導入し、このSMB独自拡張を使えるようにしています。

MacのファイルシステムHFS+及びファイル共有プロトコルAFPは、以下のような特徴を持ちます。

データフォークとは別にリソースフォークがある (サイズはデータフォーク同様巨大にできる)
Finder情報と呼ばれるメタデータがある (サイズは32Byte固定)
拡張属性(EA)と呼ばれるメタデータがある (サイズ制限は3802Byte)
ファイル名禁止文字は「:」のみ
ファイル名の大文字小文字の区別は設定次第 (通常は区別なし)
ファイル名は正規分解したUnicode (UTF-16)だが、一部例外アリの独自ルール
タイムスタンプは1s単位
ファイルやディレクトリにCNIDと呼ばれる番号を付けて管理する
Macはメタデータが消えると致命的な場合がある

macOSで開発中のファイルシステムAPFSは、以下のような特徴を持ちます。

データフォークとは別にリソースフォークがある (サイズはデータフォーク同様巨大にできる) (HFS+と同じ)
Finder情報と呼ばれるメタデータがある (サイズは32Byte固定) (HFS+と同じ)
拡張属性(EA)と呼ばれるメタデータがある (サイズ制限は未確認)
ファイル名禁止文字は「:」のみ (HFS+と同じ)
ファイル名の大文字小文字の区別は設定次第 (開発版は区別あり)
ファイル名は正規分解したUnicode (UTF-16)だが、一部例外アリの独自ルール (HFS+と同じ)
タイムスタンプは1ns単位 (HFS+と異なる)
ファイルやディレクトリにCNIDと呼ばれる番号を付けて管理しない (HFS+と異なる)
macOSはメタデータが消えると致命的な場合がある

WindowsのファイルシステムNTFS及びファイル共有プロトコルSMBは、以下のような特徴を持ちます。

メインデータストリームとは別に代替データストリームがある (サイズはメインデータストリーム同様巨大にできる)
OS/2互換の拡張属性もある (ほとんど使われない)
ファイル名禁止文字は「\/:*?”<>|」
ファイル名の大文字小文字は区別しない
ファイル名は正規化しないUnicode (UTF-16)である
タイムスタンプは100ns単位
Windowsはメタデータが消えてもさほど問題がない

ところで、Unix系の一般的なファイルシステムは以下のような特徴を持ちます。

元々は拡張属性の概念がないが、最近は拡張属性が使えるものが多い
拡張属性のサイズ制限は一般的に128kB程度
ZFSをSolaris系OSで使う場合に限り、拡張属性のサイズを巨大にできる。これは拡張属性というよりもフォークやデータストリームの概念に近い。
ファイル名禁止文字は「/」のみ
ファイル名の大文字小文字は区別する
ファイル名の文字コードは設定次第だが、最近は正規化しないUnicode (UTF-8)である
タイムスタンプは歴史的に1s単位だが、最近だと1ns単位が多い。

ファイル本体のみ正常に扱うことが出来れば他のメタデータは必要ないという考え方もありますが、メタデータはOSやアプリケーションが何らかの理由で扱うため、これを喪失すると思わぬトラブルに遭遇します。
Mac/Winファイルサーバ管理者は、これらを理解して運用しなければならない苦痛を強いられているのが現状です。

Mavericks以降同士のファイル共有はSMBが優先:HAT blog
NetatalkとSambaの統合:HAT blogsy
Netatalkのインストール手順

以下の場所で様々な環境でのインストール実例を紹介しています。

参考: NetatalkとSambaの近状:HAT blog

地道に自分でインストールする場合は、まずライブラリ類のインストールから開始します。これらのライブラリは大抵のOSでパッケージが配布されています。

参考: Netatalk 3.1 Manual – Chapter 2. Installation
Berkeley DB (絶対必要)

CNIDを扱うためにBerkeley DB 4.6以上が必須です。
パッケージの名前は、Debian系の場合libdb4.8-dev、RedHat系の場合libdb-develやdb4-develというように、見落としやすいので注意してください。

Berkeley DBのありか: Oracle Berkeley DB
MySQLまたはMariaDB (大規模サーバ向け)

CNIDを扱う方法として、MySQLサーバを使う方法も用意されています。大規模サーバ(Clustering/HA)向けだそうです。
あまり調べてないので詳しい話はパス。
Libgcrypt (絶対必要)

下の「ユーザ認証」のところで説明するように、暗号化パスワードDHX2を使う為にLibgcryptが必要です。これがないとビルドできません。

Libgcryptのホームページ: Libgcrypt – Free Software Directory
OpenSSLまたはLibreSSL (古いMacに必要)

下の「ユーザ認証」のところで説明するように、古いMacは暗号化パスワードDHX2に対応していないので、DHXを使う為にOpenSSLまたはLibreSSLが必要です。

OpenSSLのホームページ: OpenSSL: The Open Source toolkit for SSL/TLS
LibreSSLのホームページ: LibreSSL
Bonjourのためデーモン (強くお勧め)

Bonjour (Zeroconf)を使うと、Mac OS X 10.2以降で便利になります。Macからサーバアイコンが見える、そのサーバアイコンを変えることができる、Time Machineボリュームが見える等の効能があります。
特にTime Machineを使っている人は是非インストールしてください。Macで重大な問題が発生した場合、修復ディスクやインストールメディアで起動してTime Machineからリストアするわけですが、このときBonjourにてバックアップを発見しなければなりません。Bonjourが動いていないと発見できないので、手動で煩雑な処理をする必要があります。テンパっているときにその作業ができますか?

ZeroconfデーモンはAvahiとmDNSResponderのどちらか一方が使えます。
大抵のLinuxディストリビューションはAvahiパッケージを用意しています。自分でAvahiをビルドする場合はD-Busサポート(–enable-dbus)を有効にしてください。
一方、BSD系やSolaris系だとmDNSResponderが好まれるかもしれません。

Avahiのホームページ: Avahi
mDNSResponderのソースのありか: Source Browser
Tracker (使う人だけ)

通常のファイル検索は遅いしファイル名でしか検索できません。
Trackerを使うとSpotlight検索が使えるので、検索速度が劇的に速くなり、ファイルの中身も検索してくれます。
Time Machine専用で使っている人には不要でしょう。

最近の環境だとTrackerパッケージが用意されていますが、古い環境にはありません。自分でTrackerをソースからビルドするのは困難だそうです。
TrackerはGnome TrackerとかMeta Trackerと表記されている場合もあるので注意してください。

ビルド及び設定にはコツがいるのでNetatalkのドキュメントを読んでください。
Tracker自身のバージョン番号と、pkg-configにおけるバージョン番号は別なので注意してください。少なくともTracker自身のバージョンは0.7以上が必要とされますが、最近のバージョンでなければ正常動作しないという情報もあります。

ビルド方法: Chapter 2. Installation – Compiling Netatalk
設定方法: Chapter 3. Setting up Netatalk – Spotlight
Trackerのホームページ: Projects/Tracker – GNOME Wiki!
ACL関連ライブラリやOpenLDAP (使う人だけ)

Mac OS X 10.5 Leopard以降、パーミッションの扱いが「ディレクトリサービスを用いたUUIDベースのACL」というややこしいものになりました。これに対応しない場合、パーミッションの扱いが変です。
ばっちりパーミッションを扱うためには、ACL及びOpenLDAP対応でビルドする必要があります。
ACL関連ライブラリはOSによって異なるので、頑張って調べてインストールしてください。Debian系はlibacl1-devというパッケージです。RedHat系はlibacl-develというパッケージです。
OpenLDAPの設定はかなり面倒くさいので泣きたくなります。
Solaris系やFreeBSDでZFSを使う場合はOpenLDAPを使わなくてもACLが扱えるそうです(未確認)。

OpenLDAPのホームページ: OpenLDAP, Main Page
Kerberos (使う人だけ)

ケルベロス認証を使う環境のみ必要。
よく知らないのでパス。
libevent (まあまあ重要)

netatalkという名前のデーモンは、libeventライブラリ(バージョン2以降)を使って他のデーモン(afpd、cnid_metad等)を操ります。
configureオプションでは–with-libeventがデフォルトになっており、この場合Netatalkにバンドルされているlibevent2が使われます。
ただし、OS側がlibevent2を用意している場合は–without-libeventオプションを指定してOS側のものを使うことをお勧めします。もし将来libeventのセキュリティホールが発見されたとき、迅速に対策版にアップデートされるでしょうから安心です。
OS側のlibeventがバージョン1だったり、そもそも用意されていない場合はバンドル版を使ってください。

libeventのホームページ: libevent
tdb (意外と重要)

NetatalkはBerkeley DBを使ってCNIDを管理しますが、もしこれのデータベースファイルが壊れた場合、「Something wrong with the volume’s CNID DB, using temporary CNID DB instead.」という警告を出してリードオンリーに変更し、メモリ上でCNIDを管理します。このとき使われるのがtdbライブラリです。
configureオプションでは–with-tdbがデフォルトになっており、この場合Netatalkにバンドルされているlibtdbが使われます。
ただし、OS側がlibtdbを用意している場合は–without-tdbオプションを指定してOS側のものを使ってください。そうでないと2つのlibtdbがコンフリクトしてafpdが落ちる場合があります。

tdbのホームページ: tdb: Main Page
CrackLib (使う人だけ)

クライアントからパスワード変更するときに、強度をチェックするライブラリです。家庭内LANでは気にしないかもしれませんが、大規模サーバでは検討すべきかもしれません。
D-Bus (使う人だけ)

afpstatsコマンドを使ってユーザの接続状態を確認できますが、そのためにD-Busの機能を使います。
同様のコマンドにmacusersがあるので必要性は少ないです。

また、AvahiやTrackerもD-Busの機能を利用します。
DTrace (使う人だけ)

SolarisやBSD系のDtraceの機能を使って動的なトレースをとることができます。つまり解析用です。
Linuxの場合はSystemTapのDTrace互換機能を使うことができます。Debian系の場合systemtap-sdt-devパッケージ、RedHat系やSUSE系の場合systemtap-sdt-develパッケージによって有効になります。
iconv実装の確認 (Solaris系だけ要確認)

以下のコマンドを実行して、UTF-8とSHIFT_JISに対応していることを確認してください。

$ iconv -l

SolarisやOpenIndianaでは、「unicode」という名前のパッケージが入っていないとSHIFT_JISが扱えません。
NetatalkはSHIFT_JISのラッパーのような動作をおこなってMAC_JAPANESEを実装しているので、Mac OS 9以前から接続する場合は必要です。

最近のLinux系やBSD系は問題ないと思います。
関数iconv()はlibc実装とlibiconv実装の2種類がありますが、Netatalkの場合はどちらでも問題ありません。
古いNetatalkのアンインストール

古いバージョンのNetatalkをインストールしているなら、設定ファイルをバックアップしてから、バイナリ類の削除です。古いものが残っていると色々と悪さします。
ソースから入れていた場合は、そのソースのディレクトリに移動してmake uninstallです。

$ cd netatalk-xxx/
# make uninstall

パッケージで入れている場合は削除用のコマンドが用意されているでしょう。Debian系ならaptitude removeとかaptitude purge、RedHat系ならrpm -eです。
Netatalkのインストール

やっとNetatalkのインストールです。ソースはこちら。
Netatalk – Networking Apple Macintosh through Open Source

ソースを展開。

$ tar zxvf netatalk-XXX.tar.gz
または
$ tar jxvf netatalk-XXX.tar.bz2

出来上がったディレクトリに移動。

$ cd netatalk-XXX/

まず、configureのオプションを確認。

$ ./configure –help

大抵のライブラリのオプションはautoになっているので、正しくインストールされていれば指定する必要がありません。
とりあえずconfigureをおこない、最後の表示をみて、認識してない場合はライブラリの確認とオプションの設定をしてください。

では、configureしましょう。

$ ./configure \
–with-init-style=debian-systemd \
–without-libevent \
–without-tdb \
–with-cracklib \
–enable-krbV-uam \
–with-pam-confdir=/etc/pam.d \
–with-dbus-daemon=/usr/bin/dbus-daemon \
–with-dbus-sysconf-dir=/etc/dbus-1/system.d \
–with-tracker-pkgconfig-version=1.0

この例では、自動認識しないオプションだけを設定しています。自動認識するのにゴニョゴニョ設定すると、逆におかしくなるケースがあるのでお勧めしません。
–with-init-style=は、そのOSに適した起動サービスを有効にするオプションです。これについては、下の「Netatalkの起動」の項を参照してください。
PAMが有効になっている場合は、–with-pam-confdir=を正しく指定しないとログインできない可能性が大です。
afpstatsコマンドを使う場合は、–with-dbus-sysconf-dir=を正しく指定しないと正常動作動作しません。
Trackerを有効にするためには、pkg-configにおけるバージョン番号を指定しなければなりません。

configureが正常に終了すると、最後に要約が表示されます。

Compilation summary:
CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)
CFLAGS = -D_U_=”__attribute__((unused))” -g -O2
LIBS = -lcrack
PTHREADS:
LIBS =
CFLAGS = -pthread
TRACKER:
LIBS = -ltracker-sparql-1.0 -lgio-2.0 -lgobject-2.0 -Wl,–export-dynamic -lgmodule-2.0 -pthread -lglib-2.0
CFLAGS = -pthread -I/usr/include/tracker-1.0 -I/usr/include/tracker-1.0/libtracker-sparql -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
SSL:
LIBS = -L/usr/lib64 -lcrypto
CFLAGS = -I/usr/include/openssl
LIBGCRYPT:
LIBS = -lgcrypt
CFLAGS =
PAM:
LIBS = -lpam
CFLAGS =
WRAP:
LIBS = -lwrap
CFLAGS =
BDB:
LIBS = -L/usr/lib64 -ldb-5.3
CFLAGS =
GSSAPI:
LIBS = -L/usr/lib/x86_64-linux-gnu/mit-krb5 -Wl,-Bsymbolic-functions -Wl,-z,relro -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
CFLAGS = -isystem /usr/include/mit-krb5
ZEROCONF:
LIBS = -lavahi-common -lavahi-client
CFLAGS = -D_REENTRANT
LDAP:
LIBS = -lldap
CFLAGS =
LIBEVENT:
LIBS =
CFLAGS =
TDB:
LIBS = -ltdb
CFLAGS =
MySQL:
LIBS = -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -latomic -ldl
CFLAGS = -I/usr/include/mysql -fdebug-prefix-map=/build/mysql-5.7-p7XPK2/mysql-5.7-5.7.17=. -fabi-version=2 -fno-omit-frame-pointer
Configure summary:
INIT STYLE:
debian-systemd
AFP:
Extended Attributes: ad | sys
ACL support: yes
Spotlight: yes
CNID:
backends: dbd last tdb mysql
UAMS:
DHX (PAM SHADOW)
DHX2 (PAM SHADOW)
RANDNUM (afppasswd)
Kerberos V
clrtxt (PAM SHADOW)
guest
Options:
Zeroconf support: yes
tcp wrapper support: yes
quota support: yes
valid shell check: yes
cracklib support: yes
ACL support: auto
Kerberos support: yes
LDAP support: yes
AFP stats via dbus: yes
dtrace probes: yes
Paths:
Netatalk lockfile: /var/lock/netatalk
init directory: /lib/systemd/system
dbus system directory: /etc/dbus-1/system.d
dbus daemon path: /usr/bin/dbus-daemon
tracker prefix: /usr
tracker install prefix: /usr
tracker manager: /usr/bin/tracker daemon
pam config directory: /etc/pam.d
Documentation:
Docbook: no

このCompilation summary:とConfigure summary:をよーく見て、必要なライブラリが全部有効になっていることを確認してください。ライブラリをうまく認識しない場合は、そもそもライブラリがインストールされているか確認してください。
Paths:に書かれているdirectoryが実在することを十分に確認してください。
Docbookは開発者がドキュメントを生成するときに使うものなので必要ないです。

めでたくconfigureが終わったら、構築してインストール。

$ make
# make install

netatalk -Vとafpd -Vで機能や設定ファイルの場所が確認できます。

$ netatalk -V
netatalk 3.1.11 – Netatalk AFP server service controller daemon

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.

netatalk has been compiled with support for these features:

Zeroconf support: Avahi
Spotlight support: Yes

afpd: /usr/local/sbin/afpd
cnid_metad: /usr/local/sbin/cnid_metad
tracker manager: /usr/bin/tracker daemon
dbus-daemon: /usr/bin/dbus-daemon
afp.conf: /usr/local/etc/afp.conf
dbus-session.conf: /usr/local/etc/dbus-session.conf
netatalk lock file: /var/lock/netatalk

$ afpd -V
afpd 3.1.11 – Apple Filing Protocol (AFP) daemon of Netatalk

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.

afpd has been compiled with support for these features:

AFP versions: 2.2 3.0 3.1 3.2 3.3 3.4
CNID backends: dbd last tdb mysql
Zeroconf support: Avahi
TCP wrappers support: Yes
Quota support: Yes
Admin group support: Yes
Valid shell checks: Yes
cracklib support: Yes
EA support: ad | sys
ACL support: Yes
LDAP support: Yes
D-Bus support: Yes
Spotlight support: Yes
DTrace probes: Yes

afp.conf: /usr/local/etc/afp.conf
extmap.conf: /usr/local/etc/extmap.conf
state directory: /usr/local/var/netatalk/
afp_signature.conf: /usr/local/var/netatalk/afp_signature.conf
afp_voluuid.conf: /usr/local/var/netatalk/afp_voluuid.conf
UAM search path: /usr/local/lib/netatalk//
Server messages path: /usr/local/var/netatalk/msg/

Sambaのインストール手順

パス。ここで説明しなくても資料は沢山あるでしょう。
Netatalkのafp.confの設定

参考: Netatalk 3.1 Manual – afp.conf
基本的な設定例

[Global]
spotlight = yes
vol preset = my default values

[my default values]
ea = samba

[Homes]
basedir regex = /home

[みんなの共有はここ]
path = /where/all/users
file perm = 0660
directory perm = 0770

[私のタイムマシーン]
path = /where/my/backup
time machine = yes
spotlight = no

Sambaのsmb.confをマネしたフォーマットです。ただしsmb.confとは違ってcase-sensitiveなので注意してください。[Global]と[Homes]は頭文字が大文字です。

[Global]セクションはサーバの設定を行います。afp.confのmanpageで(G)になっているパラメータを書くことができます。デフォルトでちゃんと動くので、あまり書くことがないです。
この例ではSpotlight検索機能を有効にしています。
それ以外のセクションはボリュームの設定であり、manpageで(V)になっているパラメータを書くことができます。

vol presetで設定したセクションの内容は、全ボリューム共通のデフォルト値を設定できます。
ea = sambaは、拡張属性(EA)の保存方法をSambaに合わせるものです。

[Homes]セクションはホームディレクトリの設定です。サーバ側の/etc/passwdファイルで指定されたホームディレクトリを扱えるようになります。basedir regexを必ず設定してください。このパラメータを廃止すべく検討が行われていますが、今のところ設定しないと機能しません。afp.confのmanpageで(H)になっているパラメータは[Homes]専用です。basedir regexとhome nameがあります。あと(V)のパラメータも一通り使えますが、pathだけは通常ボリュームと使い方が違うので注意が必要です。

[みんなの共有はここ]というボリュームでは、パーミッションの設定を緩くしています。file permとdirectory permはそれぞれファイルとディレクトリのパーミッションとORを取って保存するものです。

time machine = yesを使うことで、Time Machine用のボリュームを「私のタイムマシーン」という名前で公開しています。
タイムマシーン用のボリュームでSpotlight検索のインデックスを作っても意味がないので、無効にしています。
かなり古いMacがあるよ

[ボリューム名]
path = /xxx/yyy
file perm = 0600
directory perm = 0700

Mac OS X 10.5と10.6はFinderからパーミッションをいじると「0000」になってしまうという、とんでもない問題があるので、この設定をしています。この設定例だと、少なくともファイル所有者は確実に読み書き出来ます。なお、ACLが有効になっている場合は、パーミッションは正しく設定されるはずなので、これらの設定は必須ではありません(未確認)。

[Global]
mac charset = MAC_JAPANESE

Mac OS 9以前がある場合、AFPサーバはクライアントの文字コードを検出する手段がないので指定してやる必要があります。Mac OS X 10.0以降はUnicode (UTF8-MAC)に固定されているのでこの設定に左右されません。

[Global]
uam list = uams_cleartxt.so uams_dhx.so uams_dhx2.so

最近のMacならばuams_dhx2.soがあれば十分です。
しかし、クライアントが古ければ古いほど旧式の認証方法が必要です。Mac OS X 10.1以前はユーザ認証にDHX2が使えないので、DHX (DHCAST128)を使うことになります。
更に古い場合はクリアテキストを使う必要があるでしょう。詳しくは下の「ユーザ認証」を読んでください。

漢字Talk 7.5.5 (要Open Transport J-1.1.2)よりも古いMacは接続不可能なので諦めてください。なぜならNetatalk 3.xはAppleTalkを廃止したからです。
ウチのサーバ機はUnicodeベースじゃないよ

[Global]
unix charset = EUC-JP

EUC-JPベースの場合はこのような設定をしてください。Unix側のファイル名の文字コードとか、設定ファイルの文字コードがEUC-JPになります。逆の言い方をすれば、EUC-JPにない文字は扱えません。Netatalk 2ではMacJapanese特有の機種依存文字が扱えましたが、Netatalk 3では不可能です。CAPエンコーディングを廃止したからです。
ログファイルの設定

[Global]
log file = /var/log/netatalk.log

ログの保存先です。指定しなければsyslogに渡されます。
デバッグ用にログをとる

[Global]
log level = default:maxdebug

ログレベルのデフォルト値はdefault:noteであり、普通はこれで十分です。
ちょっと詳しくしたいならdefault:infoです。
解析が難しい問題が発生したときはdefault:maxdebugにしてデバッグします。これは強烈に詳しいので頭痛を誘発するし、負荷が増えて重くなるので通常は使いません。
Sambaのsmb.confの設定
基本的な設定例

[global]
vfs objects = catia fruit streams_xattr
; fruit:locking = netatalk
fruit:encoding = native
streams_xattr:prefix = user.
streams_xattr:store_stream_type = no
ea support = yes

hide files = /.DS_Store/Network Trash Folder/TheFindByContentFolder/TheVolumeSettingsFolder/Temporary Items/.TemporaryItems/.VolumeIcon.icns/Icon?/.FBCIndex/.FBCLockFolder/
veto files = /lost+found/
delete veto files = Yes

read only = No

[homes]

[みんなの共有はここ]
path = /where/all/users
force create mode = 0660
force directory mode = 0770

[global]セクションはサーバの設定を行います。smb.confのmanpageで(G)になっているパラメータを書くことができます。
(S)になっているパラメータ書くと、全ての共有に共通のデフォルト値を設定できます。ここでは、Netatalkとファイルの保存方法を共通にする設定を紹介しています。
vfs objects = catia fruit streams_xattrは、AppleによるSMBの拡張機能を使えるようにするためのvfsモジュールを読み込む設定です。必ずこの順序で書いてください。
fruit:locking = netatalkは、ファイルの排他処理をNetatalkに合わせるものです。NetatalkとSambaで同じファイルを同時に開いたときの問題をなくすものです。しかしながら、Macからファイルが削除ができなくなるバグがあるので、ここでは先頭に「;」を付けてコメントアウトしています。
fruit:encoding = nativeとstreams_xattr:prefix = user.とstreams_xattr:store_stream_type = noは、ファイル名や拡張属性名の扱いをNetatalkと共通にするものです。Linuxではこの設定で正常動作します。FreeBSDではバグがあるので以下のパッチを当てる必要がありましたが、現在はports/pkgのsamba44に取り込まれているので正常動作します。Samba 4.6.0では正式に直っています。

パッチ: [Samba] [PATCH] vfs_fruit: FreeBSD: attrname is wrong

ea support = yesを付けないと、最近のMacから拡張属性が見えません。
hide files = は、Macが作る隠しファイルにHidden属性を付けるものです。veto filesではなくhide filesを使ってください。Macが必要だから作っているわけですから、veto filesで完全に見えなくすると問題が発生するのは容易に想像できます。

[homes]セクションはホームディレクトリをクライアントから見えるようにするものです。

[みんなの共有はここ]という共有では、パーミッションの設定を緩くしています。force create modeとforce directory modeはそれぞれファイルとディレクトリのパーミッションとORを取って保存するものです。
かなり古いWindowsがあるよ

[global]
dos charset = CP932

dos charsetは旧クライアント (DOS/Windows 3.x/95/98/ME)からアクセスしたときのファイル名の文字コードです。Windows NT系 (NT/2000/XP/Vista/7/8)からの接続はこの設定に左右されず、UTF-16に固定です。
ウチのサーバ機はUnicodeベースじゃないよ

[global]
unix charset = EUCJP-MS
display charset = EUCJP-MS (Samba 4で廃止)

EUC-JPベースの場合はこのような設定をしてください。EUCJP-MSとは、EUC-JPを拡張してWindowsが使う特殊な文字を使えるようにした文字コードです。iconv()がEUCJP-MSに対応している必要があります。
display charsetはSamba 4で廃止になったので設定する必要はありません。
排他処理問題を軽減する

Netatalk経由とSamba経由で同じファイルを開いた場合、ファイルロックの方法が異なるためファイルが壊れる可能性があります。そこで、fruit:locking = netatalkを使って、ファイルロックの方法を統一します。しかしながらこのオプションはバグっていて使えません。

そこで、かわりに「軽減する」方法を説明します。
先にSamba経由で開いているファイルを後からNetatalk経由で開いたときに排他制御が働くようにします。
先にNetatalk経由で開いている場合は排他制御が働かないので要注意です。これが問題になる場合、このページで説明しているNetatalk/Sambaの併用はお勧めできませんので、他の方法を検討してください。

SMB (CIFS)にはファイルをロックする機能(oplock)というのがあります。SMBクライアント側でファイルをキャッシュして転送量を減らすものです。システム自身がoplockに対応していないとロック中のファイルをUnix側(Netatalk経由も含む)から編集したときにファイルが壊れる可能性があるので、これをを無効にする必要があります。

[共有名]
oplocks = No

Linuxのようにkernel自身がoplockに対応している場合はoplockが問題なく使えるので次のようにします。

[global]
kernel oplocks = Yes
[共有名]
oplocks = Yes

oplockの動作状況はsmbstatusコマンドで確認出来ます。Samba経由で一度ロックしておき、Unix側またはNetatalk側から同じファイルをいじったときにロックが外れる事を確認することをお勧めします。

しかし、streams_xattrを使っている場合、kernel oplocksと共存出来ないので次のようにします。

[global]
kernel oplocks = No
[共有名]
oplocks = No
vfs objects = streams_xattr

他にもlevel2 oplocksとかfake oplocksというパラメータがあります。ややこしい…
NetatalkのCNIDの管理

MacOSの為に作られたHFS+というファイルシステムでは、ファイルやフォルダにCNID (Catalog Node ID)と呼ばれる番号を付けて管理しています。File ID、Directory IDと呼ぶ場合もあります。これはAFPの場合も同様です。
CNIDはinode番号の概念に似ていますが同じではありません。NetatalkはCNIDの管理方法をいくつか用意しており、これをcnid schemeといいます。デフォルトのdbdでは、Berkeley DBを使って var/netatalk/CNID/(ボリューム名)ディレクトリでCNIDのデータベースを管理します。
cnid scheme = dbd これがデフォルト。CNIDデーモンがデータベースを一括管理し、別ディレクトリにデータを保存する。各afpdはCNIDデーモンと通信するだけ。
cnid scheme = tdb CNIDデーモンで何らかの問題が発生したとき、代わりとしてメモリ上でCNID管理する。
cnid scheme = last afpdプロセス毎にその場限りの管理をする。これを使うと自動的にリードオンリーになる。CDROMを共有する場合等に使うもの。
cnid scheme = mysql 大規模サーバ(Clustering/HA)向け

通常はdbdで運用しますが、データベースに何らかの不具合が発生した場合は自動的にtdbに移行する仕組みになっています。

管理ディレクトリ内のデータベースは滅多に壊れませんが、もし壊れた場合はメンテ用のdbdコマンドで修復します。このコマンドはNetatalkを起動しっぱなしで使います。それでも直らない場合は-fオプションを使えば、データベースを全部削除してから再構築します。

参考: Netatalk 3.1 Manual – cnid_metad
参考: Netatalk 3.1 Manual – cnid_dbd
参考: Netatalk 3.1 Manual – dbd

一方、SMBにはCNIDの概念がないので、Sambaではこのような問題を考える必要はありません。
Time Machine対応

MacにはTime Machineというバックアップ機能があり、ローカル接続ドライブだけでなく、ネットワーク上のファイルサーバにもバックアップできます。これにはAFPプロトコルが使われます。かつてSMBプロトコルで無理矢理バックアップする方法もありましたが、お勧めできません。従ってNetatalkを使ってください。Sambaはダメです。
Bonjourで発見できる場合

Time Machineを使う人は、NetatalkをZeroconf対応でビルドすることを強くおすすめします。設定は上の方を読んでください。
手順は以下のとおり。

afp.confにてtime machine = yesを設定。必要に応じてvol size limitも設定。
Time Machineでそのボリュームを選ぶ。
初回バックアップを開始すると、ボリューム内に勝手にイメージバンドルが作られ、勝手にバックアップされる。
2回目以降は勝手にマウントされ、勝手にバックアップされる。

Bonjourで発見できない場合

Zeroconf対応でビルドしてない場合や、Netatalkサーバが別セグメントにある場合はTime Machineボリュームが発見できません。その場合、予め手動でTime MachineボリュームをマウントしてからTime Machineの設定画面を開けば見えるはずです。
Macが起動しなくなった場合、修復ディスクから起動するわけですが、このときTime Machineボリュームが発見できません。修復ディスク上で手動でTime Machineボリュームをマウントして復旧する練習をしておいてください。かなり煩雑な作業になります。
Spotlight対応

NetatalkをSpotlight対応にするにはコツがいるので、本家のドキュメントを読んでください。

ビルド方法: Chapter 2. Installation – Compiling Netatalk
設定方法: Chapter 3. Setting up Netatalk – Spotlight

Spotlight機能は問題解決に時間がかかっているので、以下のページを参考にしてください。

参考: Netatalk 3.1.xのSpotlight検索の問題:HAT blog

SambaのSpotlight対応はかなり面倒なので、SambaのWikiを読んでください。

参考: Spotlight – SambaWiki
ユーザ認証
Netatalkのユーザ認証

AFPのユーザ認証方法(UAM)は、uam listオプションで設定します。デフォルト値はuams_dhx.so uams_dhx2.soです。
UAMにはパスワードを暗号化するもの、しないもの、そもそもパスワードを使わないもの等、色々あります。古い認証方法は8文字制限があるので注意してください。
名前 Netatalkのモジュール 説明
No User Authent uams_guest.so ユーザ認証なし。パスワードは使わない。すなわちゲスト接続。
Cleartxt Passwrd uams_cleartxt.so クリアテキスト(平文)パスワード。暗号化なし。8文字制限。Leopard以降はデフォルトで使用禁止。
Randnum Exchange uams_randnum.so 乱数交換。56ビットDES。弱い暗号化。8文字制限。Lion以降ではデフォルトで使用禁止。
2-Way Randnum uams_randnum.so 双方向乱数交換。56ビットDES。弱い暗号化。8文字制限。afppasswdファイルで独自管理。Lion以降ではデフォルトで使用禁止。
DHCAST128 uams_dhx.so (DebianやUbuntuには入ってない) Diffie-Hellman交換。別名DHX。128ビットSSL。強い暗号化。Lion以降ではデフォルトで使用禁止。
DHX2 uams_dhx2.so Diffie-Hellman交換2。更に強い暗号化。オススメ。
Client Krb v2 uams_gss.so Kerberos V認証。
Recon1 なし 再接続。
GSS なし 不明。Appleのドキュメントに載ってないので実装できない。OS X Lionで追加された認証のようだ。
SRP なし 不明。Appleのドキュメントに載ってないので実装できない。Time Capsuleに追加された認証のようだ。

クライアントにOS X 10.7 Lion以降がある場合はDHX2を使えるようにしてください。これよりセキュリティが弱いものは使えなくなっています。

uams_cleartxt.soとuams_dhx.soとuams_dhx2.soは、Netatalkのコンパイル時のオプションにより、Unixのpasswdファイル、shadow passwd、PAMのどれかを使うことになります。
uams_gss.soはよく知らないのでパス。

DHXパスワードを使う為には、OpenSSLライブラリを使ってNetatalkをコンパイルする必要があります。DHX2パスワードを使う為にはLibgryptライブラリが必要です。
Sambaのユーザ認証

最近ちゃんと調べてないのでパス。
ポート番号

ファイアウォールの設定で悩む人がいるので、関連のあるポート番号の一覧を載せておきます。
IPv6を有効にしている人はv4とv6の両方を確認しないとハマります。
137 netbios-ns NetBIOS名前解決。nmbdが使う。UDP。
138 netbios-dgm NetBIOS Datagram Service。nmbdが使う。UDP。
139 netbios-ssn 古いSMB。smbdが使う。NetBIOS名を解決してから接続する。
445 microsoft-ds 最近のSMB。smbdが使う。NetBIOS名を使わず接続する。
548 afpovertcp AFP over TCP。afpdが使う。Time Machineは548じゃないとダメだが、普通のファイル共有なら別のポート番号でも動く。
4700 – CNIDサーバがafpdとの通信に使う。IANAには登録されてない。通常はlocalhost内での通信なので外部に開く必要はない。
5353 mdns Multicast DNS。AvahiやmDNSResponderが使う。AFPサーバやTime Machineボリュームを宣伝する。UDP。

これ以外にも、LDAPを使っている人は389とかも確認が必要でしょう。
あと、古いMac用にslp.regを記述してSLPで公開する場合は427を開く必要があります。
SambaのSWATは901を使いますが、SWAT自体がSamba 4.1で廃止されています。

参考: Service Name and Transport Protocol Port Number Registry
参考: Apple ソフトウェア製品で使われる一般的な TCP および UDP ポート
参考: ダウンロード詳細 Microsoft Windows Server System : ポート番号一覧
やらないほうがいいこと
HFS+, FAT, exFAT, NTFS等をサーバ側にマウントしてNetatalk/Samba経由で使うな

可搬性があって便利に思えますが、実際はダメです。
メタデータやファイル名の扱いがUnix系ファイルシステムと完全互換でないからです。OSにnativeなファイルシステムを使ってください。

NFSマウントしたものをNetatalk経由で使う方法もおすすめはしません。
Netatalkのボリュームのネストに注意

Netatalkのボリュームのパスをネストすると、CNIDデータベースが競合して異常が発生します。
次のようにlastを使えば競合しません。つまり書込可能なボリュームは1つだけです。

[volume 1]
path = /where
cnid scheme = last
[volume 2]
path = /where/abc
[volume 3]
path = /where/abc/def
cnid scheme = last

このlastを使う方法は不便なので、vol dbnestというオプションが用意されています。
これを使うと、CNIDデータベース(.AppleDB)がボリュームパスの下に作られるので、競合問題が発生しません。

[Global]
vol dbnest = yes

一方、Sambaでボリュームをネストしても問題ありません。CNIDを扱わないからです。
Netatalkの起動/停止

Netatalkのデーモンは4つ。

netatalk – afpdとcnid_metadを操る司令塔。Spotlight関連のコマンドも操る。
afpd – AFPファイル共有を行う実働部隊。
cnid_metad – cnid_dbdを仕切る班長。
cnid_dbd – ボリューム毎にCNIDを管理する支援部隊。

1つめのnetatalkコマンドを起動すれば、他は必要に応じて起動されます。止めるときはnetatalkを止めるだけです。
OSによって起動スクリプトの仕組みが全く異なりますが、要はこのnetatalkコマンドを起動/停止するだけです。
各OSに適したスクリプトをインストールするには、上で説明した–with-init-style=を使います。
スクリプトのインストール先は代表的なパスに決め打ちになっていますが、もし別のパスにする場合は–with-init-dir=を使います。
Debian系

DebianやUbuntuの場合、sysvinit互換のupstartを採用しているので、configure optionは–with-init-style=debian-sysvです。
Debian 8 jessieやUbuntu 15.04 vividはsystemdに移行したので–with-init-style=debian-systemdを使います。
RedHat系

RedHat系(CentOSやScientific Linux)はかつてsysvinit互換のupstartを採用していたので、–with-init-style=redhat-sysvを使います。serviceコマンドで制御できます。
現在のFedora 15以降、EL7以降はsystemdなので、–with-init-style=redhat-systemdを使います。systemctlコマンドで制御できます。
Gentoo

GentooはOpenRCを採用しており、–with-init-style=gentoo-openrcを使います。
systemdを利用している場合は–with-init-style=gentoo-systemdを使います。
SUSE系

SUSE系は元々sysvinitを採用していたので、–with-init-style=suse-sysvを使っていました。
openSUSE 12.1以降はsystemdなので、–with-init-style=suse-systemdを使います。
FreeBSD

NetatalkはFreeBSD用の起動スクリプトを用意していません。FreeBSDのportの方で起動スクリプトを用意しています。/etc/rc.confにnetatalk_enable=”YES”と記述することで有効になります。
OpenBSD

NetatalkはOpenBSD用の起動スクリプトを用意していません。現在はOpenBSDのportの方でNetatalk起動スクリプトを用意しています。
NetBSD

configure optionは–with-init-style=netbsdです。
Solaris系

Solaris系はSMFを採用しており、–with-init-style=solarisを使います。svcadmコマンドで制御できます。
その他

よく知りませんが、それぞれのパッケージャが頑張って独自の起動スクリプトを用意しているみたいです。
最近のLinuxベースのシステムはsystemdを採用するケースが増えており、その場合は、–with-init-style=systemdを使っています。
動作確認

クライアントから接続して操作してみるのは当然ですが、転ばぬ先の杖として以下をチェックしておくことお勧めします。
アクセス権の確認

サーバとクライアントの双方で、アクセス権の確認をすべきです。特にNetatalkの場合、サーバ側のls -l、クライアント側のls -l、Finderの「情報を見る」のそれぞれで見え方が違うので面食らいます。
ACLを使っている人は、SambaとNetatalkの両方で動作確認する必要があります。
別ユーザで接続してみて他人のファイルを読み書き出来るかどうかもチェックしておくべきです。
ファイルネームの確認

ASCIIは大抵大丈夫でしょうが、日本語ファイル名、多言語ファイル名、長いファイル名、禁止文字の確認をすべきです。
メタデータの確認

MacとWindowsの双方から操作してみて、リソースフォークやカスタムアイコン、EA、代替データストリーム等が消える条件を知っておくべきです。
タイムスタンプの確認

Macには作成時刻/変更時刻/最終アクセス時刻/バックアップ時刻等があります。Unixの伝統的なファイルシステムには作成時刻がありません。モダンなファイルシステムには作成時刻がありますが、Netatalkはこれを参照しません。Netatalk 3.xでは拡張属性に時刻を格納して対応しています。Samba側、Unix側から作成したファイルにはこの拡張属性がないわけですから、作成時刻と変更時刻が同じになります。
HFS+やAFPは1s単位で時間を刻みます。APFSは1ns単位です。
NTFSは100ns単位、、exFATは10μs単位、FATは2s単位です。Sambaは設定次第でNTFS互換にもFAT互換にもなります。Samba 3.5.0で、100ns単位で扱えるようになりました。
Unix側はファイルシステムによって時間の解像度が異なります。例えばext3は1sですがext4は1nsです。
GNU版lsコマンドは–full-timeオプションで1s以下の時間を表示します。
サーバとクライアントでタイムスタンプが完全に一致するとは思わない方がいいです。
エイリアス/シンボリックリンク/ショートカット/ハードリンクの確認

afp.confにもsmb.confにもfollow symlinksというオプションがあります。これの挙動については十分に理解しておく必要があります。

MacのFinder上ではエイリアスとシンボリックリンクが同じように見えますが、ファイルシステム上では全くの別物です。Terminal.app内でls -lしてみればわかります。
エイリアスはサーバ上では意味不明なファイルにしか見えません。エイリアスはCNIDやパスを辿るので、CNIDデータベースを再構築すると辿れなくなる場合があります。
シンボリックリンクの挙動はfollow symlinksの設定によって変わります。サーバ側とクライアント側でどう見えるか確認してください。

Windowsにはショートカットの概念がありますが、シンボリックリンクはありません。ショートカットはサーバ上では意味不明なファイルにしか見えません。 シンボリックリンクの見え方はfollow symlinksの設定によって変わります。クライアントからどう見えるか確認してください。

サーバ側でハードリンクを使っても、MacやWindowsはこれを理解できません。単に別のファイルとして解釈します。
asip-status.plコマンドでNetatalkの確認

AFPクライアントからAFPサーバへの接続は、次のような手順で行なわれます。

Bonjour等でサーバの存在を知る。またはアドレスを既に知っている。
サーバに対して、どんなサーバなのか問い合わせする(GetStatus、別名GetSrvrInfo)。
サーバから返答を受け取る。この返答の中に、様々なサーバの情報が入っている。
この情報を基に、サーバに接続する。

つまり、この問い合わせ(GetStatus)への返答内容が間違っていると、様々な問題が発生します。
Netatalkにはasip-status.plというコマンドが付属しています。これはAFPサーバにGetStatusを送り、その返答内容を表示するものです。次はその例です。

$ asip-status.pl ホスト名またはIPアドレス
AFP reply from hoge:548 via IPv4
Flags: 1 Cmd: 3 ID: 57005
Reply: DSIGetStatus
Request ID: 57005
Machine type: Netatalk3.1.9
AFP versions: AFP2.2,AFPX03,AFP3.1,AFP3.2,AFP3.3,AFP3.4
UAMs: DHX2,DHCAST128
Volume Icon & Mask: Yes
Flags:
SupportsCopyFile
SupportsServerMessages
SupportsServerSignature
SupportsTCP/IP
SupportsSrvrNotifications
SupportsOpenDirectory
SupportsUTF8Servername
SupportsUUIDs
SupportsExtSleep
SupportsSuperClient
Server name: hoge
Signature:
ca eb 2d 4a fa 06 b0 5c ae da 13 af f4 0b c4 f5 ..-J…\……..

Network address: 192.168.1.141 (IPv4 address)
UTF8 Servername: hoge

Machine type:は単なる参考情報であり、AFPクライアントはこれを気にしません。ただ、ユーザがAFPサーバの情報を知りたいときには便利でしょう。

AFP versions:は対応しているAFPのバージョンです。1.1から2.1迄はAppleTalkであり、2.2以降はTCP/IPです。

UAMs:は対応している認証方法です。詳しくは上の「ユーザ認証」を参照してください。

Flags:はサーバが対応している様々な機能を表します。

Server name:とUTF8 Servername:はサーバ名です。前者はMacJapaneseであり、後者はUTF8-MACです。普通はASCIIの名前にするでしょうから、両者は同じでしょう。

Signature:は、サーバを区別する為のものです。同じサーバに二重接続するのを防ぐ為にあります。逆に、何かの間違いで同一のSignatureのサーバがあると、一方にしか繋がらないという問題が発生します。Netatalk 2.0には同じSignatureになりやすい問題がありましたが、Netatalk 2.1以降で対策をとりました。

Network address:は接続するサーバのアドレスです。適切なアドレスになっている事を確認してください。
安全な接続

いまどきはIPSecを使うんじゃないかなあ。よく知らないけど。
AFP

Mac OS X 10.3から10.4では、サーバにAFP over SSHで安全に繋ぐ機能がありました。afp.confに

[Global]
advertise ssh = yes
fqdn = hoge.example.org

と書いておけばAFP over SSHで接続出来ます。ただしNetatalkのログを見ても普通のAFP接続と区別が付かないので、パケットをダンプしてSSHが使われている事を確認する必要があります。psコマンドでsshが動いているのを見る方法もあります。
ところがMac OS X 10.5 LeopardでAFP over SSHが廃止になりました。
今のところ確認している唯一の方法は、Netatalkのマニュアルに書かれている手法です。つまり、Terminal.appで

ssh -l $USER $SERVER -L 10548:127.0.0.1:548 sleep 3000

を実行してから、afp://127.0.0.1:10548に接続します。
これならAFP over SSHでNetatalkに接続出来ます。(ただし重いです)
SMB

Samba 3.2以降で暗号化通信がサポートされたようですが、よく知らないのでパス。
トラブルシュート
どうやって調べるか

まずlogを見てください。一般常識です。
エラーメッセージをみても意味がわからないのであれば、その文字列をcopy and pasteして検索エンジンで調べてください。なんかわかるでしょう。
メタデータの異常を疑うならdbdコマンドを試します。
Netatalkに繋がらない

疑いは5段階あるので順にクリアしてください。

そもそもNetatalkが起動してない
Zeroconf (Bonjour)で宣伝できていないので見つからない
AFPプロトコルで通信できていない
ユーザ認証が通っていない
ボリュームにアクセスできていない

1の場合はpsコマンドとかで確認してください。起動直後に異常終了しているケースもあります。
2の場合はafpd -VでZeroconf有効でビルドされていることを確認してください。Netatalkよりも先にAvahiやmDNSResponderが起動されていることを確認してください。ファイアウォールを使っている場合は5353番ポートを確認してください。Linuxの場合、SELinuxが有効になっているとD-Bus機能を封じて宣伝できないケースもあります。
3の場合はまずファイアウォールのチェックでしょう。548番ポートが開いていることを確認してください。単に接続先を間違っているケースもあります。実はSMBに繋ごうとしていたり、アドレスを間違っているケースもあります。
4の場合はUAMとかパスワードを調べてください。
5の場合はそのディレクトリのパーミッション等を調べてください。
クライアント側で変なウィンドウが開く

Something wrong with the volume’s CNID DB, using temporary CNID DB instead. Check server messages for details!

書いてある通り、CNID DBの何かがおかしいです。Netatalkのログを確認してください。
原因としては、以下のようなものが考えられます。

Netatalk 2.xのときのCNIDデータベースディレクトリの移動に失敗している
CNIDデータベースが壊れてる
CNIDデータベースとBDBのバージョン違い
CNIDデーモンと通信できてない

CNIDデータベースの問題の場合はdbdコマンドで修復してください。それでも修復できない場合は.AppleDB/ディレクトリを削除してください。
CNIDデーモンと通信できてない場合は、IPv4とIPv6の取り違えとか、ファイアウォールの設定が考えられます。
Netatalkのホームディレクトリが見えない

[Homes]セクションにはbasedir regex =の設定が必須です。
このパスがシンボリックリンクを含んでいる場合は、シンボリックリンクを展開したパスを書けば動作します。

あと、[Homes]セクションでvalid users =を設定すると異常になるバグがあります。このバグはまだ直っていません。
Mac OS X 10.1以前からNetatalkを発見できない

Mac OS X 10.1以前、つまりMac OS 9等がサーバを発見する方法は、SLPとAppleTalk(NBP)の2種類です。Netatalk 3はどちらもサポートしないのでサーバ発見は不可能です。
IPアドレスやhostnameを直接指定して接続してください。一度接続したあとにエイリアスを作っておけば次回以降は便利だと思います。
別解としては、OpenSLPをインストールして設定ファイルslp.regに次のように記述し、静的に宣伝してやる方法があります。Mac OS 9だとセレクタではなくネットワークブラウザの方で発見できるようになります。

afp://IPアドレス/?NAME=サーバ名&ZONE=,en,65535
または
afp://FQDN/?NAME=サーバ名&ZONE=,en,65535

クライアントからSambaを発見できない

nmbdを起動してないとか、ありませんかね。
このnmbdによる宣伝方法(WINS)は非常に古い仕様なので、しばらく待たないと情報が更新されません。気長に動作確認してください。
残る問題
各ディレクトリの.DS_Storeが邪魔

Netatalk3は隠しファイルをほとんど作らなくなりスッキリしましたが、.DS_Storeが邪魔です。これはMac側が作るファイルなのでNetatalk側では対処できません。
Mac側で.DS_Storeを作らなくする方法ならあります。

参考: Mac OS X v10.4 and later:ネットワーク接続時に .DS_Store ファイルの作成を抑制する方法

ただし、Finderでフォルダを表示するための情報が記録されなくなります。
パーミッションが変

AFPにおけるパーミッションの扱いは昔から変です。まず、Finderから実行属性を操作できません。他にも色々問題があります。Mac OS X 10.4 Tiger迄はものすごく変でした。10.5 Leopard以降で仕様変更されましたが、やっぱり変です。

10.4 Tiger迄の場合、Terminall.appからls -lで見た場合と、Finderの「情報を見る」で確認出来るパーミッションが異なります。
10.5 Leopard以降ではACL管理になりました。これは仕様追加ではなく仕様変更なので、それまでのAFPと互換性がありません。よって、Mac OS X 10.5と10.6からACL管理していないAFPサーバにアクセスすると確実に問題が発生します。具体的にいうと、「情報を見る」でアクセス権をゴニョゴニョいじっている間にパーミッションが「0000」になりファイルにアクセス出来なくなります。こうなるとchmodコマンドで直すしかありません。

このとんでもない問題を緩和するには、file permとdirectory permの設定を行います。これはクライアントが要求してきた属性とORを取るものです。例えば、file perm = 0600とdirectory perm = 0700を設定しておけば、少なくとも所有者は確実に読み書き出来ます。

根本的な対策は、Netatalk側でACLの設定を行うことです(未確認)。

なお、WindowsからSambaにコピーしたファイルに実行属性がついてしまうのは別の現象なので混同しないで下さい。FATやNTFSにあるアーカイブ属性がUnixのファイルシステムにはないので、代わりに実行属性に割り当てているのが原因です。アーカイブ属性を継承する必要がないのならsmb.confでmap archive = noを使うとよいです。
BSD flagsが使えない

Mac上のHFS+ではBSD由来のflag (chflagsコマンドで変更可能) が使えますが、AFPボリューム上では使えません。これはAFPプロトコルの仕様にBSD flagが含まれてないからです。だからMac同士のAFP接続でも使えません。Netatalkの責任じゃないってことです。
例外としてはhiddenフラグがあります。これはFinder情報のinVisibleフラグに置き換えられるので、扱うことができます。
AFPクライアントの機能はあるか

Sambaにはsmbclientコマンドが付いてきますが、NetatalkにAFPクライアント機能はありません。
GNOMEにGVfsという仮想ファイルシステムの機能があり、最近のバージョンだとZeroconfで発見してAFPサーバに接続できます。拡張属性やリソースフォークは扱えません。パーミッションはuserだけ扱えてgroupとotherは無視されるようです。シンボリックリンクも正常に扱えません。AFP 3.0以降に対応なので、Mac OS 9以前には繋がりません。
あと、afpfs-ngというのがありますが、かなり不安定なまま開発が止まっているのでおすすめしません。
AFP 3.xなのに極めて長いファイル名を扱えない

Mac OS X 10.4 Tiger迄のバージョンでは、AFP 3.xクライアントとして動作しているとき、decomposed UTF-8で255バイトを越えるファイル名を正常に扱えません。
これはNetatalkではなくMac OS X側の問題です。ちなみにMac OS XでSMB (CIFS)を使ったときも同様の現象が起きます。
この仕様(バグ)にあわせて、Netatalkはファイル名を255バイト内にmangleしてクライアントに報告します。
Mac OS X 10.5 Leopardでは直っているのですが、Netatalkは古いMac OS Xにあわせた仕様なので、255バイトを越えたファイル名がmangleされてしまいます。

Mac OS X 10.4迄の場合、例えばローカルのHFS+に「ああああ…」という風に「あ」が86個以上あるファイルがあったとして、これをAFP 3.xのサーバにコピーしようとするとエラーになります。このとき、サーバに対して全くリクエストを送っていません。つまりが自分でエラーを出しているのです。相手のサーバがNetatalkだろうとMac OS Xだろうと結果は同じです。

逆に、Mac OS XがAFP 3.xサーバとして動作しているときは、バージョンに関わらず255バイトを越えるファイル名でもちゃんと報告してきます。これを受け取った側のMac OS X 10.4迄のバージョンは、妙な動作をします。Finderからはファイル名が変なところでちぎれて見えるし、ターミナルで$ ls -wしてみると、エラーが出ます。これはDarwin(UNIX)の制限が255バイトであることに関係しているでしょう。

AFP 3の仕様書上は、pathnameの長さは0xFFFF=65535バイトです。そんなものすごいファイルシステムはないけどね。
雑談
なんでAppleはNFD (UTF8-MAC, decomposed UTF-8)なんてマイナーなものを使うんだ

Appleのページに説明があります。

HFS Plus Volume Format

To reduce complexity in the B-tree key comparison routines (which have to compare Unicode strings), HFS Plus defines that Unicode strings will be stored in fully decomposed form, with composing characters stored in canonical order.

正規化処理は超メンドーなので、NFCよりも速いNFDを使うよってことです。

NFDの手順
decompose → order
NFCの手順
decompose → order → precompose

しかしだねえ、そもそもファイル名を正規化する必要性はあるのか? 正規化ってのは、文書内での問題を解決する目的ではないのか?
Netatalkの問い合わせや開発への参加

Netatalkはユーザ数が少なく、開発者は3人しかいません。他の人がパッチを提供するのは極めて稀です。従って、問題を発見した本人が報告しないと永久に直らない可能性が大です。

Netatalkメーリングリストは比較的活発なので、ここに問い合わせたりパッチを送るとすぐにでも反応があります。ただし、誰にも判らないような質問をすると放置されることもあります。ユーザが少ないんだからしょうがないです。
管理者用と開発用がありますが、両者の区別がはっきりしていないので両方読まないと全貌が見えてきません。

Netatalk-admins Info Page – 管理者用メーリングリスト
Netatalk-adminsのアーカイブ (見やすいが文字化けしやすい)
Netatalk-adminsのアーカイブ (見にくいが文字化けしにくい)

Netatalk-devel Info Page – 開発用メーリングリスト
Netatalk-develのアーカイブ (見やすいが文字化けしやすい)
Netatalk-develのアーカイブ (見にくいが文字化けしにくい)

Netatalk-announce Info Page – 新バージョンリリース時にアナウンスが流れるメーリングリスト

日本語のメーリングリストもあります。

netatalk-ja 案内ページ

Web上にも情報交換の場があります。アカウントを作らないと書き込みできません。

SourceForge.net: netatalk: Bugs
SourceForge.net: netatalk: Feature Requests
SourceForge.net: netatalk: Patches

Netatalkのソースコードはgitで管理されています。
git版はconfigureスクリプトが入ってないので、まず./bootstrapを実行してconfigureスクリプトを生成します。
ただしautotools (autoconf, automake, libtoolなど)のバージョンが古いとmake中にコケます。大抵Makefileの文法がおかしいというエラーになります。この場合、なんとかして新しいautotoolsが入ったシステムを用意して./bootstrapだけ実行し、ソースディレクトリをまるごと現システムにコピーしてからconfigureを実行すればうまくいくかもしれません。

参考: Netatalk 3.1 Manual – Chapter 2. Installation

git版はGitHubにて管理されています (もはやSourceForgeでは管理していません)。

GitHub上のソースコードのページ: Netatalk/Netatalk · GitHub

幾つかブランチがありますが、主要なのは以下のものです。他にも開発の都合で一時的なブランチが作られることがあります。
master

新しいパッチは、まずmasterにコミットされます。
branch-netatalk-3-1

現行安定版のnetatalk 3.1.xを保守するブランチです。上記masterから、現行安定版のために必要なものが、このブランチにcherry-pickされます。
Sambaの問い合わせや開発への参加

Sambaのvfs_fruitの開発を行っているのは、Ralph Böhme (Frank Lahm, slowfranklin)です。この人はNetatalkのメインの開発者でもあります。

本家のメーリングリストの一覧は以下の場所にあります。辿ればアーカイブも読めます。沢山のメーリングリストがありますが、一般的な話題はsambaメーリングリスト、技術的な話題はsamba-technicalメーリングリストがよいと思います。vfs_fruitに関する質問をすると、まず間違いなくRalph Böhmeが返答します。

lists.samba.org Mailing Lists – Sambaの本家のメーリングリスト一覧

日本語のメーリングリストもあります。

samba-jp 案内ページ

Web上にバグを登録/閲覧するサイトがあります。アカウントを作らないと書き込みできません。

The Samba-Bugzilla Main Page
参考

Netatalk – Networking Apple Macintosh through Open Source
Netatalkのホームページ
SourceForge.net: netatalk
sourceforge projectのNetatalkのページ
NetAFP | The Netatalk OS Company
事実上、Netatalkの唯一の開発者であるFrank Lahmの会社のページ
SerNet -Home
Sambaベンダ。上記Frank Lahmがこの会社に入社してvfs_fruitを実装した。
SourceForge.jp: Project Info – Netatalk 日本語化プロジェクト
2003年からあるプロジェクトのようですが、活動の形跡が全くないので読む価値なし
Netatalk – Wikipedia
WikipediaのNetatalkの項
拡張ファイル属性 – Wikipedia
Wikipediaの拡張ファイル属性 (EA)の項
AppleTalk – Wikipedia
WikipediaのAppleTalkの項
Apple Filing Protocol – Wikipedia
WikipediaのApple Filing Protocol (AFP)の項
AppleShare – Wikipedia
WikipediaのAppleShareの項
フォーク (ファイルシステム) – Wikipedia
Wikipediaのフォークの項
リソースフォーク – Wikipedia
Wikipediaのリソースフォークの項
AppleSingle – Wikipedia
WikipediaのAppleSingleの項。AppleSingleとAppleDoubleの両方を説明している。
Applesingle and AppleDouble format internals
AppleSingleとAppleDoubleの仕様書 (Version1)
AppleSingle/AppleDouble Formats for Foreign Files Developer’s Note
AppleSingleとAppleDoubleの仕様書 (Version2)
Finder情報 – Wikipedia
WikipediaのFinder情報 (Finder Information)の項。
Bonjour – Wikipedia
WikipediaのBonjourの項。
Avahi – Wikipedia
WikipediaのAvahiの項。
Zeroconf – Wikipedia
WikipediaのZeroconfの項。
MetaTracker – Wikipedia
WikipediaのMetaTrackerの項。別名Tracker, Gnome Tracker。
Transport Layer Security – Wikipedia
WikipediaのTransport Layer Security (TLS, SSL)の項
使いこなそうユニコード
ちょっと内容が古いけど、正規化の概念の説明などがわかりやすい
Inside AppleTalk Second Edition (pdf)
AppleTalkの仕様。AFP 1.1/2.0の仕様を含む。
AppleTalk Filing Protocol Version 2.1 and 2.2 (pdf)
AFP 2.1/2.2の仕様
Apple Filing Protocol Programming Guide
Apple Filing Protocol Reference
AFP 3.xの仕様。
Time Machine Network Interface Specification (TMNIS)
Time Machineのサーバとしての要求事項。
Technical Note TN1150 HFS Plus Volume Format
HFS Plusの資料
Samba – opening windows to a wider world
Sambaのホームページ
Samba-JP
Sambaの日本語情報

履歴

2004.10.09 – 初版
2004.10.10 – Appleのmangleについて追加
2004.10.11 – 設定方法について追加、その他
2004.10.12 – Netatalk 2.0.0に対応
2004.10.13 – インストール方法を追加、設定方法の説明が間違ってたので修正
2004.10.14 – 設定方法の説明を詳しくした
2004.10.17 – AppleDoubleと拡張子の扱いに言及。ファイル共有テストキットを用意。
2004.10.25 – catsearchパッチとcreator1パッチの解説を追加
2004.10.28 – Netatalk 2.0.1速報を追加
2004.10.29 – Netatalk 2.0.1に対応、サンプルに「はしごだか」「チルダ」「オーバライン」を追加
2004.11.01 – CJK Unified Ideographs Ext.B の問題に言及
2004.11.02 – サンプルに「吉」の異体字を追加
2004.11.03 – glibcとlibiconvの説明を追加
2004.11.08 – Netatalk 1.x / Samba 2.xからのデータの変換方法、glibcとlibiconvの説明を強化、サンプルに「―‖¢¬」を追加、その他
2004.11.10 – Sambaが3.0.8で変わった部分に言及、その他
2004.11.20 – Samba 3.0.9とOpenSLP 1.2.0, 1.3.0とBerkeley DB 4.3.21に言及
2004.11.24 – MacRomanとMacJapaneseの比較表を追加
2004.12.05 – UTF8とUTF-8の違いの説明が間違っていたので修正
2004.12.08 – smb.confのdisplay charsetパラメータの説明を修正
2004.12.17 – Samba 3.0.10で動作確認
2004.12.24 – Solaris 9の情報を追加、Berkeley DBのバージョンを推奨の4.2.52に戻した
2004.12.25 – Solaris 9のslpdの問題の対処法を説明、SolarisのDDPドライバの説明を修正
2004.12.28 – Solaris 9に特化したページを作成
2005.01.04 – Netatalk 2.0.2に対応
2005.02.18 – Samba 3.0.11で動作確認。Mac OS X 10.3.8で動作確認。mangleの説明を追加。極めて長いファイル名の説明を追加。ファイル共有テストキットをバージョンアップ。
2005.03.17 – cjk.fix.patchを公開。CAP形式非互換を説明。「うワヰヱヲ」に濁点の問題を説明。ファイル共有テストキットをバージョンアップ。
2005.04.01 – oplocksとveto filesの説明を追加。Samba 3.0.12と3.0.13のdelete veto filesの異常に言及。
2005.04.07 – 文字コード設定の解説を詳しくした。
2005.04.09 – ハングル等の問題を指摘。
2005.04.16 – Mac OS X 10.3.9で動作確認。Samba 3.0.14aでdelete veto filesの問題を再確認。
2005.05.18 – netatak 2.0.3に対応。2.0.3用cjk-patch公開。Mac OS X 10.4.1で動作確認。
2005.05.21 – Macから正常にアクセス出来ない場合の説明を詳しくした。ACLの説明を追加した。
2005.05.24 – afpclientの説明を追加。
2005.06.27 – こっそりcompose.patchを公開。
2005.07.02 – compose.patchをnetatalk-devel MLに出したものに入れ換え。
2005.07.06 – AppleVolumes.systemの設定を追加。トラブルシュートを追加。その他。
2005.07.07 – 何故だか知らないがconfigureオプションを間違って説明しているページが多いので、解説を追加。
2005.07.23 – compose.patchが適用されたutil_unistr.c Revision 1.3を紹介。
2005.07.27 – サンプルに多言語のものを追加。Mac OS X 10.4.2、Windows XPで動作確認。その他。
2005.07.28 – Sambaのクオート付きファイルの異常を指摘。
2005.08.06 – options:usedotsの解説を追加。その他。
2005.08.24 – Samba 3.0.20で動作確認。
2005.09.01 – netatalk-2.0.3-cjk-2.patch.gzを公開。
2005.09.15 – non-ASCIIのボリューム名をMac OS Xでマウント出来ない問題を指摘。
2005.09.18 – non-ASCIIのボリューム名を扱えるようにするnon-ascii-volume.patchを暫定公開。
2005.09.23 – 雑談を追加。non-ASCIIのボリューム名の情報を更新。
2005.09.29 – non-ascii-volume.patch.gzを適用。cvsに言及。
2005.11.20 – ファイル名検索がおかしい話を追加。
2005.12.06 – non-ASCIIを完全に禁止する話を追加。その他。
2005.12.23 – Samba 3.0.21でのhash2の異常に言及。その他。
2006.01.06 – Unix側でのlsコマンドの表示例を追加。その他。
2006.03.12 – 検索問題を解決するcatsearch-terminator.patch.gzを暫定公開。
2006.05.14 – PAMを使ってNetatalkとSambaのユーザ認証を統合する説明を追加。options:usedotsのときにファイルが見えない場合がある説明をし、netatalk-2.0.3-visibledots.patch.gzを公開。BSDデーモンアイコンを無効にするnetatalk-2.0.3-no-uicon.patch.gzを公開。
2006.05.25 – Photoshopの問題に言及。
2006.06.29 – Photoshopの問題が解決したらしいので記述を変更。
2006.07.06 – パーミッションが継承されない話を追加。その他。
2006.08.02 – usedotsの問題の説明を詳しくした。その他。
2006.08.08 – ログファイルの話を追加。その他。
2006.08.11 – netatalk-2.0.3-visibledots.patch.gzを削除し、remove_invisible.patch.gzのありかにリンク。既にパッチが存在しているのを見落としていた。内容は完全に同一のパッチです。
2006.08.20 – vfs objects = netatalkの説明を追加。netatalk-2.0.3-no-uicon.patch.gzを本家のメーリングリストに送った。
2006.09.04 – ブラウズの問題等を追加。
2006.09.10 – Netatalk 2.0.4へ向けての動きがあるので記述を変更。
2006.09.13 – cjk.fix.patchがCVSに入った。
2006.09.18 – netatalk-2.0.3-no-uicon.patch.gzがCVSに入った。しかしそれ以外に大幅変更があったのでCVSにはcatsearch-terminator.patch.gzが当たらない。
2006.09.19 – 最新のCVS版netatalk-2.1devでCJKファイル名が検索出来るnetatalk-2.1dev-catsearch-terminator.patch.gzを公開。
2006.09.20 – 最新のCVS版netatalk-2.1devで、検索問題パッチ、ドットファイルパッチがいらなくなった。つまりCVS版は何もパッチがいらない。
2006.09.28 – パーミッションの説明を修正。その他。
2006.10.17 – afpfs-ngを紹介。
2007.05.28 – blogの方の情報を盛り込んだ。AppleSingle/AppleDoubleのドキュメントにリンク。AFP1.1/2.0のドキュメントにリンク。CNIDの説明を追加。Netatalkの起動について追加。その他。
2007.07.26 – AppleVolumesファイルの説明を修正。その他。
2007.08.10 – 統合cjk3パッチを公開。その他。
2007.08.12 – 最近のBerkeley DBに対応するパッチを公開
2007.10.26 – NetBSDの情報をちょっと追加。その他。
2007.10.28 – Mac OS X 10.5 LeopardでSLPが使えない件を追加。
2007.10.29 – Mac OS X 10.5 Leopardでクリアテキストパスワードが使えない件、極めて長いファイル名が使える件を追加。
2007.11.04 – Leopard速報4追加。
2007.11.05 – Leopard速報5追加。AFP3のリファレンスにリンク。
2007.11.07 – Leopard速報6追加。
2007.11.09 – Leopard速報7追加。
2007.11.15 – Leopard速報8追加。
2007.11.17 – Leopard速報9追加。
2008.01.20 – Leopardにあわせて、色々書き直している途中。
2008.01.23 – Leopardにあわせて、まだ色々書き直している途中。
2008.01.28 – Leopardにあわせて、まだまだ色々書き直している途中。
2008.01.30 – Leopardにあわせて一通り書き直したので、Leopard速報は削除した。
2008.02.01 -「動作確認」を追加。
2008.02.15 – Debian用の暗号化パスワード及びCJK対応Netatalkのページにリンク。
2008.02.22 – afpfs-ngにftpコマンドのようなafpcmdコマンドが追加された。
2008.03.09 – cjk4パッチ公開。
2008.03.15 – NetBSDの情報を追加。
2008.03.23 – NetBSDの情報を最新の内容にした。リンクを追加。
2008.04.16 – Vine Linuxの情報を追加。リンクを追加。
2008.05.19 – Netatalk 2.1dev RPM/SRPMのページのリンク変更。
2008.05.25 – 最近のgccでコンパイルが通るcjk6パッチを公開。
2008.05.29 – bad function 4C, 4E, 4Fに関する情報を更新。
2008.07.29 – Samba 3.2.0での代替データストリームについて追加。
2008.11.18 – Samba 3.2.xについてゴニョゴニョ書き換えた。OpenBSD用の2.0.3+cjk6のpkgsrcが公開されてるのでリンクした。その他。
2008.11.21 – OpenBSD用の2.1devのpkgsrcが公開されている。
2008.11.23 – Samba 3.2.xのパスワードの説明が間違っていたので修正。2.1devのDHX2に言及。
2008.12.20 – Netatalk 2.0.4beta2がリリースされているので、速報を。
2009.01.16 – CVSのbranch-netatalk-2-0にCJK対応が入ったので、色々修正した。
2009.02.04 – 最近のCVSにあわせて、あちこち修正した。
2009.02.22 – AppleTalkやブラウズの説明をちょっと書き直した。
2009.03.13 – 最近の2.1devのTimeMachine対応について書いた。その他。
2009.03.28 – 2.1devでボリューム名問題がfixされている。
2009.04.26 – Netatalk 2.0.4rc1リリース。
2009.05.06 – Netatalk 2.0.4rc2リリース。
2009.05.30 – Netatalk 2.0.4リリース速報。
2009.05.31 – Netatalk 2.0.4リリースに伴う全面的な修正。
2009.06.02 – Netatalk 2.0.4の変更点を追記。
2009.08.29 – Snow LeopardでAppleTalk廃止。
2009.08.30 – Appleのドキュメントが更新されて、謎のコマンドが判明。
2009.09.01 – Snow Leopard関連速報 1) 2)を追加。
2009.09.25 – Time Machine関連情報を追加。
2009.10.03 – Netatalk 2.0.3時代の古い情報を色々削除。
2009.10.31 – EAとTime Machineの話を追加。そのほか色々。
2009.11.11 – Netatalk 2.0.5 (安定版) リリース
2009.12.19 – Netatalk 2.1devでEAの調子がよろしいので色々書き換え。
2010.02.07 – CVS HEADのバージョン表記が2.1devから2.1beta1に変わった
2010.02.15 – Netatalk 2.1beta1 (テスト版) リリース
2010.03.08 – oplocksあたりの説明を少し修正。その他。
2010.04.07 – NFDの説明をちょっと修正。その他。
2010.04.09 – Netatalk 2.1beta2リリースに伴う書き換え。
2010.04.26 – Netatalk 2.1 (安定版) リリース
2010.05.13 – EAの説明をちょっと修正。他にも色々古い記述を削除。
2010.05.15 – Netatalk 2.1にあわせて沢山修正。古い情報を沢山削除。
2010.05.26 – Netatalk 2.1.1 (安定版) リリース
2010.06.01 – 最新情報についてちゃんと書く暇がないので、上の方でブログにリンクしてごまかした。
2010.06.02 – 沢山修正。古い記述を削除して、今っぽくしたつもり。
2010.06.03 – 「残る問題」のところにバグ情報を追加。その他色々。
2010.06.04 – Gitのリンク先変更。その他色々。
2010.06.18 – Netatalk 2.1.2 (安定版) リリース
2010.06.22 – バグの報告先と開発版について説明
2010.06.27 – Time Machine対応について詳しくした
2010.07.12 – Netatalk 2.1.3 (安定版) リリース
2010.08.20 – 冒頭を書き換えた
2010.10.16 – Netatalk 2.1.4 (安定版) リリース
2010.11.02 – Netatalk 2.2alpha1 リリース
2010.11.10 – Netatalk 2.2alpha2 リリース
2010.11.12 – 古いNetatalkのuninstallの方法を説明。
2010.11.18 – Netatalk 2.2alpha3 リリース
2010.12.01 – Netatalk 2.2alpha4 リリース
2010.12.21 – Netatalk 2.1.5 (安定版)及びNetatalk 2.2alpha5 リリース
2011.01.30 – Netatalk 2.2beta1 リリース
2011.03.05 – Netatalk 2.2beta2 リリース
2011.03.10 – Netatalk 2.2-beta3 リリース
2011.04.05 – Netatalk 2.2-beta4 リリース
2011.05.13 – 「やってはいけないこと」を追加。その他。
2011.07.22 – Lionに関する記述をチラホラと追加。その他。
2011.07.28 – Netatalk 2.2.0 リリースに伴う全面書き換え。
2011.09.06 – Netatalk 2.2.1 リリース。色々書き換えた。
2011.09.17 – configureのsummaryの例を載せた。トラブルシュートに2件追加。その他色々。
2011.10.20 – alleaブランチを紹介。パーミッションが変な話を書き換え。その他色々。
2012.01.04 – ポート番号一覧を追加。リンク切れの修正。
2012.01.16 – Netatalk 2.2.2 リリースに伴う書き換え。GentooとSUSEのinitscriptの説明を追加。
2012.01.22 – ポート番号の説明でswatを忘れてた。
2012.01.24 – トラブルシュートにTime Machineが不安定な件を追加
2012.02.11 – branch-iniconfigを紹介。BSD Flagsの説明を追加。
2012.02.13 – 次期Netatalk 3.0の情報をチラホラ追加。
2012.02.16 – branch-iniconfigがbranch-alleaにマージされた。
2012.02.29 – GVfsの情報を追加。manpageの表示がズレる件を追加。mDNSResponderに言及。その他。
2012.03.27 – Netatalk 3.0 alpha1リリース。
2012.03.28 – 古い記述が色々残ってたので、修正した。
2012.03.29 – gitのブランチが変更になった。
2012.03.30 – Netatalk 2.xユーザのための情報を追加。
2012.04.04 – Netatalk 3.0 alpha2リリース。
2012.04.12 – UAMのシンボリックリンクが生成されないバグと回避方法に言及。
2012.04.15 – .AppleDesktopディレクトリに関する記述が間違ってたので修正。まだ残ってる。
2012.04.17 – .AppleDesktopは次のバージョンで自動移動になる。
2012.04.21 – Netatalk 3.0 alpha3リリース。
2012.04.26 – iconvの説明を復活。Solaris系のinitscriptの説明を修正。
2012.05.16 – Time Machineのボリューム名にnon-ASCIIが使えないバグが発覚。gitで修正済なので次のバージョンで直る。EUC-JP環境での注意点を追記。その他。
2012.05.23 – Netatalk 2.2.3 と 3.0 beta1 同時リリース。他にも色々修正。
2012.05.24 – Time Machineのスパースバンドルが壊れる問題に対応した件を追記。iconvの説明を強化。
2012.06.01 – Netatalk 3.0 beta2リリース。
2012.06.24 – spotlightブランチの紹介。
2012.07.09 – Netatalk 3.0リリース。
2012.07.26 – OS X 10.8 Mountain Lionで特に問題ないようなので、細かい修正のみ。
2012.09.04 – FreeBSDのportにnetatalk3登場。
2012.09.20 – gitのURLが変更になっている。
2012.09.28 – Netatalk 3.0.1リリース。
2012.10.20 – GitHubの紹介。その他。
2012.10.23 – エイリアスとシンボリックリンクについて少し追記。その他。
2013.01.22 – Netatalk 3.0.2リリース。その他色々。
2013.01.29 – シンボリックリンクの説明とCNIDの説明を更新。その他細かい修正。
2013.01.30 – トラブルシュートに「Netatalkに繋がらない」を追加。Time Machine対応の説明を詳しくした。ネストの説明を修正。その他。
2013.03.06 – 「ボリューム直下の隠しファイルやディレクトリが邪魔」と「各ディレクトリの.DS_Storeが邪魔」を追加。
2013.03.08 – Netatalk日本語メーリングリスト開設。
2013.03.26 – Netatalk 3.0.3リリース。configureオプションの説明を大幅変更。その他。
2013.04.10 – developブランチが次期3.1ベースに。
2013.05.14 – ドキュメントのリポジトリがソースリポジトリに統合された。その他。
2013.05.21 – GitHubのURLが移動。排他処理の説明を修正。
2013.05.25 – Netatalk 3.0.4リリース。
2013.06.12 – Mavericksの情報を追加。
2013.07.02 – 細かい修正。Netatalk 3.1-alpha1 リリース。
2013.08.14 – Netatalk 3.0.5 リリース。afp.confのdelete veto filesの説明を追加。
2013.10.26 – Netatalk 3.0.6 リリース。ネストの説明を更新。tdbの説明追加。
2013.10.29 – Netatalk 3.1.0がリリースされたけど、追いつかない。困った。
2013.12.25 – NetatalkとSambaがマージされる話を追加。
2014.01.13 – Netatalk 3.1.0ベースに更新。
2014.01.23 – Spotlight関連情報を更新。その他。
2014.02.15 – gitのブランチの扱い方が変更になった。
2014.02.23 – Netatalk-announceメーリングリスト開始。
2014.03.15 – Netatalk 3.1.1 リリース
2014.04.30 – ファイルシステムの特徴について色々追記した。
2014.05.30 – SELinuxのせいでZeroconfで宣伝できないケースがある話を追加。その他。
2014.06.05 – Netatalk 3.1.2 リリース。その他。
2014.07.03 – Netatalk 3.1.3 リリース。
2014.08.12 – Netatalk 3.1.5 リリース。
2014.08.27 – Netatalk 3.1.6 リリース。Debian 8 jessieのsystemdの件を追記。
2014.10.29 – OS側がlibtdbを用意している場合はバンドルでなくそっちを使うべきであることを説明。
2014.12.14 – 細かい修正。Netatalk 3.1.7対応。
2015.02.19 – LinuxのDTrace互換機能について説明を詳しくした。その他。
2015.03.17 – Samba 4.2.0がリリースされたのはよいが、vfs_fruitがバグってて、どーにもならんので、色々書いた。
2015.04.21 – Samba 4.2.1がリリースされたのはよいが、vfs_fruitがまだ直ってない。
2016.07.17 – ea = sambaの説明を追加。vfs_fruitの説明を大幅追加。「Netatalk 2.xから3.xへ移行する人のための情報」を別のページに分離。その他多数。
2016.07.20 – Netatalk 3.1.9対応。
2017.03.20 – vfs_fruitが使えるようになったので更新。

↑ Upper Page

Linux、Netatalk、Samba、NFSを使用したファイルサーバーについて研究・運用しています。

fsをフォローする
リンク参考リンク

コメント