anatsuk1のウェブログ

ブログを書いてみたい!

Raspberry PiでTime Machine

Time Machineの音に気が付く

Time Machineを、ネットワークHDDにバックアップしている。 HDDはウェスタンデジタル製で信頼がおけ、容量がおおきい。

ネットワークHDDが、カリカリとうるさく、Time Machineしている瞬間が悪くわかる。できればSSDにしたいと静かな時間に思っていた。深夜に布団の中で目を閉じていると気になる。

SSDとラズパイで、Time Machineを思いついた。

システム構成

Raspberry Pi 4Bソフトウェア構成

セットアップ

USBメモリSSDMacでフォーマットするよ!

MacUSBメモリSSDMac OS拡張(大文字/小文字を区別、ジャーナリングでフォーマットしてね。

Sambaのセットアップ

インストールは、Raspberry PiでホストPCとファイルを共有するを見てね。

avahiをインストールするよ。もしかしたらいらない?かも。

sudo apt install avahi

[global]セクションに追加するよ。

   vfs objects = catia fruit streams_xattr
   fruit:metadata = stream
   fruit:encoding = native

vfs_fruitの詳しいページ。 www.samba.gr.jp

[timemachine]セクションを追加するよ。

  • pathには、USBメモリSSDのマウントパスを書くよ。
  • valid usersには、MacからTime Machineのときに使うユーザー名を書くよ。Sambaに登録したユーザーだよ。
  • browsableはFinderで非表示にしたいのでnoだよ。
  • writableは Time Machineで書き込むのでyesだよ。
  • fruit:time machineはTime Machineなのでyesだよ。
[timemachine]
   path = /media/data
   valid users = pi
   browsable = no
   writable = yes
   fruit:time machine = yes
   fruit:time machine max size = 256G

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