VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.

先月登場したVirtualBoxの最新版4.0ではこれまでと設定ファイルおよび仮想ディスク、スナップショットデータ、状態保存データなどの保存場所が変更されている。後方互換性があるため4.0よりも前の仮想マシンをそのまま活用することはできるが、4.0でこれらが変更されたのには理由があり、従来の形式のままではそれら恩恵にあずかることはできない。このあたりの話題がVirtualBox 4 configuration files - The Fat Bloke Singsにまとめられている。

4.0よりも前のバージョンと4.0とではデータの保存先が次のように変わっている。

4.0よりも前 4.0
デフォルトフォルダ $HOME/.VirtualBox/Machines/ $HOME/VirtualBox VMs/
デフォルトディスクフォルダ $HOME/.VirtualBox/HardDisks/ $HOME/VirtualBox VMs/それぞれの仮想マシンフォルダ/
設定ファイル拡張子 .xml .vbox

主な変更内容とその理由は次のとおり。

  • これまでは全体の設定ファイルがひとつあり、仮想マシンごとに個別に設定ファイルがあり、そして仮想ディスクはそれとは別のディスクフォルダにまとめられていた。4.0からはそれぞれの仮想マシンごとにひとつのフォルダを用意し、そこにその仮想マシンに関連する設定ファイル、仮想ディスク、スナップショット、状態保存データなどすべての関連物を保持するように変更された。こうすることでexport/importを実施しなくても、対象となる仮想マシンのフォルダをコピーするだけで仮想マシンをまるごと移動したり共有したりすることが可能になった。サスペンド中の仮想マシンや複数世代スナップショットを保持している仮想マシンもそのままコピーして利用可能。
  • 設定ファイルの拡張子を.xmlから.vboxへ変更。.vboxに対してVirtualBoxを関連付けることで、このファイルをダブルクリックすることで仮想マシンが起動してくるようになった。仮想マシンに直接ショートカットやエイリアスを設定することができ、ダイレクトに仮想マシンを起動できる。

4.0よりも前の仮想マシンデータを4.0の形式に変更するには、1回だけexport/import作業を実施すればいい。VirtualBox 4 configuration filesには、この作業を自動的に実施するための次のコマンドが紹介されている。

VBoxManage list vms | sed 's/.*{ *//;s/}//' | while read UUID; do VBoxManage export $UUID -o /tmp/$UUID.ova; VBoxManage import /tmp/$UUID.ova; done

保持している仮想マシンの数や仮想ディスクのサイズによって大きく異なるが、上記スクリプトを実行して形式を変更するのには長い時間が必要になる。日中ではなく夜間など長い時間が確保できる間に変換処理を実施した方がいいだろうというアドバイスも紹介されている。