前書き
macのバックアップといえば、Time Machineですが、バックアップ先として通常は、以下の選択肢となると思いいます。
- 外付けドライブを利用
- Time Machine のバックアップ先として共有されている Mac
- Time Machine対応のnasを利用
- AirMac Time Capsule
- Linuxでafp(netatalk)を利用
-
windows 共有ドライブを利用
(macOS catalina10.15では利用できなくなっているように思います。)
我が家は元々Windowsの共有ドライブをファイル保存先としていたので、追加投資無しで、なんとかならないかと考え、Windows Subsystem for Linux(WSL) + ubuntu + netatalkを試してみました。
また、VirtualBoxなどを利用したLinux環境も考えましたがWSLを利用した環境の方がリソースの無駄が少ないと判断しました。
1.試した環境
- windows10 home 64ビット
Microsoft Windows [Version 10.0.19041.208] - Windows Subsystem for Linuxはubunts
VERSION="16.04.6 LTS (Xenial Xerus)" - macOS
Catalina 10.15.4
2.注意事項
予めWindowsにて、WSLを利用できるようにしておき、ubuntuをインストールしておきます。
更にubuntuを最新化します。
$sudo apt-get update
$sudo apt-get upgrade
3.ubuntuへのnetatalkのインストール
$sudo apt-get install netatalk
:
Do you want to continue? [Y/n] y
:
インストールが完了したら、netatalkのバージョンを確認します。
Timemachineを利用するには2.2以上のバージョンが必要です。
2系がインストールされた場合は
$ afpd -v
3系がインストールされた場合は
$ netatalk -v
*私の環境ではいろいろとやっているうちに3系をインストールしてしまったようです。
2系の場合のメッセージ(以下は2.2.6が入っている)
afpd 2.2.6 - Apple Filing Protocol (AFP) daemon of Netatalk
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.
afpd has been compiled with support for these features:
AFP versions: 1.1 2.0 2.1 2.2 3.0 3.1 3.2 3.3
DDP(AppleTalk) Support: Yes
CNID backends: dbd last tdb
afpd.conf: /etc/netatalk/afpd.conf
AppleVolumes.system: /etc/netatalk/AppleVolumes.system
AppleVolumes.default: /etc/netatalk/AppleVolumes.default
afp_signature.conf: /etc/netatalk/afp_signature.conf
afp_voluuid.conf: /etc/netatalk/afp_voluuid.conf
afp_ldap.conf: /etc/netatalk/afp_ldap.conf
UAM search path: /usr/lib/netatalk/
Server messages path: /etc/netatalk/msg/
lockfile: /var/run/afpd.pid
3系の場合のメッセージ(以下は3.1.11が入っている)
netatalk 3.1.11 - Netatalk AFP server service controller daemon
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.
netatalk has been compiled with support for these features:
Zeroconf support: Avahi
Spotlight support: No
afpd: /usr/local/sbin/afpd
cnid_metad: /usr/local/sbin/cnid_metad
afp.conf: /usr/local/etc/afp.conf
netatalk lock file: /var/lock/netatalk
※万が一、2.2より低いバージョンになっていた場合は、netatalkのサイトから最新ソースでインストールすることを考えていました。
http://netatalk.sourceforge.net/
4.netatalkの設定
以下は、LinuxにマウントされているeドライブにTime Machine用フォルダを作成してバックアップ設定を行う例です。
バックアップディレクトリの作成
$ mkdir -p /mnt/e/timemachine/(ユーザ名)
設定を変更するため、netatalkを停止する
$ sudo service netatalk stop
Stopping Netatalk Daemons: afpd cnid_metad papd timelord atalkd.
設定の変更
$ sudo vim /etc/netatalk/afpd.conf
最後尾に以下を追記
# for Timemachine
- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2_passwd.so -nosavepassword
$ sudo vim /etc/netatalk/AppleVolumes.default
最後尾あたりを以下のように編集
#~/ "Home Directory" <- コメントアウト
:
# for TimeMachine
/mnt/e/timemachine/(ユーザ名) "TimeMachine for (ユーザ名)" allow:(ユーザ名) cnidscheme:dbd volsizelimit:512000 options:usedots,upriv,tm
*ホームディレクトリは必要がないのでコメントアウトする
*volsizelimit = 容量制限のサイズ(512,000MiB = 500GiB)
5.netatalkの起動
$ sudo service netatalk start
Starting Netatalk services (this will take a while): cnid_metad afpd.
この際にwindowsファイアウォールからafpポートの開放を聞いてくるので、開放する
ipアドレスの確認
$ ip a
17: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 group default qlen 1
link/ether XX:XX:XX:XX:XX:XX
inet 192.168.0.XX/24 brd 192.168.0.255 scope global dynamic ← IPアドレスは192.168.0.XX
:
6.macからの接続
finderからcommand + kでafpへ接続する
afp://(サーバのIPアドレス)/
または
afp://(サーバのホスト名).local/
id/passwordを聞いてくるので、bashのアカウントとパスワードを入力
システム設定変更 -> Time Machine -> ディスクを選択 -> 「TimeMachine for (ユーザ名)」を選択する
もし上手くいかない場合、下記の操作が必要かも知れない
macのターミナル.appから下記を実行
$ defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
sudoは不要(Time Machineを設定するユーザ毎に実行する必要があるため)
設定後はOS再起動が必要
関係なかったら下記のコマンドで元に戻しておく
$ defaults delete com.apple.systempreferences TMShowUnsupportedNetworkVolumes
7.netatalk serviceの自動起動の設定
以下のコマンドをwindowsのタスクスケジューラに設定して自動起動するようにします。
[タスクスケジューラ]を開き、以下のコマンドを登録します。
トリガーはログイン時としました。
bash.exe -c "sudo service netatalk start"
上記のコマンドで自動起動しようとするとパスワードの入力が必要になるため、bashから以下の設定を実施
$ sudo visudo
最後尾へ以下を追記
hogeuser ← 対象ユーザを設定 ALL=NOPASSWD: /usr/sbin/service
所感
約266GBのバックアップで12時間程度掛かりました。
WSL2を利用するとIOが高速になるようなので、いつか時間ができたら試してみたいと考えています。
参考にしたサイト
- Time Machine で使えるバックアップディスク
https://support.apple.com/ja-jp/HT202784 - Timemachineバックアップ方法
https://gist.github.com/gb-swatanabe/2983a3e8d21ae44534b1
※多くのコマンドを引用させていただきました。 - bashの自動起動方法
https://blog.fileshelfplus.com/windows/157 - sudoでパスワードを不要にする方法
https://qiita.com/RyodoTanaka/items/e9b15d579d17651650b7