Time Machine に助けられた話 (教員のための Mac Tips:8)

背景

先週の金曜日に研究室の Mountain Lion Server を Mavericks Server にアップデートしました。正確には、OS X Server 2.2 から OS X Server 3.0 へのアップデートです。実際にアップデートしてみると、今までローカルネットワーク(○○.local)で運用していたサーバが、いきなりローカルアカウントでのログインを拒否するようになりました。週末、あらゆるディスカッションを読み、原因が正しい FQDN + DNS での運用をしていないためであることがわかり、日曜日の夜になんとか復旧させることができました(月曜朝一の授業にはなんとか間に合いました)。

授業が終わり、水曜日の教職員会議の資料作成をしようと Spotlight でメールを検索するものの肝心のメールが見つかりません。おかしいなと思って、メールの受信箱をみたら、土日に届いた50通のメールしかありませんでした。FQDN が変わったため、IMAP サーバの設定が変わり、参照していたメールが見えなくなってしまったようです。教務室の Macbook Pro はこの IMAP サーバを見ているので、同期した瞬間にノート内のキャッシュメールも全部消えてしまったようです。

きっとサーバ内の何処かにデータ自体はあって、うまく設定すれば復活できるんでしょうが、こんな面倒なことはやる気がありません。なぜなら、Mac には Time Machine という強い味方がいるからです。

Time Machine (ファイルのバックアップ機能)

Time Machine は Mac OS X 10.5 Leopard から導入された自動バックアップシステムです。外付けの HDD をつなげておくことで、1時間置きに差分バックアップをしてくれます。OS 自体に特定日付以降の変更されたファイルを取得する機能があるため、差分ファイルを探し回るようなことはなくかなり短時間で作業は終了します。ただし、1回目のバックアップはフルバックアップになるので、全ファイルコピー分の時間はかかります。

バックアップが終了すると、外部ディスクには日付・時間ごとのスナップショットのフォルダ構成が用意されます。ただし、実際のファイルはハードリンクされているので、ディスク内には一つの実体しか存在していません。なお、日付・時刻は全てが残っているわけではなく、ログスケールで適度に間引かれて行きます。24時間以内は1時間ごとに残っていますが、それを超えると1日ごと、1ヶ月を超えると1週間ごとのフォルダ構成が残るようになっています。

Time Machine からの復元はグラフィカルなユーザインターフェイスが用意されています。メニューバーから Time Machine に入ると、宇宙空間のような画面になり、現在開いているフォルダが現在から過去に向かって連なって表示されます。右に示されたタイムスケールを動かすと、その時間のフォルダに移動します。
例えば、間違って削除してしまったファイルがあった場合、時間を遡るとある時点でファイルが復活するので、そのファイルを選んで下にある「復元」ボタンを押せば現在のフォルダに復活します。また、別名保存のつもりでつい上書きしてしまったりした時にも Time Machine で元のファイルを簡単に復活することができます。

そのため、Time Machine に慣れきってしまうと、バックアップディスクが繋がっていないとがっかりすることになります。ただし、ノートマシンではなかなか外付けの HDD を常に付けておくというのも難しいこともあります。このため、OS X Lion からは、/Volumes/Mobile Backups 内にローカルのスナップショットを保持するようになりました。この場合、すでに HDD 内に実体が存在するので、最初のバックアップ作業は必要なく、差分ファイルの保持だけとなります。マシン内部だけの処理となるので、あまりバックアップをしていると意識している人は少ないかもしれません。このおかげで、外部HDD が繋がっていない場合でも、ファイルの上書き事故などにも対処できるようになりました。ただし、同一メディア内での処理ですので、メディア破損に対する事故には当然ながら対応できませんので、外付 HDD が接続できる環境ではちゃんと接続しておきましょう。

Time Machine (メールのバックアップ機能)

最近は仕事のメールへの依存度が高くなっており、どんな環境でもメールが読める必要があります。さらに単に読めるだけでなく既読やフォルダ管理が同期できないと何度も同じメールを確認することになってしまいます。私の場合も、現在は教務室と研究室の二箇所でメール管理をしたいので、必然的に IMAP での管理ということになります。

しなしながら、職場のメールサーバは、公式には POP しか提供していないことになっています。そのため、研究室内のサーバに IMAP サーバを用意して、研究室の Mac mini で POP - IMAP ブリッジをさせています。職場のメールサーバに届いたメールは、Mac mini が受け取り、Mail.app のルールにより、自動的に研究室の IMAP サーバに移動します。教務室の MacBook ProIMAP サーバを閲覧しているので、研究室の Mac mini と既読管理情報が同期されることになります。

Mac の Mail.app は IMAP 接続の場合に、ローカルにキャッシュを保持します。これは、ネットワークに繋がっていない時にメールを確認するためだけでなく、以前説明した Spotlight 検索のためでもあります。ローカルにキャッシュがあるということから、実はこの情報も Time machine に記録されています。この情報を利用して、Mail.app は Time machine に対応するように設計されており、メッセージ単位で差分バックアップされています。このため、間違って削除してしまったメールも、Finder 上のファイルと同じように GUI で復元可能です(メッセージ一覧画面が時間順に連なって表示されます)。

今回のメールサーバトラブルの場合も、Time machine で月曜日早朝のフォルダから全てのメールを復活させました。ただし、Mail.app での復元は「この Mac内」のフォルダに全てのメールが復元するだけですので、その後メールを IMAP サーバに移動しました。サーバ内に残ってしまったと思われるゴミデータは後で削除する必要はありますが、Spotlight 情報も無事復元され、日常業務には困らない状況になりました。

Time Machine (連絡先のバックアップ機能)

以前、iPhone の連絡先を管理するアプリにバグがあり、名前やメールアドレスの組み合わせがグチャグチャになったことがありました。Mac を使ってメールを出そうと思った時に、人の名前とメールアドレスが食い違うのでおかしいなと思って調べて始めて気づきました。すなわち、アドレス帳が同期しているせいで、iPhone の壊れてしまった連絡先が全てのデバイスに伝搬してしまったのでした。

これこそ Time machine の出番だろうと、間違って「連絡先(当時はアドレス帳という名前だったかも)」を開いたまま Time machine ボタンを押したら、なんと連絡先のアプリも Time machine に対応していたことに気づきました(最初は設定ファイルを復元することばかり考えていました)。

そうとわかれば話は簡単で、以下のような作業を行いました。

  • 重複確認をしないで済むように、アドレスを全部消去する
  • 全てのデバイスの連絡先が空になったことを確認する
  • Mac の連絡先を全て正しい情報を持った時のデータで復元する
  • 全てのデバイスのデータが復元したことを確認する

普段から積極的にデータをエクスポートしているような、人であればこんなことは必要ないんですけどね。

終わりに

ファイルの Time machine は使っている人が多いと思いますが、メールと連絡先の Time machine も存在を知っているといざという時に助かります。意外と知られていないと思うので今回書いてみました。お役に立てれば幸いです。