VirtualBoxで良く使う機能をメモ。不変(immutable)ディスクについてとか。

VirtualBox 3.0.10 r54097 (ホストはMac)で確認しました。

VBoxManage clonehd

VBoxManage clonehd          <uuid>|<filename> <outputfile>
                            [--format VDI|VMDK|VHD|RAW|<other>]
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--type normal|writethrough|immutable]
                            [--remember] [--existing]
VDI、サイズ可変のディスクとしてcloneする。
VBoxManage clonehd hd_cloned_from.vdi hd_cloned_to.vdi

--formatを省略するとVDI、--variantを省略するとStandardがデフォルトで選択されます。
この場合、clone元のファイルが例えサイズ固定ディスクだったとしても、サイズ可変ディスクとしてcloneされます。

VDI、サイズ固定のディスクとしてcloneする。
VBoxManage clonehd hd_cloned_from.vdi hd_cloned_to.vdi --variant Fixed
VMDKのディスクとしてcloneする。
VBoxManage clonehd hd_cloned_from.vdi hd_cloned_to.vmdk --format VMDK

最近のVirtualBoxは、VMDKのディスクファイルもサポート*1しています。
VirtualBoxはディスクのサイズを変更する手段が、今のところありません。
VMwareはVMDKなら変更できるので、VirtualBoxでもVMDKを使いVMwareを併用する事で、ディスクのサイズを拡張出来ます。

VBoxManage openmedium

VBoxManage openmedium       disk|dvd|floppy <filename>
                            [--type normal|immutable|writethrough] (disk only)
通常のディスクファイルを、不変ディスクとして、仮想メディアマネージャーに登録する。
VBoxManage openmedium disk example.vdi --type immutable

このディスクへの書き込みは、シャットダウン後にはなかった事になります。
実際には、起動と同時にスナップショットファイルが作成され、起動中の書き込みは全てスナップショットファイルに書き込まれます。
このスナップショットファイルは、次の起動時に新しいスナップショットが作成されるタイミングで、削除されます。


普段は不変として利用し、何か変更を加える必要が出てきても対応が可能な使い方が出来ます。
仮想メディアマネージャーからいったん除去し、通常の方法で登録しなおせば変更可能になるので、必要な変更を加えてから、仮想メディアマネージャーから除去、再度上記のコマンドで登録します。
仮想メディアマネージャーから除去するには、そのディスクを使っている仮想マシンの設定からも、いったんそのディスクを外す必要があり、ちょっと面倒ですが不変ディスクのメリットも大きいです。


なお、VBoxManage clonehd にも --type immutable がありますが、これでディスクファイルをcloneしても、不変ディスクにはなりませんでした。
ただ、 --remember を付けてcloneすると、完了後直ぐに仮想メディアマネージャーにも登録されます。
その場合は --type immutable が有効でした。

VBoxManage clonehd hd_cloned_from.vdi hd_cloned_to.vdi --type immutable --remember

つまりこういう使い方です。
不変ディスクかどうかは、あくまで仮想メディアマネージャーへの登録時に指定するもののようなので、常に不変ディスクというのが作れるわけではないようです。

*1:たまにchangelogバグフィックスが載りますが、基本的にフルサポートとの事