« HDL2-G2.0にnetatalk 2.2.0をインストール(その5) | トップページ | HDL2-G2.0にnetatalk 2.2.0をインストール(その7・最終回) »

2011.09.15

HDL2-G2.0にnetatalk 2.2.0をインストール(その6)

いよいよ、netatalkをインストールします。
HDL2-G2.0にnetatalk 2.2.1をインストールも併せてご参照ください。2011.9.21追記)

Netatalk and Samba
Netatalk 2.2 Manual
を参考にさせて頂きました。

まず、念のため、
/etc/netatalkと/usr/lib/netatalkを適当な場所に退避します。(/etc/default/netatalkもバックアップをとっておくと良いでしょう。2011.9.21追記)
次に、(不要かもしれませんが)念のため、

apt-get install netatalk
apt-get remove netatalk

して、もともとインストールされていたnetatalkをアンインストールしてしまいます。

次に、netatalk.sourceforge.netからnetatalkをダウンロードし、HDL2-G2.0の作業領域に展開します。

cd netatalk-2.2.0
./configure --enable-debian --with-bdb=/usr/local/Berkeley-5.2.28 --with-pkgconfdir=/etc/netatalk --with-uams-path=/usr/lib/netatalk --disable-quota
make
make install

します。
ここで、--disable-quotaしたのは、後でvolsizelimitがうまく動かなかったので使用しましたが、結果としては変わらなかったので、このオプションは不要と今は思っています。
次に、設定ファイルを編集します。
/etc/netatalk/AppleVolumes.default
# The line below sets some DEFAULT, starting with Netatalk 2.1.

の次の行に、
:DEFAULT: options:upriv,usedots cnidscheme:dbd maccharset:MAC_JAPANESE volcharset:UTF8 dperm:0700 fperm:0600 ea:sys

最後の行に、
/mnt/sataraid1/share/TimeMachine2 "TimeMachine2" allow:@nobody deny:admin options:tm
を追加。
自分の環境では、Time Machine にゲスト権限で接続するようにしています。
/etc/netatalk/afpd.confの最後の行には、
- -tcp -noddp -uamlist uams_guest.so,uams_dhx.so,uams_dhx2.so -nosavepassword -maccodepage MAC_JAPANESE -unixcodepage UTF8

(上述した設定ファイルの行は各々1行なので気をつけてくださいね)

/etc/default/netatalkについて、以下のように設定。


# Netatalk configuration

#########################################################################
# Global configuration
#########################################################################

#### machine's AFPserver/AppleTalk name.
ATALK_NAME=NAS_HOME
#ATALK_NAME=NAS_HOME
#ATALK_NAME="${HOSTNAME%%.*}"

#### server (unix) and legacy client (<= Mac OS 9) charsets
#ATALK_UNIX_CHARSET='LOCALE'
#ATALK_MAC_CHARSET='MAC_ROMAN'
ATALK_UNIX_CHARSET='UTF8'
ATALK_MAC_CHARSET='MAC_JAPANESE'


#### Don't Edit. export the charsets, read form ENV by apps
export ATALK_UNIX_CHARSET
export ATALK_MAC_CHARSET
#########################################################################
# AFP specific configuration
#########################################################################

#### Set which daemons to run.
#### If you use AFP file server, run both cnid_metad and afpd.
CNID_METAD_RUN=yes
AFPD_RUN=yes

#### maximum number of clients that can connect:
#AFPD_MAX_CLIENTS=20

#### UAMs (User Authentication Modules)
#### available options: uams_dhx.so, uams_dhx2.so, uams_guest.so,
#### uams_clrtxt.so(legacy), uams_randnum.so(legacy)
#AFPD_UAMLIST="-U uams_dhx.so,uams_dhx2.so"
AFPD_UAMLIST="-U uams_guest.so,uams_dhx.so,uams_dhx2.so"
#### Set the id of the guest user when using uams_guest.so
AFPD_GUEST=nobody

#### config for cnid_metad. Default log config:
#CNID_CONFIG="-l log_note"

(以下の行、略)


ATALK_NAME=NAS_HOME は、hostname を設定したところ、/mnt/hda5/log/にあるログファイルに、
fpd[1605]: Failed to add service: Local name collision

が吐かれたので、このように設定しました。

http://tonop.cocolog-nifty.com/blog/2011/09/hdl2-g20netat-6.html#moreに記載したとおり、ホスト名指定するなら、/etc/avahi/services/のafp.serviceをafp.service.origにリネームすれば、この設定自体不要です。(2011.09.21修正)

