Raspberry Pi 3 + USB-HDDで Time Machineサーバ構築稼働中
Raspberry Pi 3 + USB-HDDで Time Machineサーバを立てました。

勢いでやったらあっけなくできました。(以前にradigo でradikoのタイムフリーを自動保存用に使っていたRaspberry Pi 3ですが、東京リージョンのSakura VPSへ移行てしてしまって、余ってしまっていたので活用を考えていたところ、USB-HDDと組み合わせてTime Machineサーバができることを知りましたのでやってみました。

無事にバックアップ開始されています
Time MachineのバックアップはWindows系に比べてやはり定評がありなかなかに便利。
fstabの設定しくって起動しなくなったRaspberry Pi 3
やっっちゃった…。 しかしVirtualBox + CentOS(Vagrant用に使っていた)にSDカードをUSBマウントしてfstab書き換えて復旧しました。

はじめラズパイ側のfstabの記述を一度しくって起動しなくなったのでちょい焦ったけど、しかし、ググって先人の知恵から、virtualboxのCentOSからSDカード内のfstab再編集して治りました。
(参考 https://www.raspberrypi.org/forums/viewtopic.php?t=192947)

概要をまとめると、初期設定(Rasibian OSインストール、ネットワーク設定、SSH接続など)を事前に行い、必要なライブラリをインストール、一部ライブラリ名が異なっていたんで変更してインストールしました。

MacでUSB-HDDをフォーマットする

ディスクユーティリティで、ハードディスクを消去して、Mac OS 拡張で初期化します。
また、初期化後にハードディスクのアイコンを右クリックして、ハードディスクの情報を表示し、データの権限を変更しておく必要があります。
(これをしないとTime Machineのディスクとして認識されません)

おそらく読み込みのみの権限になっているので、読み込みと書き込みの両方の権限をONします。

ライブラリなど最新にします

sudo apt-get update
sudo apt-get upgrade

必要なライブラリが以下の通りのようです(2018/12/15現在)

sudo aptitude install build-essential libevent-dev libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev default-libmysqlclient-dev avahi-daemon libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libio-socket-inet6-perl tracker libtracker-sparql-1.0-dev libtracker-miner-1.0-dev

sudo apt-get install hfsprogs hfsplus

fstabに自動マウントするように設定

sudo mkdir -p /media/tm
sudo vim /etc/fstab

下記を追記します。

/dev/sda2 /media/tm hfsplus force,rw,user,auto 0 0

あとは、下記のコマンドでエラーがなければ外付けハードディスクが無事マウントされます。

sudo mount -a

nettalkをソースからインストール

※ apt-getのパッケージは2.x系の為

sudo wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.12.tar.gz
sudo tar -xvzf netatalk-3.1.12.tar.gz
sudo cd netatalk-3.1.12

sudo ./configure –with-init-style=debian-systemd –without-libevent –without-tdb –with-cracklib –enable-krbV-uam –with-pam-confdir=/etc/pam.d –with-dbus-daemon=/usr/bin/dbus-daemon –with-dbus-sysconf-dir=/etc/dbus-1/system.d –with-tracker-pkgconfig-version=1.0

sudo make
sudo make install

下記コマンドでNetatalkのバージョン情報などが表示されば、インストールは完了です。

netatalk -V

Netatalkの設定

sudo vim /etc/nsswitch.conf

Hosts欄を書き換える

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

sudo vim /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 vim /usr/local/etc/afp.conf

[Global]
mimic model = TimeCapsule6,106
[Time Machine]
path = /media/tm
time machine = yes

あとは自動実行去るようにしておけばOK。

sudo service avahi-daemon start
sudo service netatalk start
sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk

Finderの commnd+K で afp://192.168.xx.xx/にアクセス。
IP、パスワードを聞かれますので、RaspberryPi側のアカウント、パスワードを入力してください。

後はシステム管理 TimeMachine から通常のHDD追加同様一覧に出てきます。

これで、帰宅してMac開くと勝手にバックアップ始まります、便利!

先人の知恵ステキ!僕らのステキ!(By國府田マリ子)

※ 導入するのに下記の記事などを参考にしました。