icon

というわけで、ちぇんじ、LepardO〜んしたからには乗らずにいられぬTime Machine.

乗り心地、最高でした。

で、時間旅行の際に気づいたことを3つほど。

time-machine0
time-machine1

「誤解」その1:バックアップ中は作業できない

そんなことはありません。初期バックアップの最中でも、かなり普通に使えます。見ての通り、ファイル数が167万もあったので(!)、初期バックアップには6時間近くかかりましたが、その間に実際私は記事を二本ばかり書いたぐらいです。

Activity Monitor で見た限りでは、Load Average は 0.2-0.3程度でした。

とはいえ、初期バックアップの際にあまりファイルシステムを大きくいじるような作業はしない方がいいというのはTime Machineに限らずバックアップの鉄則。初期バックアップは「初夜」にやるのが吉でしょう。

いったん初期バックアップが終わってしまえば毎時間ごとバックアップを取ってくれますし、通常の使い方なら一分ほどで終わります。


time-capsule

「誤解」その2:Time Machine用のHDDは他の用途に使えない

これまたそんなことはありません。Time Machineのバックアップ先は、"Sparse Disk Image Bundle"という、ディスクイメージに見えるフォルダです。見ての通り、ここでバックアップ先として指定したTime Capsuleの中には、この他にも"Others"というフォルダを作ってあります。普段持ち歩かなくてもいいようなファイルは、別途ここに保存することも出来ます。

Time Machineは、リストア要求がある都度、この「ディスクイメージ」をマウントして時間を遡ります。


「誤解」その3:あのGUIを通さないとファイルをリストアできない

「細かい作業はTerminal.appで」という方は、これが最大の懸念になるでしょう。ご安心ください。リストアは普通にshellから出来ます。

まず基礎知識として、Time Machineがバックアップされたデータがどこに保存されるかを把握しておきましょう。

/(root disk)にroot-diskと名付けていた場合、Time Machineのディスクがマウントされている状態で、

/Volumes/Backup of root-disk/Backups.backupdb/root-disk/YYYY-MM-DD-HHMMSS/root-disk

が、YYYY年MM月DD日HH:MM:SSにバックアップされたスナップショットとなります。

あとは

% cd '/Volumes/Backup of root-disk/Backups.backupdb/root-disk/YYYY-MM-DD-HHMMSS/root-disk'
% cd ./Users/dankogai/Desktop

とかした上で、cpするもよしtarするもよしなのですが、ここで一つ留意点があります。

tarcp -prsync -Eなど、HFS+ (Mac OS X のファイルシステム)の拡張属性をコピーするコマンドの場合、バックアップ元の「消すべからず、動かすべからず」というフラグ(ACL)までコピーされてしまうので、そのままではせっかくファイルを復活しても何も出来ない羽目になってしまいます。

これらのACLおよび拡張属性を確認するには、ls -l にe@をつけます。eはACL、@は拡張属性です。

% ls -le@ Picture\ 1.png
20 -rw-r--r--@ 1 dankogai  staff  20146 Jul 26 18:02 Picture 1.png
	com.apple.FinderInfo	   32 
	com.apple.metadata:_kTimeMachineNewestSnapshot	   50 
	com.apple.metadata:_kTimeMachineOldestSnapshot	   50 
	com.apple.metadata:kMDItemIsScreenCapture	   42 
	com.apple.metadata:kMDItemScreenCaptureType	   48 
 0: group:everyone deny write,delete,append,writeattr,writeextattr,chown

たとえば

% tar cf - deleted | (chdir ~/restored/ && tar xvpf -)

という感じでrestoreした場合、~/restored/deletedにはこれらもそっくりコピーされています。

Finder経由で強制操作することもできるのですが、それではshellを使っている意味がありません。一番手っ取り早く操作するには、

% chmod -R -a# 0 ~/restored/deleted

とします。

拡張属性もACLも不要という場合は、リストアの際に

% rsync -av deleted ~/restored/

と、rsyncに-E付けずに実行するのがよいでしょう。mtimeなど、statがらみ、すなわち古き良きUnixの属性はそのままに、OS X固有の情報は華麗にスルーしてくれます。

まとめ

ちなみに私はTime Capsule 1TBをバックアップ先にしていますが、単なる外付けHDDなら500GBなら一万円前後、1TBでも2万円前後からあります。これでバックアップが楽しくなるのですから堪えられません。

本来最も退屈で、しかし後悔先に立たずの代表的なバックアップという作業が楽しくなるというのは、本当にすごい。ACLの使い方といい、確かにAppleのセンスに脱帽しました。

弾言しちゃいます。Time MachineのないLeopardなんて、鍋に入らない猫だ!

Dan the Leopard Tamer

See Also: