VirtualBox4.1のリンククローンをやってみた
普段は仕事でXenやXenServerやESXiやHyper-Vを使いますが、ちょっと試してみようとか思うときは VirtualBox が すごく便利です。そんなVirtualBoxも4.1になり、"リンククローン"も出来るようになり嬉しいことばかりです。
早速試してみたのですがリンククローンが見当たらない....。VirtualBoxのChangeLogをみると
Support for cloning of VMs (bug #5853, see the manual for more information): full clones can be created through the GUI and VBoxManage, linked clones only through VBoxManage
http://www.virtualbox.org/wiki/Changelog
「linked clones only through VBoxManage」コマンドラインの VBoxManage のみサポートのようです。ということで、コマンドラインでリンククローンをやってみました。
今回はWindowのVirtualBox4.1で試しています。最初はオプションを見ます。
http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevm
- snapshot
| : Select a specific snapshot where the clone operation should refer to. Default is referring to the current state. - mode machine|all: Selects the cloning mode of the operation. If machine is selected (the default), the current state of the VM without any snapshots is cloned. If all is the selected mode all snapshots and the current state are cloned.
- options link|keepallmacs|keepnatmacs|keepdisknames: Allows additional fine tuning of the clone operation. The first option defines that a linked clone should be created, which is only possible for a machine clone from a snapshot. The next two options allow to define how the MAC addresses of every virtual network card should be handled. They can either be reinitialized (the default), left unchanged (keepallmacs) or left unchanged when the network type is NAT (keepnatmacs). If you add keepdisknames all new disk images are called like the original once, otherwise they are renamed.
- name
: Select a new name for the new virtual machine. Default is "Original Name Clone". - basefolder
: Select the folder where the new virtual machine configuration should be saved in. - uuid
: Select the UUID the new VM should have. This id has to be unique in the VirtualBox instance this clone should be registered. Default is creating a new UUID. - register: Automatically register the new clone in this VirtualBox installation. If you manually want register the new VM later, see the section called “VBoxManage registervm / unregistervm” for instructions how to do so.
必須なのはこのぐらいかな。
- --snapshot
| はスナップショットのuuidか名前 - --options link がリンククローンオプション。
- --name
は 新しいクローン名
VBoxManageクローン元VMの情報をみます。
>VBoxManage showvminfo ubuntu001 Name: ubuntu001 Guest OS: Ubuntu UUID: a0f412ba-2843-40e0-a753-a69395a2fa2b Config file: G:\VMImage\ubuntu001\ubuntu001.vbox Snapshot folder: G:\VMImage\ubuntu001\Snapshots Log folder: G:\VMImage\ubuntu001\Logs Hardware UUID: a0f412ba-2843-40e0-a753-a69395a2fa2b
シンタックスが分からないので適当に打ってみる
>VBoxManage clonevm ubuntu001 --options link --name ubuntu002 VBoxManage.exe: error: Linked clone can only be created from a snapshot VBoxManage.exe: error: Details: code E_INVALIDARG (0x80070057), component Machine, interface IMachine, callee IUnknown Context: "CloneTo(trgMachine, mode, ComSafeArrayAsInParam(options), progress.asOutParam())" at line 444 of file VBoxManageMisc.cpp
「Linked clone can only be created from a snapshot」と怒られました。リンククローンをするにはスナップショットからクローンするっぽいです。素直にスナップショットを取得して、スナップショット名もしくはuuidを指定するといいみたい。ということはシンタックスはこんな感じですか。
>VBoxManage clonevm <VMの{uuid|name}> --snapshot <スナップショットの{uuid|name} --options link --name <新しい名前>
実行してみたら見事に成功!
>VBoxManage clonevm ubuntu001 --snapshot ubuntu-snapshot1 --options link --name ubuntu002 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Machine has been successfully cloned as "ubuntu002"
本当に一瞬でクローンが完了。でもレジストしないとVMは使えないので VBoxManage registervm してください。
>VBoxManage registervm G:\VMImage\ubuntu003\ubuntu002.vbox
こういうのはかなり楽しいですね。