2021年10月14日木曜日

Raspberry Pi 4をTime Capsuleにする

長年Macのバックアップとして使っていたTime Capsuleだったが、AC電源直結の勝手の悪さ・発熱・フットプリントのでかさから、Raspberry Pi 4で置き換えることにした。下記の順序で実装できた。64bitのOSを使いたかったので、Raspberry Pi OSではなく、Ubuntu Server 20.04をもとにしている。

  1. avahiのインストールと設定
  2. ハードディスクの設定
  3. sambaのインストールと設定

avahiのインストールと設定

$ sudo hostnamectl set-hostname RPi4
$ sudo apt-get install avahi-daemon
$ sudo mv samba.service /etc/avahi/services/samba.service
$ sudo service avahi-daemon restart

hostnameを設定することで、MacのFinderに表示される名前が決まる。わかりやすい名前にするとよい。

3行目でコピーしている設定ファイルはこちら。設定ファイル内にTime Capsule対応を謳うことで、Mac側から認識できるようにする。Redditのスレッドに書いてあったが、参考になった投稿が見つからない。

ハードディスクの設定

$ ls -lha /dev/disk/by-uuid # Time Capsule用HDDのUUIDを確認
$ sudo vi /etc/fstab # fstabにUUIDを記載。オプションはリポジトリ内のfstabを参考に。

USB 3.0対応の外付けハードディスクを接続した。ハードディスクのファイルシステムは、Macからは関係ないのでなんでもいい。Linuxなのでext4にしている。ハードディスクのUUIDをfstabに記載することで、特定のハードディスクが接続されたときだけ定位置にマウントできることを知った。

sambaのインストールと設定

$ sudo apt-get install samba
$ sudo adduser timemachine # パスワードは自分がわかるもの、アカウント情報は空白でよい。
$ sudo smbpasswd -a timemachine # SMBパスワードの設定
$ sudo mkdir /mnt/timemachine
$ sudo chown -R timemachine: /mnt/timemachine
$ sudo mv smb.conf /etc/samba/smb.conf
$ sudo service smbd reload

Raspberry Pi側に、samba用のユーザーを作成する。ユーザー用・SMB用のそれぞれにパスワードを設定する。SMB用パスワードは、Macから接続するときに使用する。

マウントポイントはfstabに記載したとおりの場所にする。マウントポイントのオーナーをsamba用アカウントに設定しないと、ファイル書き込みのできない共有になってしまうので注意する。

コピーしている設定ファイルはこちら。ファイル末尾のfruit行がTime Capsule用設定となっている。

おわりに

これでRaspberry PiをTime Capsuleとして設定することができた。Raspberry PiはSDカードが壊れるので、GitHubに何も考えずに復旧できるよう手順をまとめている。今後はAnsible等で自動的に展開できるようにしたい。