Virtual Box Clone Script
I was in need for a way to clone virtual box vms so I wrote a quick bash script to clone them. After writing it, I realized that I could just export a VM, and then import it. There are limitations such as no snapshot support and probably a bunch I’ve never thought about. Either way, hit the jump to see the outcome.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #!/bin/bash #usage function usage () { echo -e "Usage: $0 Source Name [Mac address]" echo -e "Source (Include .vdi)" echo -e "Name (Exclude .vdi)" echo -e "Mac not implemented yet" } if [ -z "$1" ]; then usage && exit 1 fi; # Name to clone from INPUTSOURCE="$1" # Name for the VM NAME="$2" MAC="$3" SATANAME="SATA Controller" SATATYPE="IntelAHCI" echo $INPUTSOURCE, $NAME, $MAC VBOXPATH=~/.VirtualBox/HardDisks # TODO: Check for ending in .vdi (for source) # Setup Source and Dest Files SOURCE=$VBOXPATH/$INPUTSOURCE DEST=$VBOXPATH/$NAME.vdi # Clone the HD VBoxManage clonehd $SOURCE $DEST # Create the VM VBoxManage createvm --name "$NAME" --register # Create the controller VBoxManage storagectl "$NAME" --add sata --name "$SATANAME" --controller "$SATATYPE" # Attach the cloned disk VBoxManage storageattach "$NAME" --storagectl "$SATANAME" --port 0 --device 0 --type hdd --medium "$DEST" |
Conclusion
It can be downloaded here. Use as you wish, if you extend it or use it for something really cool let me know!














