====== Netatalk をインストールして TimeMachine を使う ====== * OpenWrt: ATTITUDE ADJUSTMENT (12.09, r36088) OpenWrt に接続した USB-HDD を Netatalk で共有し、Mac から使える自分専用のファイルサーバにする。 Timemachine で使用できるようにする。 拡張属性はファイルシステムに保存するようにする。 ちなみに最初は拡張属性を、 .AppleDouble ディレクトリに保存していが、ファイルシステムに保存した方がパフォーマンスが良さそうなので後に変更。 ^ 拡張属性の保存先 ^ バックアップ推定所要時間 ^ | .AppleDouble (ad) | 7時間 | | ファイルシステム (sys) | 2時間 | ===== Netatalk をインストール ===== ==== インストール ==== opkg でインストールできる Netatalk のバージョンをチェック。 # opkg update # opkg list netatalk netatalk - 2.2.1-5 - netatalk Netatalk をインストール。 # opkg install netatalk Installing netatalk (2.2.1-5) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/netatalk_2.2.1-5_ar71xx.ipk. Installing libdb47 (4.7.25.NC-6) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libdb47_4.7.25.NC-6_ar71xx.ipk. Installing libxml2 (2.7.8-2) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libxml2_2.7.8-2_ar71xx.ipk. Installing libpthread (0.9.33.2-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libpthread_0.9.33.2-1_ar71xx.ipk. Installing zlib (1.2.7-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/zlib_1.2.7-1_ar71xx.ipk. Installing libgcrypt (1.5.0-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libgcrypt_1.5.0-1_ar71xx.ipk. Installing libgpg-error (1.9-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libgpg-error_1.9-1_ar71xx.ipk. Installing libopenssl (1.0.1e-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libopenssl_1.0.1e-1_ar71xx.ipk. Installing librpc (0.9.32-rc2-0a2179bbc0844928f2a0ec01dba93d9b5d6d41a7) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/librpc_0.9.32-rc2-0a2179bbc0844928f2a0ec01dba93d9b5d6d41a7_ar71xx.ipk. Configuring libpthread. Configuring libgpg-error. Configuring libgcrypt. Configuring zlib. Configuring libxml2. Configuring librpc. Configuring libdb47. Configuring libopenssl. Configuring netatalk. ==== Netatalk 用のグループを追加 ==== ディレクトリのアクセス制限に必要なので、Netatalk にアクセスするユーザのグループを作成する。 # vi /etc/group 以下を追加。グループIDは他と重複しないようにする。 netatalk:x:201:username /etc/passwd と /etc/shadow にユーザ情報を追加する。 * /etc/passwd username:x:1000:100:NetatalkUser:/var:/bin/false * /etc/shadow username:*:0:0:99999:7::: ユーザにパスワードを設定する。 # passwd username ===== 設定 ===== /etc/netatalk 内の以下の2つのファイルを編集して設定する。 ^ afpd.conf | デーモン単位の設定 | ^ AppleVolumes.default | 共有ボリューム単位の設定 | ==== デーモンの設定 ==== * [[http://netatalk.sourceforge.net/2.2/htmldocs/afpd.conf.5.html|afpd.conf Manual Pages]] # vi /etc/netatalk/afpd.conf 設定ファイルを空にして、以下を記述する。 "AfpShare" \ -uampath /usr/lib/uams \ -uamlist uams_dhx2.so uams_clrtext.so \ -nodebug \ -nouservol \ -icon \ -nosavepassword \ -mimicmodel RackMac \ -unixcodepage UTF8 ==== ボリュームの設定 ==== * [[http://netatalk.sourceforge.net/2.2/htmldocs/AppleVolumes.default.5.html|AppleVolumes.default Manual Pages]] # vi /etc/netatalk/AppleVolumes.default :DEFAULT: options:upriv cnidscheme:dbd ea:sys /mnt/usb-disk/share/timemachine TimeMachine volsizelimit:200000 allow:@netatalk rwlist:@netatalk cnidscheme:dbd options:searchdb,tm HDD の中身をすべて Time Machine のファイルで占拠されても困るので、200GB までに制限するオプションを設定した。 ==== 起動 ==== # /etc/init.d/afpd start ブート時に Netatalk を起動するようにする。 # /etc/init.d/afpd enable ==== Netatalk に接続 ==== * Finder で Cmmand + K を押す * afp://[OpenWrt の IP] を指定する * Netatalk グループに追加したユーザでログイン ===== Avahi をインストール ===== ここまでの作業で Mac からアクセス可能にはなるが、Avahi をインストールして自動で検出されるようにする。 ==== インストール ==== # opkg install avahi-daemon Installing avahi-daemon (0.6.31-5) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/avahi-daemon_0.6.31-5_ar71xx.ipk. Installing libavahi (0.6.31-5) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libavahi_0.6.31-5_ar71xx.ipk. Installing libdaemon (0.14-2) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libdaemon_0.14-2_ar71xx.ipk. Installing libgdbm (1.9.1-2) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libgdbm_1.9.1-2_ar71xx.ipk. Installing libexpat (2.0.1-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libexpat_2.0.1-1_ar71xx.ipk. Installing librt (0.9.33.2-1) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/librt_0.9.33.2-1_ar71xx.ipk. Installing libdbus (1.4.14-2) to root... Downloading http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/libdbus_1.4.14-2_ar71xx.ipk. Configuring librt. Configuring libdbus. Configuring libdaemon. Configuring libgdbm. Configuring libavahi. Configuring libexpat. Configuring avahi-daemon. ==== 設定 ==== 以下の設定ファイルを編集する。 * /etc/avahi/avahi-daemon.conf Server セクションで以下の値を変更・追加する。詳しい設定内容は [[http://linux.die.net/man/5/avahi-daemon.conf]] を参照。 * host-name: ログイン前に表示されるサーバ名 * enable-dbus: TimeMachine として利用する場合は、 no に設定する必要あり host-name=TimeMachine enable-dbus=no 細かい設定は、**/etc/avahi/services** 内に XML 形式のファイルを格納して設定する。**/etc/avahi/services/afpd.service** というファイル名で以下の内容を保存。 **XX:XX:XX:XX:XX:XX** は、ルータの LAN インタフェースの MAC アドレスに変更する。 Time Capsule _afpovertcp._tcp 548 _device-info._tcp 0 model=TimeCapsule _adisk._tcp 9 sys=waMA=XX:XX:XX:XX:XX:XX,adVF=0x100 dk1=adVF=0x83,adVN=TimeMachine * model=TimeCapsule: タイムカプセルであることを示す。Finder でタイムカプセルのアイコンが表示されるようになる。 * adVN=TimeMachine: afpd.conf と AppleVolumes.default で設定したボリューム名と一致する必要がある。 ==== デーモンを起動 ==== 設定を読み込ませて起動する。初期起動の場合は stop は必要ない。 # /etc/init.d/avahi-daemon stop # /etc/init.d/avahi-daemon start # /etc/init.d/avahi-daemon enable ==== TimeMachine から接続 ==== Avahi の設定が正しければ、 TimeMachine のディスク選択画面で OpenWrt で作成した TimeCapsule が選択可能になっている。 ===== TimeMachine からリストア ===== [option] ボタンを押しながら起動し、リカバリディスクから起動する。 自動で TimeMachine のリストには出てこないので、ターミナルから手動でマウントする。 # mkdir /Volumes/TimeMachine # mount -t afp "afp://[OpenWrt の IP]/TimeMachine" /Volumes/TimeMachine