Pull to refresh

VirtualBox на FreeBSD без X11

Reading time 3 min
Views 34K
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.

Первым делом ставим библиотеки 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

# Создаем контроллер на виртуалке
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

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


Полезные ссылки


Tags:
Hubs:
+6
Comments 20
Comments Comments 20

Articles