7
7

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 1 year has passed since last update.

【ラズパイ】お家のLANにつないだときにmacを自動でバックアップ【TimeMachine (Apple)】

Last updated at Posted at 2021-05-29

Apple Time Machine Server on Local Network

ラズパイで構築するApple Time Machine用オンライン(LAN)サーバー
参考: https://stash4.hatenablog.com/entry/2018/06/17/184423

概要

以前macが突然死してしまい,バックアップしてなかったことでひどい目にあった.
そこで,自宅のLANにmacをつないだときに勝手にバックアップをとってくれるシステムを作成した!
定期的に自動でバックアップを取ってくれるし,LAN経由のためHDDを本体につなぐ必要もなし
今どきはiCloudなどを使ってオンラインにバックアップするのが流行りだけど,容量単価が高くデータを置いておくだけで毎月一定の出費が発生してしまうので,避けたかった.
一方で,ローカルのストレージに保存する形式を取れば,ランニングコストはわずかな電気代だけだし,設定次第でNASとしても使える.

バックアップ方法の比較

  • TimeMachine Server on Lan
    + 自動で定期的にバックアップ
    + 低ランニングコスト(初期費用1万+毎月の電気代数円)
    - 自力でトラブルを解決する必要がある
    - TimeMachineが廃止されたら終わり
  • iCloud
    + 初期設定が簡単でサーバーの設置は不要
    + Apple公式サービスのため,サポートが長い
    - ランニングコストが高い(毎月数千円)
    - 手動でバックアップを開始する必要がある

材料(正直何でも良いと思う)

ラズパイの基本的なSSH設定

Raspberry Pi Imagerなどを使ってラズパイOSをmicro SDに焼く
僕はデフォのraspbian 32bitを選択

ターミナルを開いてIPアドレスを確認,SSH用ディレクトリの作成

ifconfig | grep 192
sudo mkdir -p /boot/ssh

設定 → Raspberry Pi Configuration のインターフェースタブからSSHを有効化
ラズパイを再起動し,macbookから先程のIPアドレスに接続できることを確認

サーバーのセットアップ

事前準備

パッケージの更新

sudo apt update

IPアドレスを固定

お使いの環境に合わせて/etc/dhcpcd.confを編集
後に「リモートリポジトリが見つからない」などのネットワークエラーを出さないように,routersやDNSが正しいことを確認する

# Example static IP configuration:
interface eth0
static ip_address=192.168.1.xx/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

HDDをマウント

(今回は例として/mnt/TimeMachineを使用,変更する場合はsmb.confのパスも変更してください)

HDDのUUIDを探す

sudo blkid
# /dev/sda1: LABEL="BUFFALO_HDD" UUID=“9da1c321-xxxx-xxxx-xxxx-xxxxxxxx9da8" TYPE="ext4"

そして,起動時にHDDが自動でマウントされるように/etc/fstabに追記

sudo sh -c 'echo "UUID=9da1c321-xxxx-xxxx-xxxx-xxxxxxxx9da8 /mnt/TimeMachine ext4 nofail 0 0" >> /etc/fstab'
sudo mount -a

<< 注意 >>
マウントに失敗する場合,ラズパイOSが起動しなくなる可能性があるので,
sudo mount -aが正常に終了することを確認する
もしmount: /mnt/TimeMachine: mount point does not exist.のようなエラーが出た場合,
かならず再起動する前に直す

Trouble Shooting

たまにxxx : Already mounted on yyyのようなエラーが生じることがある.
自分の場合は一度アンマウントすると解決した.

df : show mounted devices
umount [device name] : unmount device

Sambaのセットアップ

sambaとavahi-daemonをインストール
ここで設定したsamba IDでTimeMachineにアクセスする

sudo apt install -y samba avahi-daemon # 選択肢はNOを選ぶ
sudo smbpasswd -a $USER

sambaの詳細設定

mkdir ~/work && cd work
git clone https://github.com/MikiyaShibuya/NAS-PI.git
cd NAS-PI
sudo sh -c 'cat smb.conf >> /etc/samba/smb.conf'
sudo cat smb.conf >> /etc/samba/smb.conf
sudo ln -s $PWD/samba.service /etc/avahi/services/samba.service

sambaデーモンを起動

