Linux を Time Machine サーバにする

こんにちは、masm11 です。 最近 MacBook Air を購入しました。

新しいコンピュータを買ったら、後回しではあるものの、バックアップの設定をします。 Mac でバックアップと言えば Time Machine ですね。 しかし、新たに Time Machine サーバを買う気はしません。

幸い、家庭内サーバがあります。Linux です。 これを Time Machine のサーバにしてみましょう。

情報を収集する

どうやら netatalk というソフトウェアでできるようです。

家庭内サーバは ArchLinux なので、以下のページを参考にします。

https://wiki.archlinux.jp/index.php/Netatalk

インストールする

AUR なのでインストールは簡単です。

yay -S netatalk

これだけです。

他の OS の場合は、その OS 用にパッケージが存在すると思いますが、 ない場合は↓このスクリプトを参考に頑張ることになるかと思います。

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=netatalk

インストールが終わりましたので、とりあえず netatalk を開始しておきます。

sudo systemctl start netatalk
sudo systemctl enable netatalk

設定する

/etc/afp.conf で設定します。以下のように書きました。

[Global]
mimic model = TimeCapsule6,106
log level = default:warn
log file = /var/log/afpd.log

[TimeMachine]
path = /home/backup/time_machine
valid users = masm
vol size limit = 1000000
time machine = yes

ほとんど、先程の参考ページそのままです。

[TimeMachine] は、これが Mac から名前として見えます。

path は、バックアップを格納するディレクトリです。

valid users は、このサーバでのユーザ名です。 このユーザでファイルが作成されますので、 path に指定したディレクトリはこのユーザで書き込める必要があります。

vol size limit は、割当容量です。MB 単位なので、この設定だと 1TB になります。 今回使っているストレージは他のバックアップにも使っているので、 Time Machine 用にはそのうち 1TB を割り当ててみました。

time machine は、Mac で Time Machine 設定に表示する宣言と思われます。

さて、ここまで設定したら netatalk を再起動します。

sudo systemctl restart netatalk

で、わくわくしながら Mac の Time Machine 設定を確認したのですが、表示されません。

上記の参考ページには明確に書いてないのですが、avahi の再起動が必要でした。

sudo systemctl restart avahi-daemon

これを実行した瞬間、Mac に表示されました!

f:id:masm11:20220123170417p:plain

これを選択すると、名前とパスワードを聞かれますので、 サーバ上でのユーザ名とパスワードを入力します。

f:id:masm11:20220123170447p:plain

まとめ

ちゃんとバックアップが取れました。

f:id:masm11:20220123170503p:plain

みなさん、バックアップは忘れず設定しましょう。

さて、インゲージではエンジニアを募集しています。詳細は以下のページへ!

https://ingage.co.jp/recruit/