Запуск виртуальной машины в VirtualBox без GUI

Источник

Запуск виртуальной машины в VirtualBox без GUI

VirtualBoxИногда возникает необходимость запустить виртуальную машину на хосте без иксов. Я расскажу о том как это сделать, имея доступ к хостовой системе только по ssh + rdp (Remote Desktop Protocol). процесс я буду описывать для OC Ubuntu 9.10 в качестве хоста.

Начнем с установки VirtualBox.

Предварительно нужно установить пакет dkms (Dynamic Kernel Module Support Framework):

sudo apt-get install dkms

На сайте VirtualBox-а предлагается 2 варианта: прописать источник пакетов (deb download.virtualbox.org/virtualbox/debian karmic non-free) в /etc/apt/sources.list либо скачать и установить deb-пакет. Когда я прописал источник и сделал sudo apt-get install virtualbox-3.1 у меня потянулась куча пакетов из зависимостей (в том числе и каких-то для GUI интерфейса). Поэтому лучше скачать deb-пакет. Качаем, устанавливаем:

sudo dpkg -i virtualbox-3.1_3.1.0-55467_Ubuntu_karmic_i386.deb

возможно тут также потребуются зависимости (какие-то библиотеки для парсинга xml, в котором хранятся конфиги, но их значительно меньше чем в первом случае). Если установка не завершилась из-за зависимостей, можно просто сделать

sudo apt-get -f install

при этом установятся зависимости и VirtualBox

ок. VirtualBox поставили. Начнем создавать guest-машины.

создаем саму машину:

VBoxManage createvm --name ubuntu --ostype Ubuntu --register

(name — имя машины, ostype — тип системы. полный список всех типов можно узнать командой VBoxManage list ostypes)

настраиваем

VBoxManage modifyvm ubuntu --memory 512 --floppy disabled --audio none --nic1 bridged --bridgeadapter1 eth0 --vram 4 --accelerate3d off --boot1 disk --acpi on --cableconnected1 on --usb off --vrdp on --vrdpport 3390

тут с большего все понятно. в качестве типа сети можно указать также NAT (–nic1 nat). также включаем rdp

создаем hdd диск для виртуальной машины:

VBoxManage createhd --filename /home/user/vbox/ubuntu.vdi --size 20000 --register

добавляем контроллер IDE в нашу машину

VBoxManage storagectl ubuntu --name "IDE Controller" --add ide

цепляем на IDE0 созданный ранее hdd

VBoxManage storageattach ubuntu --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/user/vbox/ubuntu.vdi

на IDE1 цепляем установочный образ

VBoxManage storageattach ubuntu --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/user/vbox/iso/ubuntu-9.10-alternate-i386.iso

говорим машине грузиться с диска

VBoxManage modifyvm ubuntu --boot1 dvd

запускаем машину

nohup VBoxHeadless --startvm ubuntu &

для того чтобы поставить базовую систему воспользуемся rdp-клиентом (у меня KDE, в стандартную поставку входит KRDC). коннектимся на хостовую машину на порт, который указали в настройках (–vrdpport 3390), ставим систему, делаем sudo apt-get install openssh-server. теперь на виртуальную машину можно попасть по ssh

останавливаем виртуальную машину

VBoxManage controlvm ubuntu acpipowerbutton

через acpi или более жестко

VBoxManage controlvm ubuntu poweroff

говорим грузится с hdd

VBoxManage modifyvm ubuntu --boot1 disk

можно также отцепить установочный диск

VBoxManage storageattach ubuntu --storagectl "IDE Controller" --port 1 --device 0 --medium none

и снова запускаем

nohup VBoxHeadless --startvm ubuntu &

еще полезные команды:

VBoxManage list runningvms

просмотр всех запущенных машин

VBoxManage showvminfo ubuntu

просмотр информации о виртуальной машине

таким образом на одной машине с минимально установленной системой можно поднимать несколько виртуальных для различных целей и экспериментов

VirtualBox на FreeBSD без X11

VirtualBox на FreeBSD без X11

