Для создания VM через консоль необходимо набрать следующие команды:
# Создаем виртуальную машину
VBoxManage createvm -name "Linux VM" -register
# Модифицируем основные параметры
# -memory - память ОЗУ
# -acpi on -boot1 dvd - первый загрузчик DVD
# -nic1 nat - сеть, тип nat
# так же можно использовать тип bridged
# VBoxManage modifyvm "Linux VM" --nic1 bridged --bridgeadapter1 eth0
VBoxManage modifyvm "Linux VM" -memory "512MB" -acpi on -boot1 dvd -nic1 nat
# Создания жеского диска
VBoxManage createvdi -filename "Linux_VM.vdi" -size 10000 -register
VBoxManage modifyvm "Linux VM" -hda "Linux_VM.vdi"
# Подключение установочного образа
VBoxManage registerimage dvd /home/user/centos.iso
VBoxManage modifyvm "Linux VM" -dvd /home/user/centos.iso
# Удаленный рабочий стол виртуальной машины
VBoxManage modifyvm "Linux VM" -vrdp on
# порт на котором будет доступна виртуальная машина.
VBoxManage modifyvm "Linux VM" -vrdpport 3307
Для запуска гостевой ОС VirtualBox через консоль, необходима утилита VboxHeadless. Она входит в пакет VirtualBox.
Команда для запуска выглядит следующим образом:
VboxHeadless -startvm 'name of quest os' &
Для остановки используется следующая команда:
VBoxManage -nologo controlvm 'name of quest os' acpipowerbutton
Для автоматического запуска гостевой системы необходим создать скрипт в init.d
Для CentOS скрипт выглядит следующим образом:
#!/bin/sh
# chkconfig: 345 20 80
# description: VBox Machine server
# Source function library.
. /etc/rc.d/init.d/functions
run_by_init() {
([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
}
export PATH="${PATH:+$PATH:}/bin:/usr/bin:/usr/sbin:/sbin"
VM_USER="vbox"
SU="su $VM_USER -c"
VBOXMANAGE="VBoxManage -nologo"
VBOXHeadless="/usr/bin/VBoxHeadless"
start () {
echo "Starting VBox Machine"
$SU "$VBOXHeadless -startvm "Linux VM" &"
}
stop () {
$SU "$VBOXMANAGE list runningvms" | while read VM; do
echo "Shutting down VM: $VM ..."
$SU "$VBOXMANAGE controlvm "$VM" acpipowerbutton"
done
}
restart() {
stop
start
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
echo "The following virtual machines are currently running:"
$SU "$VBOXMANAGE list runningvms" | while read VM; do
echo -n "$VM ("
echo -n `$SU "VBoxManage showvminfo $VM|grep Name:|sed -e 's/^Name:\s*//g'"`
echo ")"
done
;;
*)
echo $"Usage: $prog {start|stop|restart|status}"
exit 3
esac
exit 0
затем делаем
chmod +x VM
chkconfig --add VM
ну и соответственно запускаем гостевую систему:
/etc/init.d/VM start