イケハヤさんのプレミアム回で、Macが起動不能になって丸ごと初期化した話を読みました。

色々と反省点が書いてあって、ゾッとしました。

ぼく、、、何もしていない・・。

有料記事なので中身は割愛します。読んだその日に、自分のPCのバックアップ体制を構築すると決めました。

ぼくはこのバックアップ体制にしました

手持ちにあるSSD、使っていなかったNAS。

ちょうどGoogle AI Proに課金しているぼくは、Google Driveの5TBの容量が使えることに気づきました。

バックアップ対象は開発フォルダ・書類・デスクトップ・外付けSSD全体。写真とダウンロードは外しました。

そこで(AIが)考えたのは下の布陣

層置き場容量
NAS自宅のBuffalo製1.8TB
クラウドGoogle Drive5TB
Time Machine外付けSSD専用の区画

NASと外付けSSDは自宅に、Google Driveは家の外に置いています。

NASとGoogle Driveには、毎晩バックアップが走ります。

ぼくのバックアップ体制。Time Machine・NAS・Google Driveの3層と、壊れたときにどこから戻すか

壊れたものに応じて、戻す場所を決めました。

  • Macが壊れた → 外付けSSDのTime Machineから、新しいMacへ丸ごと戻す。アプリも設定も書類も。目安は1〜3時間
  • Macと一緒に外付けSSDも壊れた・無くした → NASからデータを戻す。家の中なのでネット不要で速い
  • 家が火事・泥棒で、家の中の機械が全部ダメ → Google Driveからデータを戻す
  • 間違えて消した・前の状態に戻したい → NASかGoogle Driveから、日付を指定して戻す

そして、エンジンはresticです。決め手は4つ。

・差分と重複排除で容量を食わない。

・暗号化されてるので、NASを覗かれても中身は読めない。

・世代管理(forget+prune)で、古い履歴を自動で整理してくれる。

・イケハヤさんもおすすめしてた

ここまでは順調。さて、Fableさんよろしく、、、としたものの思ってたより

トラブりました。

NASにTime Machineを向けたら、そもそも作れない

最初の地雷は、設計の段階でした。

NASにTime Machineを向けようとしたら、設定できない。

調べたら、うちのNASの機種はTime MachineをAFPというプロトコルでしか受けられない。

そして、いまのmacOSはAFP経由のTime Machineを新しく作れない仕様でした。

NASでTime Machineは諦めました。外付けSSDにTime Machine専用の区画を切り直して、そっちに向けています。

launchdからだとデスクトップが読めない

自動実行はlaunchdに任せました。launchdは、毎晩決まった時刻にバックアップを自動で始めさせる、Mac標準の仕組みです。

すると、Desktopの中身が読めない謎のエラー。手で叩けば動くのに、です。

原因はmacOSのセキュリティ機能、フルディスクアクセスでした。

権限はコマンドそのものじゃなく、「そのコマンドを実行してる親プロセス」に紐づく仕様なんですね。

同じ理由で、Homebrewをアップデートした後に権限が外れる罠もありました。一度通したから終わり、ではない。

権限は動かした親で決まる。手で実行するとターミナルの権限でDesktopが読め、launchdからだとbashに権限がなく読めない

Google Driveは割り当て制限と、ロックの残り

初回アップロードの途中で、Googleの割り当て制限(RATE_LIMIT_EXCEEDED)に当たって一度失敗しました。

再実行したら、今度は直前の処理のロックが残っていて、「もう誰かが使ってます」的なエラー。世代整理だけ失敗しました。データそのものは無事です。

1回目の失敗が、2回目の失敗の原因になる。

1回目のアップロードが割り当て制限で止まり、ロックが残って、2回目の再実行で世代整理だけ失敗した流れ

挿し忘れと、焦らされた表示

4つめは自分のせいです。外付けSSDを挿し忘れた状態でバックアップが走って、その部分だけスキップされていました。

安全装置としては正しい動きです。無いものは無いと言って、残りを進める。ただ、気づかずにそのまま進めるところでした。

5つめは逆で、実体は正常なのに焦らされたほう。

メニューバーのアイコンが「Time Machine未設定」と出て、一瞬ヒヤッとしました。

監視アプリ自体に権限が無くて、状態を読めていなかっただけ。実バックアップは動いていました。

止まってるのに静か、動いてるのに騒ぐ。どっちもあるんですね。

表示と実際のずれ。SSDの挿し忘れは黙ってスキップ、監視アプリの権限不足は動いているのに未設定と表示

消す処理だけは2段階にした

古いバックアップを消す処理は、いきなり本番にしませんでした。

最初は「消すつもりのものを一覧に出すだけ」の試運転モードで動かして、中身を目で確認してから、本番の削除を有効にする。この2段階です。

いまの使用率は、NASもGoogle Driveもまだ数十GB。容量の1〜2%くらいで、当分は余裕があります。

監視も強化しました

地雷を5つ踏んだので、失敗したら向こうから知らせてくれる仕組みを足しました。

  • 毎朝7時、バックアップの結果をまとめたレポートがMacの画面に開く
  • Macのメニューバーに●が出る。緑なら正常、黄色は要注意、赤は失敗
  • 失敗したらDiscordに通知が来る。週に1回のまとめも届く

バックアップの状態を知らせる、朝のレポート・メニューバーの表示・Discordの通知

付けて2日ほどで、さっそく出番が来ました。

9/22の夜と9/23の夜、Google Driveへのバックアップが2晩続けて失敗。NASのほうは動いていました。

Discordに通知が来ていて、原因はバックアップに使っているGoogle Driveへのログインが切れていたことでした。

9/24の夜にログインをやり直して、手で走らせました。その晩から、元どおり毎晩成功しています。

まとめ

ぼくはイケハヤさんの記事を読むまで、バックアップは何もしていませんでした。

あの日に組んだバックアップが、いまは毎晩NASとGoogle Driveに残っています。

自分のバックアップの置き場がいくつあって、どのくらいの頻度で取れているか。

一度、書き出してみてください。

「何もしていない」も、書き出せば一目でわかります。