Time Machineは、Mac OS X Leopard上で作成されたあらゆるファイルを定期的にバックアップし、必要なときに復元するためのシステムだ。起動ボリューム以外の領域を保存先に指定すると、バックアップが決まったサイクルで自動実行される。原則としてシステムが存在するローカルのディスクがバックアップ対象に含まれるため、保存されるべきフォルダの指定といった面倒な作業は必要ない。

初回はシステム環境設定の「Time Machine」パネルで保存先のディスクを決める

バックアップ先に利用できるディスクは、接続方法に関しては厳しく定められていない。筆者はUSB 2.0接続の外付けHDDを利用したが、FireWireでもeSATAでも構わない。ただし、オプションを変更しないかぎりは最低でも起動ボリューム以上のディスクスペースを消費するため、できるだけ容量の大きなHDDを用意すべきだろう。

バックアップされたデータは、保存先に指定したディスクのルートに作成された「Backups.backupdb」フォルダに保存される。暗号化や圧縮処理は行われないため、Finderで開けばそのまま内容にアクセスできる。バックアップの実行サイクルは固定で、過去24時間の1時間ごとのバックアップと、過去1カ月の1日ごとのバックアップ、バックアップ先のディスクが容量いっぱいになるまでの1週間ごとのバックアップを行い、不要なもの - たとえば2日前にバックアップされた24回分のデータのうち23回分 - は削除されていく。

数日も使い続けると、このように日付 & 時間順にフォルダが作成されていく

秘密は「ハードリンク」

「Backups.backupdb」フォルダの内容を調べていくと、初めてTime Machineを有効にしたときに作成されたフォルダと、それ以降に作成されたフォルダの内容が基本的に同一(もちろんその間に変更が加えられたものは変わるが)ということに気づく。「×月○日△時のコピー」といった複製品でもエイリアスでもなく、Finderで見るかぎりはオリジナルのファイルとまったく同じ。しかし、初回のバックアップには数時間かかったところが、2回目以降は1~2分もあれば処理は完了する。圧縮されている様子もないのに、HDDの空き容量がほとんど減少していないことは不思議に思えるはず。

もしやと思い確認してみると予想どおり、2回目以降のバックアップの大半は初回にオリジナルからコピーで作成されたファイルのハードリンクだった。Finderの情報ウインドウでは、通常のファイルとハードリンクを区別できないが、Terminalからlsコマンドを実行してiノード(すべてのファイルが持つ一意の数値情報)を確認したところ、初回のバックアップと2回目以降のバックアップに共通して含まれるファイルのiノードは一致した。

リンクカウント(そのファイルを参照しているハードリンクの数)はといえば、バックアップが実行されるごとに増えるとはかぎらないようだ。筆者が調べたかぎりでは、まったくファイルの新規作成 / 変更が行われていないフォルダ内にあるファイルのリンクカウントは変化がなく、フォルダ内になんらかの変化が生じた場合には増える(デスクトップのように更新頻度が高いフォルダのリンクカウントは高確率で増える)。一方、リンクカウントに変化がないファイルも、Finderで開けば最初にバックアップされたファイルと寸分変わらないことからすると、ハードリンク以外のリンクとは考えにくい。

上側がオリジナル、下側がバックアップ。リンクカウントの違いに注目

デスクトップのように内容の変更が激しいフォルダは、リンクカウントが多くなる

ところで、HFS+というファイルシステムには、そもそも(UFSやExt2と完全互換の)iノードが存在しないため、一種のエミュレートでiノードおよびハードリンクと同等の機能を実現している。記事では便宜上ハードリンクと表現したが、実際にはHFS+独自の「カーネルレベルシンボリックリンク」が使われていると考えられる。結論を出すには情報不足だが、やはりTime Machineのバックアップには、UNIXでいうハードリンクとは厳密な意味では異なるリンク機能が使われているのだろう。

復元は"ベストヒットUSA"の如し

以上のように地道かつ効率的なバックアップが行われているTime Machineだが、Appleらしく見た目は華やかだ。Time Machine.appを起動すると、にわかにFinderウインドウが前面に現れ、往年の音楽番組ベストヒットUSAのオープニングのように、遠近感を持って並べられる。例えていうならば、1回のバックアップが1枚のアルバムジャケットとして表示され、それを繰ることでタイムマシーンが時間を旅する、といったところだ。

復元したいファイルを探すには、Finderの機能を利用する。Spotlightの機能を使ってもよし、フォルダを順に開く往年の方法でブラウジングしてもよし。発見できたファイルは、右下の[復元]ボタンを使えば元通りになる。

動画

動作中のTime Machine.appの様子。再生にはQuickTime Playerが必要(要QuickTime Player。無音。MOV形式 10.4MB)

百聞は一見にしかず、以下のQuickTimeムービーを見てほしい。まずTime Machine.appを起動すると画面が下方へスクロールアウトし、タイムトンネル状の画面が現れる。画面右横の軸の上をマウスオーバーするとバックアップデータの作成日時が表示されるので、適当なところでクリックすればFinderに表示される内容はそのバックアップデータ作成時点のものとなる。過去方向の矢印をクリックすれば、表示されているフォルダの内容が変更されたもっとも最近の日時まで、自動的に遡ってくれる。

あとはFinderの機能を利用し(Spotlight検索も可)、復元したいファイルを探せばOK。そのファイルを選択した状態で画面下の[復元]ボタンをクリックすると……時間旅行は終了、ファイルも復元しているというしくみだ。

インストールDVD-ROMからシステムをブートすれば、システムごと復元することも可能