最後に

/etc/init.d/avahi-daemon restart
/etc/init.d/netatalk restart

を実行して、サービスを起動します。成功すればTime Machineが使えるようになっているでしょう。

|

« HDL2-G2.0にnetatalk 2.2.0をインストール(その5) | トップページ | HDL2-G2.0にnetatalk 2.2.0をインストール(その7・最終回) »

NAS」カテゴリの記事

コメント

>afpd[1605]: Failed to add service: Local name collision

afpdがAvahiに登録しようとしたとき、Avahiが「Local name collision」というエラーを返しています。
既に登録されているのに二重登録しようとしたためです。
afp.serviceとかadisk.serviceといった、静的に登録するファイルが残っていませんか?
http://sourceforge.net/mailarchive/forum.php?thread_name=CAJzhPANPignZxZWRL3cML9ACM9humzT6FVBS1yZZgcqW9cF3AQ%40mail.gmail.com&forum_name=netatalk-admins

投稿: HAT | 2011.09.15 19:36

コメントありがとうございます。

/etc/avahi/servicesに
afp.service

<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>
とあります。(上では表示上の問題のために、タグを全角に置き換えてます。)これのことでしょうか。

投稿: tonop | 2011.09.16 02:18

netatalkは、/etc/netatalkの下に、afp_signature.confと言うファイルを作ろうとします。
HDL4-G2.0の場合だと、/etcはreadonlyでマウントされています。
そのままだと、このファイルが書き込まれないと思うのですが、どう処理されましたでしょうか?

投稿: お市 | 2011.09.16 15:10

そのファイルです。
http://www003.upp.so-net.ne.jp/hat/netatalk/2.1.andsamba.html
「BonjourやSLPのためデーモンのインストール」のところに説明があります。

あと、以下もみてください。
http://hatx.blog.so-net.ne.jp/2008-02-13
http://hatx.blog.so-net.ne.jp/2008-10-07

投稿: HAT | 2011.09.16 22:43

afp_signature.confが作成出来ない場合、あるいはafp_signature.confを
読み込めない場合、afpdは起動のたびに乱数からsignatureを生成します(one-time signature)。このあたりの動作はetc/afpd/status.cのset_signature()のところにコメントしてります。
つまり再起動するたびに別のsignatureになりますが、動作に特に問題はありません。一応、logにはエラーを吐くようにしています。
大昔のMac OS Xはsignatureをkey chain accessのデータベースに保存したので、毎回データベースが肥大していくことになりますが、最近のMac OS Xはそういう動作をしないので、あまり気にしなくても大丈夫でしょう。

あと、afp_voluuid.confも似た実装になっていますが、これの場合は、UUIDなしの状態でBonjourで宣伝するので、やはり問題にはなりません。

ただ、動作として気持ち悪いのは確かです。
読み書き可能なパーティションに空のafp_signature.confとafp_voluuid.confを作成し、/etc/netatalk/からシンボリックリンクしてください。
シンボリックリンクでも動作するように実装してあります。

投稿: HAT | 2011.09.16 22:59

HAT様

コメントありがとうございました。
/etc/avahi/services/afp.service を別名にリネームして再起動したら、 /etc/default/netatalk にて、ホスト名を設定可能になりました。
netatalk 2.2.1 導入について書く時に反映します。

また、
「読み書き可能なパーティションに空のafp_signature.confとafp_voluuid.confを作成し、/etc/netatalk/からシンボリックリンクしてください。
シンボリックリンクでも動作するように実装してあります。」
の件も実施しました。

的確な情報をコメントいただきまして、ありがとうございました。

投稿: tonop | 2011.09.20 20:07

えーと、
/etc/default/netatalkの#ATALK_NAME=の行は何もしなくても、
hostnameになる筈ですが。

投稿: HAT | 2011.09.20 22:05

HAT様

おっしゃる通りで、ホスト名を指定するなら、そもそもこの行の指定は不要でした。
記載を修正します。ご指摘ありがとうございました。

投稿: tonop | 2011.09.21 19:24

he weblog was how do i say it… relevant, finally something that helped me. Many thanks

投稿: diablo 3 | 2011.10.10 04:38

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1024423/41704067

この記事へのトラックバック一覧です: HDL2-G2.0にnetatalk 2.2.0をインストール(その6):

« HDL2-G2.0にnetatalk 2.2.0をインストール(その5) | トップページ | HDL2-G2.0にnetatalk 2.2.0をインストール(その7・最終回) »