#!/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
Comments