ユーザ用ツール

サイト用ツール


openwrt:install-netatalk

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
openwrt/install-netatalk.txt · 最終更新: 2013/11/21 16:00 by admin