VirtualBox などで使用する、仮想マシン用のディスクイメージ。これを効率的にバックアップするのには少しコツが要ります。既に広く知られているとは思いますが、個人的メモも兼ねて書いておきます。
ホストOSが Mac OS X (Leopard 以降) の場合、 Time Machine を使ってバックアップを取ることが多いと思いますが、 その OS X 上で VirtualBox や VMWare といった仮想化ソフトウェアを使用する場合、仮想マシン用のディスクイメージは単一ファイルであり、ゲストOS上でファイルを1つ修正したとしても、ホストOS側からみると大きなディスクイメージ1つに変更が加えられた、と判断されます。
そのため Time Machine によるバックアップも、(仮想化ソフトウェアでゲストOSを全く使用していない時を除き)毎回数GB〜数10GB単位で行われることになり、あっという間にバックアップ領域がいっぱいになってしまいます。
そこで、仮想マシン用のディスクイメージが保存されているディレクトリ、VirtualBox の場合は「~/VirtualBox VMs
」を、Time Machine のバックアップ除外リストに指定し、これらディスクイメージを別途バックアップする、いう使い方をされている方も少なくないでしょう。
あるいは、ゲストOS上で直接、古式ゆかしき dump
、あるいは rsync
や pdumpfs
などを使って、バックアップを取るという方法を取られている方もいるでしょう。
OS X (Leopard) 以降では、スパースバンドルディスクイメージ (Sparse Bundle Disk Image) がサポートされています。これは、従来の単一ファイルのディスクイメージではなく、OS X Finder 上でディスクイメージのように見えているものはバンドル(ディレクトリ)で、その中には 8MB ごとに分割されたフラグメントが収められています。このディスクイメージをマウントし、その中にファイルを追加したり削除したり変更を加えたりすると、8MB 単位で分割されたフラグメント単位で増えたり減ったり修正が加わったりするわけです。
なので、このスパースバンドルディスク上に、仮想マシン用のディスクイメージを保存しておけば、Time Machine によるバックアップでも効率よくバックアップできる、ということになります。とはいっても、ゲストOSを起動するだけで、結構な差分量が生じるようですが。。。それでも通常の Time Machine バックアップよりはましになるのでよしとしましょう。
現在 OS X 上で VirtualBox を使っているとして、仮想マシンのディスクイメージをスパースバンドルディスクに移行するおおまかな手順は以下の通りです。
- VirtualBox のすべてのゲスト OS を終了しておく
- OS X 上でディスクユーティリティを起動、「新規イメージ」をクリックする
- 作成したスパースバンドルイメージをマウントし、そこに
~/VirtualBox VMs/
の中のフォルダをすべてコピーする ~/VirtualBox VMs
をリネームするなり、削除する- ターミナルを使い、シンボリックリンク を作成する
(このとき OS X Finder 上でのエイリアス作成ではだめです。VirtualBox はエイリアスを解釈してくれません。かならずシンボリックリンクにする必要があります)
- 「システム環境設定」→「ユーザとグループ」→「ログイン項目」で、上で作ったスパースバンドルディスクイメージを選び、システム起動時にディスクイメージがマウントされるようにしておく
と、まあ、いまのところは、こんな感じで使っています。Time Machine であれ、rsync であれ、これで毎回のバックアップで無駄に差分が生じることはなくなるはずです。
この MacBook Air でも、じきに OS X の VirtualBox 上で Vine を常用する形態から、直接 Vine を起動して常用することになっていくとは思いますが、とりあえずいまはこんな感じで。。。