2011.07.28
このページはnetatalk 2.1.xの時代のものなので既に古いです。2.1.xはOS X LionのTime Machineからバックアップできません。
最近の情報については、Netatalk and Sambaのページを御覧ください。
UNIX系OSをMac OS Xのファイルサーバとする場合、AFP、SMB(CIFS)、NFS、WebDAV等、様々なプロトコルから選ぶことができます。
sambaだけを使えば、簡単にMac OS X/Windows両対応のサーバに出来そうですが、この方法はお勧めしません。
Macからはnetatalk、Windowsからはsambaへ接続することをお勧めします。理由は、それぞれのファイルシステムは独自の仕様を持つからです。
Mac OS XのファイルシステムHFS+は、以下のような特徴を持ちます。
:」WindowsのファイルシステムNTFSは、以下のような特徴を持ちます。
\/:*?"<>|」
それぞれの仕様に合わせたプロトコルがAFPでありSMBです。
ファイル本体のみ正常に扱うことが出来れば他のメタデータは必要ないという考え方もありますが、メタデータはOSやアプリケーションが何らかの理由で扱うため、これを喪失すると思わぬトラブルに遭遇します。
Mac/Win両対応ファイルサーバを構築するならnetatalk/sambaの組み合わせにすべきです。
このページは拡張属性(EA)に対応したnetatalk 2.1系列について説明しています。2.1から2.1.2は深刻なバグがあるので、2.1.3以降をお勧めします。最新安定版は2.1.5です。
古いバージョンの情報は以下のページをどうぞ。2.0は拡張属性(EA)未対応のため、Mac OS 10.6 Snow Leopardから接続した場合に問題が発生します(Mac側のバグ)。
Netatalk 2.0.4 and Samba - 安定しているがちょっとセキュリティ問題あり。Time Machine対応なし。EA対応なし。
Netatalk 2.0.5 and Samba - Time Machine対応あり。EA対応なし。
sambaは裾野が広いので、バグを見つけても放っておけばそのうち直ってるかもしれません。
一方、netatalkはユーザ数が少ないので、問題を発見した本人が報告しないと永久に直らない可能性が大です。
netatalkの開発はSourceForgeで行なわれているので、これを使って情報交換してください。
メーリングリストは比較的活発なので、ここに問い合わせたりパッチを送るとすぐにでも反応があります。
管理者用メーリングリストのアーカイブ (見やすいが文字化けしやすい)
管理者用メーリングリストのアーカイブ (見にくいが文字化けしにくい)
Netatalk-admins Info Page - 参加するためのページ
開発用メーリングリストのアーカイブ (見やすいが文字化けしやすい)
開発用メーリングリストのアーカイブ (見にくいが文字化けしにくい)
Netatalk-devel Info Page - 参加するためのページ
Web上に誰でも書き込めるシステムもあります。
SourceForge.net: netatalk: Bugs
SourceForge.net: netatalk: Feature Requests
SourceForge.net: netatalk: Patches
SourceForge.net: netatalk: Topics for Help
日本語で情報交換する場は、ないに等しいです。
2ちゃんねるに「netatalkについて語るスレ」というのがあり、単純な問題が解決する可能性はありますが、込み入った問題が解決したケースはありません。まともな議論はまず無理でしょう。mixiにもコミュニティがありますが、閑古鳥が鳴いています。Twitterで呟いても無駄です。
netatalkについて語るスレ
[mixi] netatalk
netatalkの開発はGitで行なわれています。
開発版のソースの入手はgitコマンドを使いますが、snapshotのtarballを拾ってくる方法もお手軽です。
いくつかのブランチがあります。
現行安定版のバグを修正して次の2.1.xを目指すものです。特別な理由がない限り、新機能の追加はありません。現在のバージョン表記は2.1.6dev。
http://netatalk.git.sourceforge.net/git/gitweb.cgi?p=netatalk/netatalk;a=shortlog;h=refs/heads/branch-netatalk-2-1
バージョン2.2を目指すものです。色々と新機能があります。現在のバージョン表記は2.2-beta4。
http://netatalk.git.sourceforge.net/git/gitweb.cgi?p=netatalk/netatalk;a=shortlog;h=refs/heads/master
いまのところ、masterには以下のような機能が追加されています。
Git版のソースにはconfigureスクリプトが含まれません。bootstrapスクリプトを動かすとconfigureスクリプトが生成されます。
netatalk本体をインストールする前に、ライブラリ関係をインストールしておきます。これらのライブラリは大抵のOSで標準的に配布されています。ただし、Berkeley DBのバージョンを選ぶのでソースからビルドする必要があるかもしれません。
クライアントであるMacからサーバが見えるようにするには、Zeroconfデーモン(Mac OS X 10.2以降)やSLPデーモン(Mac OS 8.5 - Mac OS X 10.4)をインストールする必要があります。Mac OS 8.1以前の場合はnetatalkに付属のatalkdを起動すれば見えるようになります。IPアドレスやhostnameを直接指定して接続するならば、これらは必須ではありません。
Bonjour (旧称Rendezvous)ではZeroconf (Avahi, Howl)が使えます。Howlは既に開発停止なので説明しません。
Avahiのホームページ: Avahi
Avahiはafpdの起動/停止に連動しないので、インストールはnetatalkの前でも後でも結構です。設定ファイルを書く必要があります。
Avahiのafp.serviceの例
<?xml version="1.0" standalone='no'?><!DOCTYPE service-group SYSTEM "avahi-service.dtd"><service-group> <name replace-wildcards="yes">%h</name> <service> <type>_afpovertcp._tcp</type> <port>548</port> </service></service-group>開発中のnetatak 2.2なら既にAvahi対応しているのでafp.serviceを用意する必要はありません。
SLPを使う場合はnetatalkの構築より先にインストールしておくことをお勧めします。afpdの起動/停止に合わせて動的に宣伝するようになります。
フリーのslpdには、OpenSLPがあります。
OpenSLPのホームページ: OpenSLP Home Page
起動スクリプトはソースアーカイブのetcディレクトリにあるファイルが参考になります。設定ファイルslp.confは、特に理由がなければデフォルトのままで問題ないと思います。
netatalkがSLP未対応でコンパイルされている場合は、静的に宣伝させる事も出来ます。afpdの起動/停止に無関係に宣伝しっぱなしになりますが、大きな問題ではないでしょう。設定ファイルslp.regに次のように書きます。192.168.1.1の部分はサーバのIPアドレスに読み替えて下さい。
afp://192.168.1.1/?NAME=サーバ名&ZONE=なお、Solaris標準の/usr/lib/inet/slpd (SUNWslpr, SUNWslpu)もnetatalkで使えます。
下の「netatalkのユーザ認証」のところで説明するように、暗号化パスワードを使う為にはOpenSSLやLibgcryptをインストールしておく必要があります。前者でDHXが有効になり、後者でDHX2が有効になります。
特にクライアントがMac OS X 10.5 Leopard以降である場合はインストールしておいた方がいいです。
詳しくは下の「ユーザ認証」を読んで下さい。
OpenSSLのホームページ: OpenSSL: The Open Source toolkit for SSL/TLS
Libgcryptのホームページ: Libgcrypt - Free Software Directory - Free Software Foundation
netatalk 2.1以降はCNIDを扱うためにBerkeley DB 4.6以上を必要とします。netatalk 2.1.3にて最新のBerkeley DB 5にも対応しました。
バージョンが適切でないとconfigureの途中にエラーが出て止まるので、適切なバージョンのBerkeley DBをインストールしてください。/usr/local/BerkeleyDB.4.8/というようなバージョン番号付きのディレクトリにインストールすることができるので、別バージョンと共存出来ます。
Berkeley DBのありか: Berkeley DB | Oracle Embedded Database
参考: Netatalk 2.1 Manual - Chapter 2. Installation
古いバージョンのnetatalkをインストールしているなら、設定ファイルのバックアップしてから、バイナリ類の削除です。古いものが残っていると色々と悪さします。
ソースから入れていた場合は、そのソースのディレクトリに移動してmake uninstallです。
$ cd netatalk-xxx/$ sudo make uninstall
パッケージで入れている場合は削除用のコマンドが用意されているでしょう。Debian系ならaptitude removeとかaptitude purge、RedHat系ならrpm -eです。
やっとnetatalkのインストールです。現行安定版のソースはこちら。
Browse netatalk Files on SourceForge.net
ソースを展開。
$ tar zxvf netatalk-XXX.tar.gz$ tar jxvf netatalk-XXX.tar.bz2では、configureしましょ。(Git版の場合はconfigureがないので予めbootstrapを実行します。)
$ cd netatalk-XXX/$ ./configure \ --enable-redhat
オプションは古いバージョンとは結構違います。$ ./configure --helpで確認してください。
--enable-redhatはRedHat、Fedora、CentOS等の場合の起動スクリプトをインストールするオプションです。他に--enable-suse、--enable-gentoo、--enable-cobalt、--enable-netbsd、--enable-debianがあります。Solarisでは何も指定しなくてもSolaris用がインストールされます。
あと、ライブラリをうまく認識しない場合は、--enable-srvloc、--with-libiconv、--with-libgcrypt-dir、--with-ssl-dir、--with-bdb、--with-gssapi等を設定してください。
以下のオプションは昔のものです。現在のnetatalk 2.1.xのconfigureにはありません。
× --with-tags (netatalk 1.xの時代のもの)× --with-nls-dir (netatalk 1.xの時代のもの)× --with-did (netatalk 1.xの時代のもの)× --with-cdb (netatalk 1.xの時代のもの)× --with-mangling (netatalk 1.xの時代のもの)× --with-flock-locks (netatalk 1.xの時代のもの)× --with-logfile (ログファイルは設定ファイルで指定可能だから)× --with-cnid-dbd-txn (これがデフォルトだから)× --with-cnid-db3-backend (廃止)× --with-cnid-hash-backend (廃止)× --enable-sendfile (Linuxだとデフォルトで有効だから)めでたくconfigureが終わったら、構築してインストール。
$ make$ sudo mv /etc/netatalk /etc/netatalk.old$ sudo make installうーん、ここで説明しなくても資料は沢山あるでしょう。
netatalk.confはnetatalk全体の設定を行ないます。
ただし、Debian系(Ubuntuとか)の場合はnetatalk.confではなく/etc/default/netatalkです。Debian系なのに/etc/default/netatalkが存在しない場合はnetatalk.confを/etc/default/netatalkにmvして使ってください。
ATALK_MAC_CHARSET='MAC_JAPANESE'ATALK_UNIX_CHARSET='UTF8'
ATALK_MAC_CHARSET=はMac OS 9側の文字コードです。atalkdとpapdが扱う文字コードの指定なので、"AFP over TCP"によるファイル共有しか使わない人には、実は関係ない設定です。Mac OS Xからの接続はこの設定に左右されず、UTF8-MACに固定です。
ATALK_UNIX_CHARSET=はUNIX側の設定ファイル内で使う文字コードです。デフォルトではLOCALEになっており、ロケールを元に自動設定されますが、うまく動作しない場合があるようです(調査中)。最近の環境だとUTF8に設定すべきです。古い環境の場合はEUC-JP等でしょう。
ATALKD_RUN=no (AppleTalkデーモン)PAPD_RUN=no (AppleTalkプリントサーバ)TIMELORD_RUN=no (AppleTalkベース時刻合わせサーバ)A2BOOT_RUN=no (Apple IIブートサーバ)CNID_METAD_RUN=yes (CNID管理のサーバ)AFPD_RUN=yes (AFPファイルサーバ)netatalkに含まれる各種デーモンのうち、どれを起動するか設定します。ファイルサーバとして使うならcnid_metadとafpdを起動してください。 古いAppleTalkを使う場合はまずatalkdを起動し、それ以外を必要に応じて起動します。
参考: Netatalk 2.1 Manual - netatalk.conf
- -maccodepage MAC_JAPANESE
afpd.confはファイルサーバafpdの設定を行ないます。
先頭の項目はサーバ名の設定ですが、「-」にしておくとhostnameと同じになります。
-maccodepageはMac OS 9側の文字コードです。Mac OS Xからの接続はこの設定に左右されず、UTF8-MACに固定です。一部例外がありますが、非常にややこしいしnetatalk 2.1以降で対策済なので説明しません。
あと、-unixcodepageというのもありますが、これはUNIX側の設定ファイルで使う文字コードです。ボリューム名、サーバメッセージ、認証あたりが日本語のときに重要になります。UTF8がデフォルト値なので省略可能です。古い環境だとEUC-JP等を指定する必要があるかもしれません。
参考: Netatalk 2.1 Manual - afpd.conf
AppleVolumesファイル群で設定するものは以下の2つ。
各ユーザ別の設定は~/AppleVolumesか~/.AppleVolumesで行ない、これがない場合はAppleVolumes.defaultが読み込まれます。
全ユーザ共通の設定はAppleVolumes.systemで行ないます。
予め用意されている設定ファイルでは、AppleVolumes.defaultでボリューム設定、AppleVolumes.systemで拡張子の関連付けを行なっています。
:DEFAULT: options:upriv,usedots dperm:0700 fperm:0600 maccharset:MAC_JAPANESE ea:sys
:DEFAULT:の行は全ボリュームで共通の設定を行ないます。
usedotsを設定しないと、ドットで始まるファイル名があった場合、最初のドットを:2eに置き換えて保存します。例えば「.abc」は「:2eabc」になります。usedotsを設定すればそのまま保存しますが、netatalkが予約している「.Apple」で始まるファイル名及び「.Parent」がMac側から作成出来なくなります。これは、大昔のnetatalkの事情による弊害です。
uprivはUNIX風のパーミッションを有効にするオプションであり、dpermとfpermはそれぞれディレクトリとファイルのパーミッションとORを取って保存するものです。Mac OS X 10.5以降はFinderからパーミッションをいじると「000」になってしまう場合があるという、とんでもない問題があるので、この設定を行ないます。この設定例だと、少なくともファイル所有者は確実に読み書き出来ます。みんなで仲良く使うボリュームならば、dperm:0775 fperm:0664というのもアリでしょう。
maccharset:はMac OS 9側の文字コードです。afpd.confの方で設定しておけば、この設定は省略できます。Mac OS Xからの接続はこの設定に左右されず、UTF8-MACに固定です。
volcharset:というのもありますが、これはUNIX側のファイル名の文字コードであり、デフォルトはUTF8です。古い環境だとEUC-JP等を指定する必要があるかもしれません。
ea:は、拡張属性(EA)の保存方法の設定です。デフォルトはautoです。
ea:sys | EAをEAとして保存します。つまりサーバ側のファイルシステムで拡張属性を有効にしておく必要があります。 |
ea:ad | .AppleDoubleディレクトリの中に沢山ファイルを作って、そこにEAを保存します。 |
ea:none | EAサポートなし。netatalk 2.0互換用。通常は使うべきでない。 |
ea:auto | sysが使えるかどうか試して、ダメだったらadにする。ただしoptions:roを指定してリードオンリーにしている場合はnoneになる(CD-ROMとかの対応)。 |
ea:autoのときログに、
volume "xxxx" does not support Extended Attributes, using ea:ad insteadと出ている場合、EAをEAとして保存できなかったのでファイルに保存するということです。ファイルシステムの設定を確認してください。
Linuxのext2/ext3/ext4は正しく設定すればEAが使えます。btrfsは何も設定しなくても使えます。FreeBSDやSolarisでも使えます。NetBSD、OpenBSDはデフォルトで拡張属性が使えないようなのでadかもしれません。
~
「~」だけ書いた行は、ユーザのホームディレクトリをボリュームとして使えるようにする設定です。
/aaa/bbb "ccc"サーバ側の/aaa/bbbというディレクトリをcccというボリューム名で公開する設定です。
/xxx/backup "Time Machine Vol" options:tm volsizelimit:1024
Time Machine用の設定です。サーバ側の/xxx/backupというディレクトリをTime Machine Volというボリューム名で公開します。tmでTime Machine対応であることをクライアントに通知します。volsizelimit:は、ボリュームのサイズをクライアントに知らせるときに、嘘をつく設定です。Mac OS X 10.6.3のTime Machineはボリュームのサイズぎりぎりまで使い切るので、それだと困る人は設定してください。単位はMiBなので、1024だと1GiBになります。
.lzh "LHA " "LARC".sit "SIT5" "SIT!".jpg "JPEG" "ogle"ドットで始まる行は拡張子とType/Creatorの対応付けです。Mac OS 9以前から接続する場合は、必要に応じて設定してください。デフォルトでは全く設定されていません。全ての行がコメントアウトされています。netatalkが勝手にType/Creatorを付けるのは有害であるという判断です。
参考: Netatalk 2.1 Manual - AppleVolumes.default
[global]dos charset = CP932unix charset = UTF-8display charset = UTF-8
dos charsetはDOS/Windows 3.1/95/98/MEからアクセスしたときのファイル名の文字コードです。Windows NT系 (NT/2000/XP/Vista/7)からの接続はこの設定に左右されず、UTF-16に固定です。
unix charsetはUNIX側のファイル名の文字コードです。samba.gr.jpにある文書によれば、LOCALEが日本語EUCになっているようなシステムではUTF-8ではなくEUCJP-MSというパラメータ値を設定することになっています。
display charsetはsmbclientコマンド等が使う文字コードです。古い環境ではEUCJP-MS等を設定する必要があるかもしれません。
参考: Samba 3.0で日本語を利用できるようにしたパッケージ集
また、SMB (CIFS)にはファイルをロックする機能(oplock)というのがあります。SMBクライアント側でファイルをキャッシュして転送量を減らすものです。システム自身がoplockに対応していないとロック中のファイルをUNIX側(netatalk経由も含む)から編集したときにファイルが壊れる可能性があるので、これをを無効にする必要があります。
oplocks = NoLinuxのようにkernel自身がoplockに対応している場合はoplockが問題なく使えるので次のようにします。
kernel oplocks = Yesoplocks = Yesoplockの動作状況はswatのstatus画面やsmbstatusコマンドで確認出来ます。samba経由で一度ロックしておき、UNIX側またはnetatalk側から同じファイルをいじったときにロックが外れる事を確認することをお勧めします。
しかし、Windowsから代替データストリームを使う為にstreams_xattrを使っている場合、kernel oplocksと共存出来ないので次のようにします。
kernel oplocks = Nooplocks = No vfs objects = streams_xattr
ややこしい...
また、netatalk/Mac OS 9/Mac OS Xが作る隠しファイルをsamba経由で見えないようにする事が出来ます。
options:usedotsを設定していない場合は、先頭のドットを:2eにする必要があります。
veto files = /.AppleDB/.AppleDouble/.AppleDesktop/Network Trash Folder/TheFindByContentFolder/TheVolumeSettingsFolder/Temporary Items/.TemporaryItems/.VolumeIcon.icns/Icon?/.FBCIndex/.FBCLockFolder/この設定を行なうと、samba経由でフォルダを削除しようとしたときにエラーになる事があります。フォルダ内にveto filesで設定したファイルが隠れているからです。そこで次のように設定します。隠したファイルをまとめて削除してくれるようになります。
delete veto files = Yessambaのvfsモジュールにnetatalkというのがあります。
vfs objects = netatalk
これを使うと、samba経由でファイルを操作したときに孤立してしまう.AppleDoubleディレクトリ内のファイルを自動で消してくれます。が、UNIX側から直接rmした場合等は結局残ってしまうわけですから完璧な対処法とは言えないでしょう。 しかも、このモジュールはほとんどメンテされていないので、まともに動くかどうかわかりません。netatalkボリュームの整理はnetatalkに付属するdbdコマンドを使って下さい。単に孤立ファイルを消すだけならdbd -rcです。cronで定期的に実行するのが良いと思います。
参考: Chapter 20. スタッカブルVFSモジュール
参考: Netatalk 2.1 Manual - dbd
次のようなAppleVolumesファイルを書いてボリュームをネストしてはいけません。
CNIDが二重管理になるので正常動作しません。
/some/where "volume one"/some/where/abc "volume two"
なんだかとってもエレガントに思えますが、実際はダメです。
LinuxのHFS+ドライバがバグってるそうで、正常動作しないそうです。もしバグがなくてもダメです。メタデータの扱い方が異なるからです。OSにnativeなファイルシステムを使ってください。
メタデータの扱い方が異なるので、正常動作しません。
更にNFSやらWebDAVやらsshfsを混ぜると、メタデータだけでなくファイル名の問題も絡んでひどいことになります。Macはnetatalk、WinはSambaという風に完全に分けることをお勧めします。
まあ、ご存知だとは思いますが、AppleDoubleファイルが孤立します。
Finder情報とかリソースフォークとかに大した情報が入っていない場合はこの限りではありません。ゴミとして残ったAppleDoubleファイルはdbdコマンドで消してやってください。
この問題は将来のnetatalk 3.0でなんとかなると思います。たぶん。

