One day, for various reasons, I needed to boot one VM image so that I could use it to manipulate a second image. Here's how I would have done it with qemu
:
qemu -hda /dev/zvol/tank/vm1 -hdb /dev/zvol/tank/vm2
Here's how to do the same thing with VirtualBox, which is what I was using instead:
VBoxManage createvm --name tempvm VBoxManage registervm Machines/tempvm/tempvm.xml VBoxManage internalcommands createrawvmdk -filename \ /home/user/.VirtualBox/Machines/tempvm/1.vmdk -rawdisk \ /dev/zvol/tank/vm1 -register VBoxManage internalcommands createrawvmdk -filename \ /home/user/.VirtualBox/Machines/tempvm/2.vmdk -rawdisk \ /dev/zvol/tank/vm2 -register VBoxManage storagectl tempvm --name controller1 --add ide VBoxManage storageattach tempvm --storagectl controller1 \ --port 0 --device 0 --type hdd --medium \ /home/user/.VirtualBox/Machines/tempvm/1.vmdk VBoxManage storageattach tempvm --storagectl controller1 \ --port 0 --device 1 --type hdd --medium \ /home/user/.VirtualBox/Machines/tempvm/2.vmdk VBoxSDL --startvm tempvm
Guess which one of these commandline interfaces I prefer.
(I wrote this up in April 2010)