Help us understand the problem. What is going on with this article?

Raspberry PiをTime Capsuleにする(2019年8月編)

はじめに

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

で設定ファイルを開いて

afp.conf
[Global]
  mimic model = TimeCapsule6,106
  mac charset = MAC_JAPANESE

[TimeMachine]
  path = /media/tm
  time machine = yes

に変更します。

続いて、

sudo nano /etc/nsswitch.conf

で設定ファイルを開いて
hostsの部分を

nsswitch.conf
files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

に書き換えます。

そんでもって

 sudo nano /etc/avahi/services/afpd.service

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

をまた開いて

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
hiro2do
誰でもできることしかできない
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした