はじめに
Time Capsule作ろうと思ったのですが情報が古かったりしてかなりハマったので新しく書き記すことにしました。
こんなのを作る方法として今回のNetatalkを使う方法と、Sambaを使う方法の2種類があり、将来性のことを考えたら後者の方がいいかなーと思いましたが、残念ながら私の環境では動きませんでした。誰か成功したらやり方教えて下さい。
環境
- Raspbian Buster
- macOS Mojave
- netatalk 3.1.12
HDDの準備
HDDをMac OS拡張(HFS+)でフォーマットします。
Macが起動しなくなってバックアップから戻す時、バックアップしたHDDを直接つないで読み込ませる必要があるのでこの作業が必要です。
ext4だと泣くことになります。泣きました。
Macに一旦つないでディスクユーティリティからフォーマットしましょう。
フォーマット後、デスクトップにあるHDDのアイコンを右クリックし、「情報を見る」からeveryoneにR/Wの権限を与えましょう。
後述するhfsprogsが既にRaspberry Piに入ってる人はGParted等からフォーマットする事も出来ます。
先ずはおまじない
念のためやっておきましょう
sudo apt update
sudo apt upgrade
Netatalkとかのインストール
ここも他のサイトでは大量のパッケージを入れてビルドしてみたいなことをやってますが、シンプルに
sudo apt install netatalk
sudo apt install avahi-daemon
で問題ありません。
HFS+を扱うための諸々のインストール
sudo apt install hfsprogs hfsplus
自動マウントとfstabの編集
マウント先のフォルダをまず作ります。私は/media/tm
にマウントしたので
sudo mkdir /media/tm
sudo chown pi:pi /media/tm
sudo chmod 777 /media/tm
次に、フォーマット済みのHDDを接続して
sudo blkid
でUUIDを調べます。TYPE="hfsplus"
がついてるやつがそれです。
UUIDをコピーしたら、
sudo nano /etc/fstab
でfstabを開いて
UUID=[PUT YOUR UUID] /media/tm hfsplus force,rw,user,auto,nofail 0 0
を追記します。
ここまで完了したらsudo mount /media/tm
で特にエラーも出ずマウントされればオッケーです。
Netatalk等の設定
こっから下は情報が錯乱してて私も動くまで色々試行錯誤したので、もしかしたらおかしいところがあるかもしれないのですが、最低限これで大丈夫なんじゃないだろうかってのを書き記します。
動かなかったら報告ください...
ひとまずこれは絶対必要そうなafp.conf
の設定です。
sudo nano /etc/netatalk/afp.conf
で設定ファイルを開いて
[Global]
mimic model = TimeCapsule6,106
mac charset = MAC_JAPANESE
[TimeMachine]
path = /media/tm
time machine = yes
に変更します。
続いて、
sudo nano /etc/nsswitch.conf
で設定ファイルを開いて
hostsの部分を
files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
に書き換えます。
そんでもって
sudo nano /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→ディスク選択に出てくると思います。多分
これでダメだったら...
sudo nano /etc/nsswitch.conf
をまた開いて
passwd: compat
group: compat
shadow: compat
にしてみてください
また、afp.conf
の場所も
sudo nano /etc/netatalk/afp.conf
ではなく、
sudo nano /usr/local/etc/afp.conf
かもしれません。
再起動して書き込めなくなったら
これで治る
sudo fsck.hfsplus -f /dev/sdb1
sudo mount -a