目次
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 <coce> username:*:0:0:99999:7::: </code>
ユーザにパスワードを設定する。
# passwd username
設定
/etc/netatalk 内の以下の2つのファイルを編集して設定する。
afpd.conf | デーモン単位の設定 |
---|---|
AppleVolumes.default | 共有ボリューム単位の設定 |
デーモンの設定
# 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
ボリュームの設定
# 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 アドレスに変更する。
<?xml version="1.0" standalone="no"?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">Time Capsule</name> <service> <type>_afpovertcp._tcp</type> <port>548</port> </service> <service> <type>_device-info._tcp</type> <port>0</port> <txt-record>model=TimeCapsule</txt-record> </service> <service> <type>_adisk._tcp</type> <port>9</port> <txt-record>sys=waMA=XX:XX:XX:XX:XX:XX,adVF=0x100</txt-record> <txt-record>dk1=adVF=0x83,adVN=TimeMachine</txt-record> </service> </service-group>
- 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