福岡のIT系の会社で働くエンジニアのブログです。

技術雑記

Raspberry Pi 3 + USB-HDDで Time Machineサーバを立ててみました。

Twitter bookmark Facebook LINE Pocket Feedly RSS

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

※ hfsplusを利用できるよう、一度、再起動が必要みたいです。

sudo reboot

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系の為

cd /usr/local/src/
sudo wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.12.tar.gz
sudo tar -xvzf netatalk-3.1.12.tar.gz
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

サービス開始!

sudo service avahi-daemon start
sudo service netatalk start

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

sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk

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

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

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

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

https://myenigma.hatenablog.com/entry/2017/02/23/165400
http://takuya-1st.hatenablog.jp/entry/2014/04/07/013519

Twitter bookmark Facebook LINE Pocket Feedly RSS