Time Capsule から任意のファイルを任意の場所に復元する
どうも、love++ の件で密かに話題になっているそうたろうです。Mac を買うたびに Mac ネタかって話ですが、タイトルのとおり、Time Capsule から任意の場所にバックアップされているファイルを復元する方法です。
今回、自分のマシンで問題になったのは、復元「先」が指定できない問題でした。Mac は Time Machine を使って Time Capsule に常にバックアップしていて、ファイルは存在しているのですが、今回新しい iMac を買って、構成が
と変更されました。ここで問題となったのは、 Primary ディスクかつ起動ディスクとなっているシステムのボリュームが 256 GB SSD の方になっていたことでした。
Time Capsule から以前のファイルを復元しようとしたところ、復元先を指定することができず、256 GB SSD のほうに復元されようとしてしまい、当然容量が足りない *1。
で、仕方なく OS インストールの際には、iTunes のディレクトリと iPhoto のディレクトリを除いて復元したのだが、後から復元できるかなーと思ったけど、「移行アシスタント」を使っても、同じ状況で復元先は指定できなかった....
もうだめや...
と思っていたが、要するに以下の要領で復元した。
- Time Capsule の Data ディレクトリをマウント
- 旧 iMac のバックアップファイル (.sparsebundle … スパース・ディスクイメージ・バンドル) をマウント
- そのマウントされたディレクトリの Latest ディレクトリから rsync
Data ディレクトリをマウント
これはもはや言及するまでもなく、Finder から Time Capsule を選択すれば勝手にマウントされる。
スパース・ディスクイメージ・バンドルをマウント
マウントされた Time Capsule の Data ディレクトリをひらいて、 .sparsebundle となっているファイルをダブルクリック。
rsync
基本的に Terminal.app とか iTerm とかで作業。
マウントされた .sparsebundle は、
$ ls /Volumes Backup of Monopoli <- バックアップファイル (これは Monopoli というマシン名) Data <- Time Capsule のディスク Macintosh HD <- ローカルの SSD Macintosh HD 2 <- ローカルの HDD
な場所にあるので、中身をとりあえず見てみる。
$ ls -la /Volumes/Backup\ of\ Monopoli total 16 drwxr-xr-x 6 sotarok staff 408 6 13 2010 . drwxrwxrwt@ 6 root admin 204 6 15 23:27 .. -rw-r--r--@ 1 sotarok staff 6148 9 4 2010 .DS_Store drwx------ 3 root staff 102 8 14 2009 .Spotlight-V100 d-wx-wx-wt 3 sotarok staff 102 6 15 23:27 .Trashes -rw-r--r-- 1 root staff 0 8 14 2009 .com.apple.timemachine.supported drwx------ 2 sotarok staff 102 6 15 23:29 .fseventsd drwxr-xr-x+ 3 root staff 102 9 13 2009 Backups.backupdb
Backups.backupdb ディレクトリが実体になってて、日付ごとのディレクトリ + Latest ディレクトリがある。
$ ls -la /Volumes/Backup\ of\ Monopoli/Backups.backupdb/Monopoli ... drwxr-xr-x@ 3 root staff 204 6 8 23:04 2011-06-08-230426 drwxr-xr-x@ 3 root staff 204 6 11 01:37 2011-06-11-013743 drwxr-xr-x@ 3 root staff 204 6 11 02:37 2011-06-11-023745 ... drwxr-xr-x@ 3 root staff 204 6 13 19:42 2011-06-13-194209 lrwxrwxrwx 1 root staff 17 6 13 19:42 Latest -> 2011-06-13-194209
で、要するに Latest がその中身なので、もう要するに以下のように吸いだした。復元先はもちろん Macintosh HD 2 ですよ。「/Volumes/Macintosh HD 2/Music/iTunes/iTunes Music/」 が新しい iTunes Music ライブラリのディレクトリ。
$ rsync -avP /Volumes/Backup\ of\ Monopoli/Backups.backupdb/Monopoli/Latest/Macintosh\ HD/Users/sotarok/Music/iTunes/iTunes\ Music/ /Volumes/Macintosh\ HD\ 2/Music/iTunes/iTunes\ Music/
みたいなかんじ。結構時間かかるけどめでたしめでたし(多分。今転送中)
というか
みんなどうやって復元しているのだろうか。もっと簡単な方法があるのか? rsync とか使えないような人ってどうしてるんだろうな。
余談
Time Capsule のディスクを単純にマウントするなら、
$ mount_afp afp://user:password@ip addr of time capsule/Data /path/to/mount
的な感じでできます。
これはこれで、前起動ディスクが死んだときに、OS DVDディスクから起動してターミナル起動してバックアップとってなかったディレクトリを Time Capsule に転送するときに役に立った。
*1:あ、もちろんもとのディスクで 500 GB 中 256 GB 以下しか使っていない場合は別