#!/bin/sh
#Скрипт для создания виртуальных машин VirtualBox.
#ВНИМАНИЕ: Скрипт не использует инкакой "защиты от дурака", поэтому
#проверяйте ввод: права на папки, куда помещаются файлы,
#должны у вас быть, названия устройств и пути необходимо писать правильно
#Все спасибы и ругачки можно оставить здесь: http://www.daemony.ru/?p=967
#
ALLRIGHT=n
while [ $ALLRIGHT != "y" ]
do
echo -n "Введите название виртуальной машины: "
read NAMEVM
echo -n "Введите объем оперативной памяти виртуальной машины в мегабайтах: "
read RAMSZ
echo -n "Введите имя сетевого интерфейса хоста для создания сетевого моста: "
read IFNAME
echo "Выберите тип сетевой карты виртуальной машины:"
echo "1. PCNet-PCI-II 10 mbit"
echo "2. PCNet-Fast III 100 mbit"
echo "3. Intel pro/1000 MT Desktop"
echo "4. Intel pro/1000 T Server"
echo "5. Intel pro/1000 MT Server"
read VMIFTYPE
case "$VMIFTYPE" in
1)
VMIFTYPE="Am79C970A";;
2)
VMIFTYPE="Am79C973";;
3)
VMIFTYPE="82540EM";;
4)
VMIFTYPE="82543GC";;
[5p])
VMIFTYPE="82545EM";;
*)
echo "неверный ввод";;
esac
echo "Введите тип интерфейса дисков:"
echo "1. ide"
echo "2. sata"
echo "3. scsi"
echo "4. sas"
echo "5. floppy"
read DISKTYPE
case "$DISKTYPE" in
1)
DISKTYPE="ide"
CONTTYPE="PIIX4";;
2)
DISKTYPE="sata"
CONTTYPE="IntelAHCI";;
3)
DISKTYPE="scsi"
CONTTYPE="BusLogic";;
4)
DISKTYPE="sas"
CONTTYPE="LSILogicSAS";;
[5p])
DISKTYPE="floppy"
CONTTYPE="I82078";;
*)
echo "неверный ввод";;
esac
echo -n "Введите имя образа виртуальной машины включая путь и расширение .vdi: "
read PATHVM
echo -n "Введите объем жесткого диска виртуальной машины в мегабайтах: "
read DISKSZ
echo -n "Подключить загрузочный обзаз? (y/n)"
read BOOTDISK
case "$BOOTDISK" in
y)
echo -n "Введите полное имя файла загрузочного образа, включая путь и расширение"
read BOOTDISK;;
[Nn])
BDMESSAGE="Загрузочный диск не подключен";;
*)
echo "неверный ввод";;
esac
echo "Проверьте правильность ввода данных:"
echo " "
echo "имя виртуальной машины: $NAMEVM"
echo "объем оперативной памяти: $RAMSZ"
echo "имя сетевого интерфейса хоста: $IFNAME"
echo "тип интерфейса дисков: $DISKTYPE"
echo "тип контроллера дисков: $CONTTYPE"
echo "расположение и имя файла виртуальной машины: $PATHVM"
echo "размер жесткого диска виртуальной машины: $DISKSZ"
echo "тип сетевого адаптера виртуальной машины: $VMIFTYPE"
echo "Образ загрузочного диска: $BDMESSAGE"
echo " "
echo -n "Верны ли введенные данные (y/n)?"
read ALLRIGHT
done
VBoxManage createvm -name "$NAMEVM" -register
VBoxManage modifyvm "$NAMEVM" --memory $RAMSZ --acpi on --nic1 bridged --bridgeadapter1 $IFNAME --nictype1 $VMIFTYPE
VBoxManage storagectl $NAMEVM --name "Disk Controller" --add $DISKTYPE --controller $CONTTYPE
VBoxManage createhd --filename $PATHVM --size $DISKSZ --format VDI
VBoxManage modifyhd $PATHVM compact
VBoxManage storageattach $NAMEVM --storagectl "Disk Controller" --port 0 --device 0 --type hdd --medium $PATHVM
case "$BOOTDISK" in
y)
echo " ";;
[Nn])
echo " ";;
*)
VBoxManage storageattach $NAMEVM --storagectl "Disk Controller" --port 1 --device 0 --type dvddrive --medium $BOOTDISK;;
esac