sudo systemctl start smbd
sudo systemctl start avahi-daemon

サービスの起動を確認

sudo systemctl status smbd
sudo systemctl status avahi-daemon

スクリーンショット 2021-05-29 10.46.28.png

macからNASに接続

LAN経由でラズパイサーバに接続

Finder → ⌘K → smb://192.168.1.xx (RPi' address) → 接続 → samba ID を入力

この写真のようにTimeMachineドライブが表示されるはず
スクリーンショット 2021-05-29 10.51.35.png

Time Machineのバックアップ先を設定

システム環境設定 → Time Machine → バックアップディスクを選択 → Time Machine 192.168.1.xx → ディスクを使用 → samba IDを入力

🎊🎉バックアップ先を設定するとバックアップが始まる!🎉🎊

スクリーンショット 2021-05-29 10.57.40.png

NAS for Apple Time Machine (LAN) English ver.

This is an instruction to build Time Machine server in LAN using Raspberry Pi
Reference: https://stash4.hatenablog.com/entry/2018/06/17/184423

Disclaimer

Although I have confirmed that the backup data can be restored successfully, please operate at your own risk.

Requirement

  • Rspberry Pi
  • HDD storage
  • Wired LAN

My configuration

RPi Basic SSH Setup

Write Raspberry Pi OS 32 bit into micro SD card and turn on the device
Open terminal to find out the ip address of RPi and create ssh directory

ifconfig | grep 192
sudo mkdir -p /boot/ssh

Open Preferences -> Raspberry Pi Configuration
Enable SSH in Interfaces tab

Reboot the device and check the ssh connection from macbook

Server Host Setup

Common

Update package

sudo apt update

Edit environment setup (anything as you want)

sudo apt install -y zsh neovim tmux
git clone https://github.com/MikiyaShibuya/dotfiles.git
cd dotfiles && ./setup.sh

Fix IP address

Edit /etc/dhcpcd.conf to fix local IP address.
Uncomment and edit like this according to your environment.
Make sure routers and DNS server are right to prevent network issues after that.

# Example static IP configuration:
interface eth0
static ip_address=192.168.1.xx/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

Mount HDD

(using /mnt/TimeMachine in this instruction, please edit smb.conf when you using different directory)

Find device and get UUID of HDD

sudo blkid
# /dev/sda1: LABEL="BUFFALO_HDD" UUID=“9da1c321-xxxx-xxxx-xxxx-xxxxxxxx9da8" TYPE="ext4"

Then, write mount setting and check if the HDD was mounted correctly

sudo sh -c 'echo "UUID=9da1c321-xxxx-xxxx-xxxx-xxxxxxxx9da8 /mnt/TimeMachine ext4 nofail 0 0" >> /etc/fstab'
sudo mount -a

<< CAUTION >>
If you failed to mount, some message like this
mount: /mnt/TimeMachine: mount point does not exist.
will be displayed.
Fix this error BEFORE REBOOTING or your OS will be broken.

Trouble Shooting

Some times mounting may be failed like xxx : Already mounted on yyy.
Re-mounting the HDD may fix the issue.

df : show mounted devices
umount [device name] : unmount device

Samba Setup

Install samba and avahi-daemon (for enabling mDNS)
This password will be required when setting up Time Machine

sudo apt install -y samba avahi-daemon # select NO when asked to generate config
sudo smbpasswd -a $USER

Configure smb daemon

mkdir ~/work && cd work
git clone https://github.com/MikiyaShibuya/NAS-PI.git
cd NAS-PI
sudo sh -c 'cat smb.conf >> /etc/samba/smb.conf'
sudo ln -s $PWD/samba.service /etc/avahi/services/samba.service

Start samba daemon

sudo systemctl start smbd
sudo systemctl start avahi-daemon

Check if the samba was launched correctly

sudo systemctl status smbd
sudo systemctl status avahi-daemon

Connect to NAS from mac

Mount NAS drive

Finder → ⌘K → smb://192.168.1.xx (RPi' address) → connect → input your smb ID

TimeMachine should be displayed in the list

Setting TimeMachine Backup

System Preference → Time Machine → Select Backup Disk → Time Machine 192.168.1.xx → Use disk → input your smb ID

7
7
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
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?