VirtualBox на FreeBSD без X11

На данный момент, порт 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

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

habrahabr.ru

Запись опубликована в рубрике *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Один комментарий на «VirtualBox на FreeBSD без X11»

  1. z говорит:

    On Tue, Jan 15, 2013 at 5:06 PM, Edho Arief wrote:
    >
    > This also costed me few hours googling and few recompiles to find this:
    >
    > https://forums.virtualbox.org/viewtopic.php?f=31&t=50085
    >
    > and this http://lists.freebsd.org/pipermail/freebsd-ports/2012-September/078427.html

    Thanks for these excelent pointers. Just what I needed.

    A small recap for future googlers

    VNC implementation is changed from 4.1 to 4.2. No more —vnc option in 4.2.

    to enable VNC in 4.2, stil check the VNC option in «make config»
    before building the port, and then do (for a vm called test1):

    VBoxManage setproperty vrdeextpack VNC

    VBoxManage modifyvm test1 —vrdeproperty VNCPassword=somepass
    VBoxManage modifyvm test1 —vrdeauthlibrary null
    VBoxManage modifyvm test1 —vrdeport 5901
    VBoxHeadless —startvm test1

    if moving from a 4.1 installation and using the rc.conf way of
    starting vms, remove the «—vnc —vncport 5901 —vncpass=somepass»
    from vboxheadless_test1_flags

    getting rid of the —vncpass option was nice. Everyone with access to
    ps could see the password. Now the cleartext password is stored in the
    test1.vbox control file (with -rw——- rights)

    some google bait: FreeBSD Virtualbox 4.2 VNC howto enable vnc console headless

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91