#!/usr/bin/env bash # Creates a basic VBox Virtual Machine : ${BRAND:=RedHat_64} : ${DISK:=$((16 * 1024))} : ${MAC:=001122AABBCC} : ${NIC:=bridged} : ${RAM:=$((1 * 1024))} : ${VBOX:="/drives/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe"} : ${VM:=vbox01} : ${VRAM:=32} eval "${VBOX}" createvm -name "${VM}" -ostype "${BRAND}" -register eval "${VBOX}" modifyvm "${VM}" --memory "${RAM}" \ --boot1 disk --boot2 dvd --boot3 net --rtcuseutc on \ --vram "${VRAM}" --audio none --usb off if=$(eval "${VBOX}" list bridgedifs | sed -n -e 's/\r//' -e 's/^Name:[ \t][ \t]*\(.*\)/\1/p' | head -1) eval "${VBOX}" 'modifyvm "${VM}" --nic1 "${NIC}" \ --macaddress1 "${MAC}" --bridgeadapter1 "${if}"' eval "${VBOX}" storagectl "${VM}" --name "IDE\ Controller" --add ide eval "${VBOX}" storageattach "${VM}" --storagectl "IDE\ Controller" --type dvddrive \ --port 1 --device 0 --type dvddrive --medium emptydrive eval "${VBOX}" storagectl "${VM}" --name "SATA\ Controller" --add sata --controller IntelAHCI cfg=$(eval "${VBOX}" showvminfo "${VM}" | sed -n -e 's/\r//' -e 's/^Config file:[ \t][ \t]*\(.*\)$/\1/p') i=0; for disk in "${cfg%\\*}\\${VM}" do eval "${VBOX}" 'createhd --filename "${disk}.vdi" --size "${DISK}"' eval "${VBOX}" 'storageattach "${VM}" --storagectl "SATA Controller" --type hdd \ --port $((i++)) --device 0 --medium "${disk}.vdi"' done