Ubuntu@13 netatalk 2.2.3のインストール
いつもの通りTimeMachineでバックアップをとろうとするとエラーが出るようになりました。
CNIDのエラーとかで、要はアクセス制御のDBのエラーの様です。
解決方法を探していると、この辺のエラーを修正したnetatalkの2.2.3がリリースされていると言う事で、コンパイル&インストールしてみる事にしました。
とは言っても、手順は2.2.2の時と全く同じです。
ちなみに、2.2.2のままでもエラーは回避できます。
方法は最後に。
netatalk 2.2.3 のコンパイルに必要なライブラリは以下の通り。
全てUbuntuソフトウェアセンターからインストール出来ます。
libdb4.8-dev
libssl-dev
libgcrypt11-dev
libslp-dev
libavahi-client-dev
都度sudoするのは面倒なので、スーパーユーザーになっておきます。
まずは作業フォルダを作り、そこに移動しておきます。
# mkdir work
# cd work
ソースファイルをダウンロードします。
# wget http://sourceforge.net/projects/netatalk/files/netatalk/2.2.3/netatalk-2.2.3.tar.gz
ダウンロードしたソースファイルを展開します。
# tar zxvf netatalk-2.2.3.tar.gz
展開して出来たフォルダに移動します。
# cd netatalk-2.2.3
コンパイルします。オプションの意味は何となくしか分かりません。
情報を公開してくれている方々に感謝です。
# ./configure --enable-debian --enable-srvloc --prefix=/usr --with-pkgconfdir=/etc/netatalk --with-uams-path=/usr/lib/netatalk
makeします。
# make
インストールします。
# make install
これで、netatalk 2.2.3 のインストールは完了です。
その他、TimeMachineサーバに必要な設定は以下の通り。
Time Machineの保存先となるフォルダを作成します。
# mkdir /home/xxx/TimeMachine
オーナーを自分に変えます。
# chown xxxx:xxxx TimeMachine
アクセス権は755にします。
$chmod 755 TimeMachine
各種設定ファイルを変更します。
変更箇所だけ記載しておきます。
■/etc/default/netatalk
ATALK_UNIX_CHARSET='UTF8'
ATALK_MAC_CHARSET='MAC_JAPANESE'
■/etc/netatalk/AppleVolumes.default
Time Machineで表示される保存先の名称とサイズを記載しています。
volsizelimit:50000は50GBまでと言う事です。
:DEFAULT: options:upriv,usedots dperm:0700 fperm:0600 ea:sys
/home/xxxx/TimeMachine "Time Machine" options:tm volsizelimit:50000(この行は自分で書く)
■/etc/netatalk/afpd.conf
- -tcp -noddp -uamlist uams_dhx2.so -nosavepassword
で、2.2.2でのエラー回避方法ですが、のぶさんのNo One Betterにママ解決方法があります。
コメントでこの方法は間違っているとの指摘をいただきました。私の場合は解決したのですが、違うようでもあるので、その旨ご承知おき下さい。
再度K-HATさんよりコメントをいただきました。
didの修復コマンドで上手くいかない場合は、.AppleDBを削除した後、手動でcnid_dbdとするのではなく、/etc/default/netatalkにて、CNID_METAD_RUN=yesとしてnetatalkをstartさせると良いようです。
netatalkを停止
sudo /usr/local/etc/rc.d/netatalk stopTimeMachineの保存場所に移動して.AppleDBを削除
sudo rm -rf .AppleDB
cnid_dbdを起動
sudo cnid_dbd設定ファイルの編集
sudo gedit /etc/default/netatalk
として、
CNID_METAD_RUN=yes
を確認、違っていればこの通り修正。netatalkを起動
sudo /usr/local/etc/rc.d/netatakl start
これでエラーを回避できました。
※スーパーユーザーでのコマンド表記を#に修正しました