VirtualBox на FreeBSD без X11 imageНа данный момент, порт VirtualBox на FreeBSD уже достаточно стабилен и вполне пригоден для постоянного использования. Но при установке на gui-less машинах возникает несколько проблем. Дальше речь пойдет об установке и использовании VirtualBox на FreeBSD машине без X11.

Установка VirtualBox

Текущая актуальная версия порта VirtualBox — 3.1.2. Начиная, с 3.1.0 версии порт разбит на два: virtualbox-ose-kmod (модули ядра) и virtualbox-ose (сам virtualbox).

Под FreeBSD портирована только VirtualBox OSE (Open Source Edition). В ней, по сравнению с полным VirtualBox, нет поддержки USB устройств, а главное — вырезан vRDP сервер, который позволяет подключаться к виртуальной машине любым rdp клиентом. Без него и без x11, для установки ОС на виртуальную машину потребуется ставить ее на отдельном компьютере и потом переносить образ диска на FreeBSD машину.

Эту проблему решил один из разработчиков FreeNAS, прикрутив к VirtualBox vnc-сервер. Итак, далее собственно установка VirtualBox.

cd /usr/ports/net/libvncserver && make
make install
cd /usr/ports/emulators/virtualbox-ose-kmod && make
make install

После этого качаем патч для VirtualBox:

cd ~/patches
fetch www.mail-archive.com/freebsd-stable@freebsd.org/msg108586/vboxvnc-20100211.tar.gz
cd /usr/ports/emulators/virtualbox-ose
tar xvf ~/patches/vboxvnc-20100211.tar.gz

Делаем

make config

снимаем все галочки, кроме Guest Additions и DBUS, и ставим VirtualBox:

make
make install

Добавляем загрузку модуля VirtualBox и запуск скрипта для возможности работы адаптера виртульной машины в bridge-режиме (без нее — только NAT):

echo 'vboxdrv_load="YES"' >> /boot/loader.conf
echo 'vboxnet_enable="YES"' >> /etc/rc.conf

Чтобы лишний раз не перезагружаться, вручную грузим модуль и скрипт:

kldload vboxdrv
/etc/rc.d/vboxnet start

Создание и настройка виртуальной машины

Создание виртуальной машины из консоли описано в этой статье, поэтому приведу только последовательность команд: # Создаем виртуалку (посмотреть все возможные ostype: VBoxManage list ostype)

VBoxManage createvm --name MicroXP --ostype WindowsXP --register

# Задаем парамерты виртуалки (bridgeadapter1 указывает адаптер хоста, к которому привязываем виртуалку)

VBoxManage modifyvm MicroXP --memory 256 --floppy disabled --audio none --nic1 bridged --bridgeadapter1 eth0 --vram 4 --accelerate3d off --boot1 disk --acpi on --cableconnected1 on

# Создаем жесткий диск, размер указывается в мегабайтах

VBoxManage createhd --filename /usr/local/vbox/iso/MicroXP.vdi --size 1000 --register

FIXME у меня на ключ

--register

ругалось

Syntax error: unknown option: --register

FIXME

# Создаем контроллер на виртуалке

VBoxManage storagectl MicroXP --name "IDE Controller" --add ide

# Цепляем диск к контроллеру

VBoxManage storageattach MicroXP --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /usr/local/vbox/MicroXP.vdi

# Цепляем установочный образ к контроллеру

VBoxManage storageattach MicroXP --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /usr/local/vbox/MicroXP-v0.82.iso

# Устанавливаем загрузку с установочного образа

VBoxManage modifyvm MicroXP --boot1 dvd

Далее, запускаем машину и указываем ей параметры vnc:

VBoxHeadless --startvm MicroXP -v on -a 192.168.1.1 -p 5900 -S password

Поключаемся vnc-клиентом (например, UltraVNC под виндой) и ставим ОС. Затем нужно поставить guest additions в виртуалку, без них vnc сервер иногда глючит:

VBoxManage storageattach MicroXP --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /usr/local/lib/virtualbox/additions/VBoxGuestAdditions_3.1.2.iso

После этого, виртуальная машина готова к использованию.