家に転がっていた Raspberry Pi 3 Model B を Mac OS X の Time Machine のバックアップ先にしてみた。

#まずはじめに
半分以上自分のための作業内容の備忘録なので、手順が足りないところ、冗長なところがあるかもしれません。あしからず。

#やってみたこと
Raspberry Pi 3 Model B を、MacBook Pro のバックアップ先としてセットアップしてみたまとめ。

#なんでやったのか
MacBook Pro を買って初めて、新しい OS のアップデートが降ってくることになったので。
外付け HDD にそのままバックアップでもよかったけど、ネットワーク経由で自動バックアップが出来たらラッキーだなーというモチベーション。

#手順
##まずは HDD の準備から
1. バックアップ先として設定する HDD を Mac に接続
2. Finder のアイコンを選択
3. 「移動」メニューから「ユーティリティ」を開く
4. 「ディスクユーティリティ」を開く
5.  フォーマット対象のドライブを選択して「消去」をクリック
6.  フォーマットは「Mac OS 拡張（ジャーナリング）」に設定
7.  その他諸々設定をして、「消去」
8.  フォーマット完了後に、デスクトップに出ているディスクのアイコンを右クリックし「情報」を表示
9.  権限の項目で everyone の権限を R/W に変更

## 続いて必要なパッケージのインストール
まずはパッケージのアップデートから。

```
sudo apt update
sudo apt upgrade
```

続いて必要なパッケージをできるだけ apt でインストール。

```
sudo apt install avahi-daemon
sudo apt install hfsprogs hfsplus

sudo apt-get -y install build-essential libevent-dev libssl-dev libgcrypt-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev libmariadbclient-dev avahi-daemon libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libio-socket-inet6-perl tracker libtracker-sparql-1.0-dev  libtracker-miner-1.0-dev
```

続いて netatalk のビルド。

```
sudo wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.12.tar.gz
sudo tar -xvzf netatalk-3.1.12.tar.gz
cd netatalk-3.1.12

sudo ./configure --with-init-style=debian-systemd --without-libevent --without-tdb --with-cracklib --enable-krbV-uam --with-pam-confdir=/etc/pam.d --with-dbus-daemon=/usr/bin/dbus-daemon --with-dbus-sysconf-dir=/etc/dbus-1/system.d --with-tracker-pkgconfig-version=1.0

sudo make
sudo make install

netatalk -V
```

ここまでやって、netatalk のバージョンとして 3.1.12 が表示されてれば準備 OK。

## HDD のマウントの設定
マウントポイントを作って諸々の設定。

```
sudo mkdir /media/timemachine
sudo chown [ユーザー名]:[グループ名] /media/timemachine
sudo chmod 777 /media/timemachine
```

マウント先の HDD の UUID を確認してコピペ。

```
sudo blkid
```

マウント用の設定を fstab に書く。

```
sudo vi /etc/fstab
```

で fstab を開いて、以下の一行を追記。

```
UUID=[UUIDをここに書く] /media/timemachine hfsplus force,rw,user,auto,nofail 0 0
```

マウントしてみてエラーが起きないことを確認。

```
sudo mount /media/timemachine
```

## NetaTalk の設定ファイルを色々書く。
afp.conf を編集するために開く。

```
sudo vi /etc/netatalk/afp.conf
```

下記の内容を追記。

```
[Global]
  mimic model = TimeCapsule6,106
  mac charset = MAC_JAPANESE

[TimeMachine]
  path = /media/timemachine
  time machine = yes
```

nsswitch.conf も編集。

```
sudo vi /etc/nsswitch.conf
```

hosts の行を下記のように編集。

```
files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
```

以下のコマンドで afpd.service というファイルを作成。

```
sudo vi /etc/avahi/services/afpd.service
```

その中身はこんな感じ。

```
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">%h</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-group>
```

## サービスの起動を試してみる
下記コマンドでサービスを試しに起動してみる。

```
sudo service avahi-daemon start
sudo service netatalk start
```

## うまく動いたらサービスの自動起動の設定
自動起動の設定はこんな感じ。

```
sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk
```

## Mac 側のバックアップ設定
TimeMachine のバックアップ先に使えるように資格情報など設定。

1. Finder を開く
2. [Command キー]+[K] で開く画面で afp://[Raspberry Pi のアドレスかホスト名] を開く
3. ユーザー名、パスワードを求められたら Raspberry Pi のユーザー名とパスワードを入力
4. Raspberry Pi に接続できることを確認
5. 「システム管理」の「Time Machine」から、バックアップ先として Raspberry Pi を選択
6. もろもろバックアップの設定を完了

これで、ネットワークに Mac をつなぐと、自動バックアップが開始されるように設定完了です！