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"(以下の行、略)
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が使えるようになっているでしょう。
| 固定リンク
「NAS」カテゴリの記事
- NASにiTunesライブラリを置く時に注意する事(その2)(2019.01.13)
- NAS(AS-202TE)の個人ディレクトリでCGIを動かしてみた(2017.11.15)
- NAS(AS-202TE)でTracとGit連携(2017.10.29)
- AS-202TEにTracをインストールする(2017.09.23)
- AS-202TEにmod_wsgiをインストールする(2017.09.19)
コメント
>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