1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows Subsystem for Linux(WSL)を使ったmac TimeMachineバックアップ環境の構築

Last updated at Posted at 2020-05-09

前書き

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が高速になるようなので、いつか時間ができたら試してみたいと考えています。

参考にしたサイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?