Raspberry PiでTime Machine
By Patineboot
Time Machineの音に気が付く
Time Machineを、ネットワークHDDにバックアップしている。 HDDはウェスタンデジタル製で信頼がおけ、容量がおおきい。
ネットワークHDDが、カリカリとうるさく、Time Machineしている瞬間が悪くわかる。できればSSDにしたいと静かな時間に思っていた。深夜に布団の中で目を閉じていると気になる。
SSDとラズパイで、Time Machineを思いついた。
システム構成
- Raspberry Pi 4B
- USBメモリタイプのSSD。ADATA UE700PROを使ったよ。これはマジでお勧め。
Raspberry Pi 4Bソフトウェア構成
- Raspberry Pi OS
- Samba
セットアップ
USBメモリSSDをMacでフォーマットするよ!
MacでUSBメモリSSDをMac OS拡張(大文字/小文字を区別、ジャーナリング)でフォーマットしてね。
Sambaのセットアップ
インストールは、Raspberry PiのSambaでファイルを共有するを見てね。
avahiをインストールするよ。もしかしたらいらない?かも。
sudo apt install avahi
[global]セクションに追加するよ。
vfs objects = catia fruit streams_xattr
fruit:metadata = stream
fruit:encoding = native
vfs_fruitの詳しいページ。 http://www.samba.gr.jp/project/translation/4.2/htmldocs/manpages/vfs_fruit.8.html
[timemachine]セクションを追加するよ。
[timemachine]
path = /media/data
valid users = pi
browsable = no
writable = yes
fruit:time machine = yes
fruit:time machine max size = 256G
- pathには、USBメモリSSDのマウントパスを書くよ。
- valid usersには、MacからTime Machineのときに使うユーザー名を書くよ。Sambaに登録したユーザーだよ。
- browsableはFinderで非表示にしたいのでnoだよ。
- writableは Time Machineで書き込むのでyesだよ。
- fruit:time machineはTime Machineなのでyesだよ。
- fruit:time machine max sizeはTime Machineを保管するサイズだよ。
HFS+のファイルシステムをラズパイにインストールする。
sudo apt install hfsplus hfsutils hfsprogs
UUIDを調べる!
USBメモリSSDのUUIDをコマンドで調べるよ。
lsblk -o +UUID
UUIDが解った!
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID
sda 8:0 1 59G 0 disk
└─sda1 8:1 1 59G 0 part /media/data AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE ← UUIDだよ。実際はもっと複雑な数字とアルファベットよ。
自動でマウント!
マウントはmount
コマンド。だけど再起動のたびにコマンド実行は面倒ですね。
そこで自動でマウントする方法を教えます。
/etc/fstab
にマウント情報を追加するよ。
fstabを編集するので、スーパーユーザーでnanoコマンドを実行するよ。
sudo nano /etc/fstab
書き換え後はこうだよ。
proc /proc proc defaults 0 0
PARTUUID=7a479fa0-01 /boot vfat defaults 0 2
PARTUUID=7a479fa0-02 / ext4 defaults,noatime 0 1
UUID="AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE" /media/data hfsplus force,defaults,nofail 0 2 ← この行を追加する。
書いてある内容を伝えたい!
- UUID
USBメモリSSDを特定する固有のIDだよ。UUIDで指定すると、USBメモリを挿入するポートを変えても、自動でマウントできるよ。お勧め。 - /media/data
マウントパスだよ。マウントパスにはあらかじめディレクトリを作成しておく必要があるよ。 - hfsplus
ファイルフォーマット。Mac OS拡張(大文字/小文字を区別、ジャーナリング)はこの指定でいいよ。一般にはHFS+(読み方はエイチフフエスプラス)というよ。 - force,defaults,nofail
マウントオプションだよ。 HFS+を書き込み可能にマウントするには、force が必要だよ。マウント失敗してもブートしたいのでnofailをつけたよ。 - 0
ここは0で良いよ。 - 2
これは重要だよ。ブート時にfsckをするよ。fsckをすると、HFS+は書き込み可能でマウントできるよ。
デバッグ
起動ログを確認したよ。HFS+が書き込み不可能でマウントされた場合は、コマンドを実行して、理由を起動ログで調査したの。
sudo dmesg