2013年6月2日日曜日

Time Machine HDD交換 4 TBへ 〜 移行方法

Time Capsuleに付けている2 TBの外付けHDDにTime Machineでバックアップをしていたのですが、先日これがいっぱいになってエラーしました。写真のRAWデータが多いためでしょう。そこで外付けHDDを交換することに。次の大きさとなると3 TBだが、4 TBで一つ安いドライブがあったのでそれにすることに。本当は3 TBを買って、技術の進歩(と値段の低下)を待って3 TBがいっぱいになった時にまた次の大きさを探せばいいのですが…

アマゾンとkakaku.comをみたところ、HGSTのTouro Desk 4 TBがやけに安かったのでそれに。HDDを値段の安さで選ぶのもアレですが…。

USB 3.0/2.0対応。ACアダプター方式。USBケーブル付き。NTFSで初期化済みなので、Time Machineで使えるようにするために、MacでHFS+ (journaled)で初期化しなおします。

新しいHDDへの移行には二通り

一つは、今までのバックアップはすっかり捨ててしまうことにして、すぐに新しいHDDをTime Capsuleにつなぐこと。これですと自動的にフルバックアップが行われ、以後差分バックアップとなります。最初のフルバックアップに数時間〜半日?かかりますが、時間はこれが一番早いです。過去のファイルを引き出すには、古い方のドライブを数ヶ月は残しておいて、それをUSBで繋いでTime Machineで過去のファイルを呼び出すことになります。

もう一つは、律儀に、古い方のHDDからバックアップファイル(DiskImage形式のファイル)をコピーする方法。こうすると、過去のバックアップを引き継ぐので、次のバックアップから差分バックアップになります。それまでのバックアップが継承されるので、過去のファイルが取り出せます。が、このコピーがものすごく時間がかかります。旧ドライブはコピーが終わったら、初期化して他の用途に使えます。

Time Capsuleの内蔵HDDがいっぱいになった場合、Time Capsuleの内蔵HDDにアクセスする方法がネットワーク経由しかないため、読み出し速度が遅いため時間がかかります。数日かかった印象があります。この点から、実はTime MachineはTime Capsuleに外付けHDDを付けるのが無難です。コピーの時だけMacのUSBに付けてUSB経由でコピーするほうが高速だからです。ただし、元のマシンに繋がないとファイルパーミションの関係で読めないかもしれません。一方、交換のたびに前のバックアップを捨ててしまう方式ならば一番手っ取り早く移行が完了します。

さらに、MacのFinderはコピーがあまり速くありません。特に大量の細かいファイルがある場合(Time Machineのバックアップファイルがまさにそれ)に遅いです。Finderのコピーは最初に全部のファイルの数とサイズを調べて、それを元にプログレスバーの進捗表示をしようとするため、二度手間になっています。コピーが始まる前の「準備中」だけで一日、二日かかる状況になっています。

ファイルコピーで移行してみる

以上に鑑みつつ、今回はちょっと工夫をしてみてその効果を確認したいので、コピー方式で行って見ることにしました。

まず、新旧両方のHDDをMacのUSBにつなぎます。私の場合Mac mini OS X serverが一番暇なので、そこに接続。で、unixのコマンドを使ってコピーします。unixコマンドならプログレスバーの用意などの「雑務」がないため高速です。バックアップファイルのファイルパーミションが合わないので、terminalで、rootになって作業します。

ファイルのパーミッションを保存するため p オプションを付けて cp -rp でコピーすればよさそうですが、これでは問題があります。Time Machineは、変更が無かったファイルはハードリンクでコピーすることで差分バックアップと同じことをしています(変更されてたファイルだけが、コピーされる。変更されてないファイルはハードリンクで繋いでしまうので容量増加0で同じファイルが持てるので、面倒な差分リストの管理が不要になる)。cpはハードリンクを維持しないで別のファイルとしてコピーしてしまうのでだめです。ハードリンクを保持するにはtarを使います。

tarで、旧HDDのバックアップファイルをアーカイブし、それを今度は新HDD側でtarで解凍します。これを単純にやると一旦アーカイブするための「場所」が必要になり、HDDが足りなくなってしまいます。が、unixなので、 | (パイプ)を使って直接クリエイト側とエクストラクト側をstdin/stdoutで繋いでしまいます。

コマンドラインしては以下のような感じ。旧HDDの名前をold、新HDDの名前をnewと仮定すると:

cd /Volume/old
tar -cf - ./Shared | ( cd /Volume/new; tar -xvpf - )

となります。tarのfオプションはファイル名の指定。直後に来るのがファイル名となります。ファイル名に"-"を指定すると、stdin/stdoutになるので、-cf - でstdoutへ結果を出力していきます。

これを | (パイプ)で受けて、同様に f で - を指定することで解凍するデータをstdinから読み込むことに。オリジナルのパーミッションを保存したいので p を指定し、さらに進んでいる様子がわかるようにするため、解凍ファイル名を画面出力させるために v を指定して -xvpf - とします。

そして完了

これで土曜の午後からコピー開始。コピーの進捗具合は、新旧両方のドライブのGet Info...をして使用ファイル容量を見比べることで判断します。結果27時間くらいかかって、1.7 TBコピー出来ました。この間はMacのTime Machineは止めておきます(ドライブがないのでエラーするから)。

コピーが終わったら新ドライブのドライブ名(ボリューム名)を旧ドライブと同じにして、Time Capsuleに接続。MacのTime Machineを再びオンにし、「Backup Now...」を手動で選んで、数日止まっていたバックアップをやらせます。これは差分バックアップなので、短時間で終わります。

これで、移行終わり。ちなみに4 TBとありますが、最近のHDDのGやTは1000倍のことなので、Macに挿すと3.6 TBと出ます。その意味では以前の2 TBドライブもMac上では1.8 TBですので、容量が二倍に増えたことには変わりありません。

0 件のコメント:

コメントを投稿