200910.27
VirtualBox: how to "clone" your VMs
Notice the "clone" in quotes. Why? You can't actually clone a VM technically. We can work around that, though. Keep in mind, this guide is for VirtualBox <= 3.0.8 (later versions may have a clone button or something).
One thing you CAN do is export to OVF and re-import, but I've found that OVF loses many settings (like video ram, network settings, whether you use SATA or not, etc). I prefer not to even bother with this method.
The next thing you can do is just clone your VM's hard disk(s):
- Go into the ~/.VirtualBox/HardDisks/ folder. Copy and paste (windows) or cp (linux/unix) from db_master1.vdi to db_master2.vdi. If you try to import this into the Virtual Media Manager, it will piss and moan about the UUID being duplicate or some shit.
- VBoxManage internalcommands setvdiuuid db_master2.vdi - this is the magic command that allows you to import that new HD.
- Create a new VM, and set db_master2.vdi as the primary drive.
- Configure your new VM to have the same settings. (this is a pain, but there really aren't that many settings).
There are a few things you'll have to dick with once you have your VM cloned. If you're into networking/cluster/HA crap like me, you'll probably have a static IP. This obviously needs to be changed. It's different for every distro, but it's in /etc/rc.d/rc.inet1.conf for Slackware, and /etc/networking/interfaces for Debian (any other distro can go to hell).
Your old network interfaces, eth[0...n] will now be eth[(n+1)...(n*2)]: eg, if you had eth0 and eth1 before, they will now be eth2 and eth3. To reset this, (in Slackware):
- Open/etc/udev/rules.d/75-network-devices.rules in your favorite editor
- Remove all the entries.
- Restart. (note - someone please correct me if you don't need a restart... perhaps /sbin/udevtrigger will fix this?)
- You will now have eth0 and eth1 again. Hoo-fucking-ray.
The process is the same for Debian, but the 75-network-devices.rules will most likely have a different name.
Good luck.