Mac OSがバージョンアップするにしたがってAppleTalkの機能は縮小し、Mac OS X 10.6 Snow Leopardで完全廃止になっています。
つまり、恐ろしく古いMacを持っていない限り、atalkdを起動する意味はありません。レトロな趣味の方はatalkdを御活用ください。最近でもSystem 6から接続している人がいます。
拡張属性 (EA)って何? と思う方は以下のページを参照してください。Tiger以降でサポートされており、Snow Leopardでは極めて重要です。
netatalk 2.0はEA未対応です。
netatalk 2.1はEA対応です。
EAの設定は上で説明しているAppleVolumes.defaultで行なってください。
書き込み可能なのにea:noneを設定すると、EA未サポートになるので面倒なことになります。
Leopard迄は、EA付きファイルをEA未対応サーバにコピーしたとき、EAが消えてなくなります。
Snow Leopardでは、例えばEA付きのabc.txtというファイルをEA未サポートnetatalkにコピーすると次のような4つのファイルが作成されます。
abc.txt._abc.txt.AppleDouble/abc.txt.AppleDouble/._abc.txt
1つめは、ファイル本体。
2つめは、EAを保存するために、Snow Leopardが勝手に作りやがったAppleDoubleフォーマットのファイル。
3つめは、abc.txtに対応するリソースフォークとかタイムスタンプを保存するために、netatalkが作成したAppleDoubleフォーマットのファイル。
4つめは、._abc.txtに対応するnetatalkが作成したAppleDoubleフォーマットのファイル。
つまり、ea:noneのとき、EA付きファイルを1つ作ると、それに付随するAppleDoubleファイルが3つ出来ます。
しかもこの動作のとき、Snow Leopardはパーミッションの設定を間違えるため以下のエラーが出るケースが非常に多いです。
Snow Leopardは._abc.txtを作成した直後に、それのパーミッションを000に設定します。当然アクセス権がありません。明らかにSnow Leopardのバグです。 ea:noneはリードオンリーのボリュームにのみ使って下さい。
AppleDoubleファイルの内容は、apple_dumpコマンドで確認できます。
昔のnetatalkはTime Machine未対応であり、無理矢理使うためには面倒な作業が伴いました。netatalk 2.0.5以降はTime Machine対応になっており、ラクチンです。設定は上のAppleVolumesのところを読んでください。
手順は以下のとおり。
options:tmを追加。volsizelimit:も設定しておいた方がいい。なぜマウントしなければバックアップ先として選べないかというと、ちゃんと理由があります。クライアントがマウントするとき、「ボリュームの情報をよこせ」と問いかけ、その返答に「Time Machine対応です」というのがあるからです。
マウントしなくてもTime Machine対応であることを知らせる方法もあります。Bonjourにて「Time Machine対応ボリュームがここにあるよ」と、予め宣伝しておく方法です。Avahi用のファイルadisk.serviceを用意します。
<?xml version="1.0" standalone='no'?><!DOCTYPE service-group SYSTEM "avahi-service.dtd"><service-group> <name replace-wildcards="yes">%h</name> <service> <type>_adisk._tcp</type> <port>9</port> <txt-record>sys=adVF=0x100</txt-record> <txt-record>dk0=adVN=Time Machine Vol,adVF=0x81</txt-record> </service></service-group>
ここでTime Machine VolというのがTime Machine用のボリューム名です。
Lionの場合、開発中のnetatalk 2.2beta3以降でなければTime Machineが使えません。netatalk 2.2系は既にAvahi対応しているので、afp.serviceとかadisk.serviceといったファイルは消してください。こんなものを用意しなくても、勝手に宣伝してくれます。
MacOSの為に作られたHFS+というファイルシステムでは、ファイルやフォルダにCNID (Catalog Node ID)と呼ばれる番号を付けて管理しています。File ID、Directory IDと呼ぶ場合もあります。これはAFPの場合も同様です。
netatalkでは、Berkeley DBを使って .AppleDB/というディレクトリでCNIDのデータベースを管理しています。 これに関する設定はAppleVolumesファイルで設定します。CNIDの管理方法は何種類か用意されており、netatalk 2.0ではcnidscheme:cdbがデフォルトでしたが、これは不安定でした。netatalk 2.1ではconfigure時に指定しない限りcdbは無効になっています。2.1で使えるcnidschemeは以下のとおり。
cnidscheme:dbd | これがデフォルト。cnid_metadデーモンがデータベースを一括管理し、.AppleDB/ディレクトリにデータを保存する。各afpdはcnid_metadと通信するだけ。 |
cnidscheme:tdb | .AppleDB/ディレクトリが読み書き出来ないときに、代わりとしてメモリ上でCNID管理する。 |
cnidscheme:last | 推奨されない。afpdプロセス毎にその場限りの管理をする。書き込み可能のボリュームで使うと不安定。 |
通常はデフォルトのdbdを使うでしょう。cnid_metadデーモンが起動していることを確認してください。これが動いていないと、ボリュームにアクセス出来ません。tdbやlastの場合はcnid_metadは必要ありません。
.AppleDB/内のデータベースは滅多に壊れません。もし壊れても、大抵はnetatalkが自動修復します。自動修復がうまくいかない場合はメンテ用のdbdコマンドで修復します。それでも修復出来ないような状況ならば、netatalkを停止→.AppleDB/ディレクトリを削除→netatalkを再起動してください。勝手に新たな.AppleDB/ディレクトリが作られます。
書き込み可能なボリュームであってもlastを使えば動作が速くなるという情報が出回っていますが、これは信用しないでください。間違った認識を元にした情報です。
参考: Netatalk 2.1 Manual - Choosing a CNID storage scheme
参考: Netatalk 2.1 Manual - cnid_metad
参考: Netatalk 2.1 Manual - cnid_dbd
参考: Netatalk 2.1 Manual - dbd
AFPのユーザ認証方法(UAM)は、afpd.confの-uamlistオプションで設定します。デフォルト値は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文字制限。今更誰も使わない。 |
| 2-Way Randnum | uams_randnum.so |
双方向乱数交換。56ビットDES。弱い暗号化。8文字制限。今更誰も使わない。 |
| 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 | なし | 再接続。 |
uams_randnum.soは、afppasswdファイルを使ってパスワードを管理します。AFPクライアント側からパスワード変更すると、このファイルが書き換えられる筈です。つまりUNIXパスワードとは別管理です。
uams_cleartxt.soとuams_dhx.soとuams_dhx2.soは、netatalkのコンパイル時のオプションにより、UNIXのpasswdファイル、shadow passwd、PAMのどれかを使うことになります。
uams_gss.soは使った事がなくわかりませんので、とりあえずリンクだけしておきます。
DHXパスワードを使う為には、OpenSSLライブラリを使ってnetatalkをコンパイルする必要があります。DHX2パスワードを使う為にはLibgryptライブラリが必要です。
DebianやUbuntuのnetatalkはライセンスの関係でuams_dhx.soが入っていません。Mac OS X 10.2以前はuams_dhx2.soが使えないので注意が必要です。セキュリティ的に不安なuams_cleartxt.soを使うか、自分でビルドしてuams_dhx.soを使えるようにするか、どちらかです。
あと、netatalk 2.2ではLDAPを使って云々... ですが、全く知識がないのでパス。
sambaのユーザ認証は、smb.confのsecurity =で色々と設定出来ます。user, share, server, domain, adsが選べますね。
他にも色々パラメータがあります。
encrypt passwords = yes/nolanman auth = yes/nontlm auth = yes/noclient NTLMv2 auth = yes/noclient lanman auth = yes/noclient plaintext auth = yes/no
netatalkの起動は、まず起動スクリプト(initscript)で有効にしておいて、netatalk.confでどのdaemonを動かすか決めるという事になっていますが、OSやディストリビューションで微妙に方法が違います。特に、Debian系ではnetatalk.confを使わず/etc/default/netatalkを使うので注意してください。
configureスクリプトには--enable-redhat、--enable-suse、--enable-gentoo、--enable-cobalt、--enable-netbsd、--enable-debianといったオプションがあるので、これをちゃんと選べば環境に応じた起動スクリプトがインストールされる筈です。
RedHat, Fedora, CentOS等のRedHat系の場合、configure optionは--enable-redhatを使います。
起動スクリプトは/etc/rc.d/init.d/atalkでしたが、次のバージョンからは/etc/rc.d/init.d/netatalkに変更になります。
netatalk.confは有効です。
DebianやUbuntuの場合、configure optionは--enable-debianです。
netatalk.confを使わず、代わりに/etc/default/netatalkを使います。もし/etc/default/netatalkがない場合はnetatalk.confをmvして使ってください。
FreeBSD 6.2と7.0のportsを確認したところ、rcスクリプトは/usr/local/etc/rc.d/netatalkでした。
各デーモンの起動は/etc/rc.confで以下のように設定します。
netatalk_enable="YES"atalkd_enable="NO"papd_enable="NO"timelord_enable="NO"cnid_metad_enable="YES"afpd_enable="YES"
/usr/local/etc/netatalk.confで最大クライアント数、 zone名、NBP名、ゲスト接続のユーザのマッピング等が設定出来ます。
最近portsの方で動きがあるので、この情報は既に古いかもしれません。最近ちゃんと調べてないです。
configure optionは--enable-netbsdです。NetBSD 3.1と4.0のpkgsrcを確認したところ、起動スクリプトは/usr/pkg/share/examples/rc.d/にサンプルがあるので/etc/rc.d/にコピーします。
各デーモンの起動は/etc/rc.confで以下のように設定します。
atalkd=NOpapd=NOtimelord=NOcnid_metad=YESafpd=YESSolarisはconfigureオプションにありませんが、ちゃんと動きます。AppleTalkを動かす場合はDDPドライバをインストールします。
# cd sys/solaris# gmake kinstall
起動スクリプトは/etc/init.d/atalkです。Solaris10ならsvcadmコマンドが使えます。
netatalk.confは有効です。
クライアントから接続して操作してみるのは当然ですが、転ばぬ先の杖として以下をチェックしておくことお勧めします。
サーバとクライアントの双方で、アクセス権の確認をすべきです。特にnetatalkの場合、サーバ側のls -l、クライアント側のls -l、Finderの「情報を見る」のそれぞれで見え方が違うので面食らいます。
また、sambaはACL対応していますが、netatalk 2.1はSolarisでZFSを使ったときのみACLに対応します。
別ユーザで接続してみて他人のファイルを読み書き出来るかどうかもチェックしておくべきです。
ASCIIは大抵大丈夫でしょうが、日本語ファイル名、多言語ファイル名、長いファイル名、禁止文字の確認をすべきです。
MacとWindowsの双方から操作してみて、リソースフォークやカスタムアイコン、EA、代替データストリーム等が消える条件を知っておくべきです。
Macには作成時刻/変更時刻/最終アクセス時刻の3つがありますが、UNIXには作成時刻と変更時刻の区別がありません。netatalkではAppleDoubleファイルに時刻を格納して対応しています。samba側、UNIX側から作成したファイルにはAppleDoubleファイルがないわけですから、作成時刻と変更時刻が同じになります。
HFS+やAFPは1s単位で時間を刻みます。
NTFSは100ns単位で時間を刻みますが、FATでは2s間隔しか扱えません。sambaは設定次第でNTFS互換にもFAT互換にもなります。samba 3.5.0で、100ns単位で扱えるようになりました。
UNIX側はファイルシステムによって時間の解像度が異なります。例えばext3は1sですがext4は1nsです。
サーバとクライアントでタイムスタンプが完全に一致するとは思わない方がいいです。
サーバ側でシンボリックリンクを作ると、netatalk 2.0では問題が発生しました。CNIDに混乱が発生するからです。netatalk 2.1では、クライアントからちゃんとシンボリックリンクに見えます。サーバとクライアントの両方で、ls -lして確認してください。
sambaはfollow symlinksにてシンボリックリンクを追跡するかどうか設定できます。
AFPクライアントからAFPサーバへの接続は、次のような手順で行なわれます。
つまり、この問い合わせ(GetStatus)への返答内容が間違っていると、様々な問題が発生します。
netatalkにはasip-status.plというコマンドが付属しています。これはAFPサーバにTCP/IPでGetStatusを送り、その返答内容を表示するものです。次はその例です。(参考例なので、今となっては無駄な設定も混ざっています)
# asip-status.pl サーバのIPアドレスAFP reply from myservername:548Flags: 1 Cmd: 3 ID: 57005Reply: DSIGetStatusRequest ID: 57005Machine type: NetatalkAFP versions: AFPVersion 1.1,AFPVersion 2.0,AFPVersion 2.1,AFP2.2,AFPX03,AFP3.1,AFP3.2UAMs: DHX2,DHCAST128Flags: SupportsCopyFile,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsSrvrNotifications,SupportsOpenDirectory,SupportsUTF8Servername,SupportsSuperClientServer name: myservernameSignature:a6 29 d7 5b e0 82 51 3e b0 6f 2d 19 dc 10 9e f8 .).[..Q>.o-..... Network address: 192.168.1.130 (TCP/IP address)Network address: myservername.example.org (DNS address)Network address: myservername.example.org (SSH tunnel address)Network address: 65280.129 (ddp address)UTF8 Servername: myservername
Machine type:は単なる参考情報です。大昔のnetatalkはMacintoshと名乗りましたが、現在は正直にNetatalkと名乗ります。
AFP versions:は対応しているAFPのバージョンです。1.1から2.1迄はAppleTalkであり、2.2以降はTCP/IPです。
UAMs:は対応している認証方法です。詳しくは上の「ユーザ認証」を参照してください。
Flags:はサーバが対応している様々な機能を表します。
Server name:とUTF8 Servername:はサーバ名です。前者はMacJapaneseであり、後者はUTF8-MACです。普通はASCIIの名前にするでしょうから、両者は同じでしょう。ここがlocalhostになっていると、問題が発生します。
Signature:は、サーバを区別する為のものです。同じサーバに二重接続するのを防ぐ為にあります。逆に、何かの間違いで同一のSignatureのサーバがあると、一方にしか繋がらないという問題が発生します。netatalk 2.0には同じSignatureになりやすい問題がありましたが、netatalk 2.1では対策がとられました。
Network address:は接続するサーバのアドレスです。適切なアドレスになっている事を確認してください。ここがlocalhostとか127.0.0.1になっていると問題があります。この問題は/etc/hostsの記述に由来します。
悪い例 ×
127.0.0.1 myservername localhost.localdomain localhost良い例 ○
127.0.0.1 localhost192.168.1.130 myservername myservername.example.orgこの間違った/etc/hostsの記述は、sambaでも問題となります。
参考: 日本Sambaユーザ会 - Sambaが動作しないときの診断方法
以上の説明で、localhostとか127.0.0.1がヤバい事がおわかりでしょう。この現象に遭遇した場合は、サーバのhostnameや/etc/hostsが適切かどうか確認してくだい。
また、AppleTalkやAFP over SSHを有効にしている場合、それらに対応するNetwork address:が表示される事も確認してください。
Mac OS X 10.3から10.4では、サーバにAFP over SSHで安全に繋ぐ機能がありました。afpd.confに
-advertise_ssh -fqdn サーバ名
と書いておけば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に接続出来ます。(ただし重いです)
サーバ側でsshを使い、クライアント側はトンネリングする為のソフトを入手してWindowsにインストールし、SMB over SSHを実現する方法がありますが、結構手間がかかります。
samba 3.2以降で暗号化通信がサポートされたようですが、よく知らないのでパス。
Something wrong with the volume's CNID DB, using temporary CNID DB instead. Check server messages for details!
書いてある通り、CNID DBの何かがおかしいです。netatalkのログを確認してください。
原因としては、以下のようなものが考えられます。
CNIDデータベースの問題の場合はdbdコマンドで修復してください。修復できない場合は.AppleDB/ディレクトリを削除してください。
cnid_dbdが起動してない場合は設定ファイルや起動スクリプトを確認してください。
通信できてない場合は、IPv4とIPv6の取り違えとか、ファイアウォールの設定が考えられます。
そもそも、Mac OS Xのパーミッションの動作が変です。Terminall.appからls -lで見た場合と、Finderの「情報を見る」で確認出来るパーミッションが異なります。更にFinderからは実行属性が扱えません。
更にMac OS X 10.4 Tiger迄と10.5 Leopard以降で動作が違います。Leopard以降ではユーザひとりで使っているような場合は問題ありませんが、複数ユーザで使っている場合、同一groupの他ユーザがアクセス出来ないかもしれません。これはAppleVolumesファイルでuprivオプションを使うと緩和出来ます。UNIXパーミッションを継承するものです。Leopard以降の「情報を見る」でアクセス権を変更するとパーミッションが異常になりファイルにアクセス出来なくなるので注意してください。こうなるとchmodコマンドで直すしかありません。
netatalk 2.0.4以降では、dperm、fpermというオプションが追加されています。これはクライアントが要求してきた属性とORを取るものです。例えば、dperm:700 fperm:600と設定しておけば、少なくとも所有者は確実に読み書き出来ます。
なお、この問題はnetatalk 2.2系にてACL及びOpenLDAPの設定を行うと解決する見込みです。
なお、Windowsからsambaにコピーしたファイルに実行属性がついてしまうのは別の現象なので混同しないで下さい。FATやNTFSにあるアーカイブ属性がUNIXのファイルシステムにはないので、代わりに実行属性に割り当てているのが原因です。アーカイブ属性を継承する必要がないのならsmb.confでmap archive = noを使うとよいです。
sambaにはsmbclientコマンドが付いてきますが、netatalkにafpclientコマンドはありません。
TCP/IPベースでAFPのボリュームをファイルシステムとしてマウントするafpfs-ngというのがあります。ftpコマンドのようなafpcmdも付属します。テストしてみましたが、まだまだ不完全です。AppleTalkは使えません。ファイル名はUnicodeのみでMacJapaneseは扱えません。Unicodeの合成(precompose)の処理に問題があり日本語ファイル名がまともに扱えないので開発者にパッチを送ってありますが、いつまで経ってもバージョンアップされません。まともに使えるのはせいぜいASCIIファイル名だけでしょう。リソースフォークは扱えないのでデータフォークのみです。
alexthepuffin - afpfs-ng 0.8 An open source client for Apple Filing Protocol
SourceForge.net: afpfs-ng
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の長さは実質的に無制限となっています。パケットを解析してみると、pathname長さを示すところが2バイトあるので、0xFFFF=65535バイト迄表現出来る筈です。
AFP 3の仕様書をみると、ファイル名の扱い(type)には三種類あります。
| Type1 | short name | DOS互換/8.3形式 |
| Type2 | long name | HFS互換/日本語環境ではMacJapanese/31バイト制限 |
| Type3 | unicode name (AFPname) | Unicode (decomposed UTF-8)/実質的に長さ制限なし (パケット解析すると65535バイト制限) |
我々が普段「短い名前」と言っているのは、仕様書上では「long name」であり、「長い名前」と言っているのは「unicode name」或は「AFPname」と呼びます。
Appleのページに説明があります。
B ツリーキーの比較ルーチン(Unicode 文字列を比較する)の複雑さを緩和するために、HFS Plus では Unicode 文字を完全に分解した形式にして、合成文字を標準の順番で格納することを規定しています。
正規化処理を行なう場合、NFDの方がNFCよりも速いんです。
しかしだねえ、そもそもファイル名を正規化する必要性はあるのか? 正規化ってのは、文書内での問題を解決する目的ではないのか?
AppleのTechnoteのページにUNICODE DECOMPOSITION TABLEがありますが、参考にしないでください。
AppleのTecknoteに載っているテーブル:
UNICODE DECOMPOSITION TABLE
Unicode 2.xベースのテーブルなので、ギリシャ拡張文字の順序等がおかしいです。Mac OS X 10.2以降はUnicode 3.2規格なのでこのテーブルと一致しません。じゃあMac OS X 10.1以前はどうかというと、バギーなので変換テーブルすら作れないです。
このページでは特に触れていないようなネタや速報は、blogの方に書く事にしました。
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を公開。UNIXデーモンアイコンを無効にする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 - 凍結。