Наконец-то, я дождался стабильной версии этого замечательного продукта под любимую ОС FreeBSD.

Правда, для того что бы установить её, мне пришлось обновиться до последней версии. На данный момент — FreeBSD 8.2-RELEASE-p1.

Далее, я по старинке с помощью cvsup — обновил свои порты и проинсталил VirtualBox 4. Затем поставил, для удобства phpvirtualbox и наступило мне счастье.

Далее, я вставил образ с дополнениями и проинсталил его на гостевую винду — всё заработало, как на локальной. Очень шустро — без глюков, мышь как на хостовом ПК. В общем реально круто — оракловцы постарались. И с qemu несравнимо.

Ну, как бы предисловие заканчиваю, теперь перехожу к самому процессу установки и проблемам с которыми я столкнулся.

После успешной установки, я долго пытался запустить VB, но меня преследовало вот такого рода сообщение:

VirtualBox: SUPR3HardenedMain: effective uid is not root (euid=1000 egid=1000 uid=1000 gid=1000)

А что бы его пофиксить, мне всего ли пришлось поменять хозяина на директорию библиотек virtualboxа:

# ls -l /usr/local/lib/virtualbox/
total 167096
-r--r--r--  1 root  vboxusers     86477 25 май 12:59 DBGCPlugInDiggers.so
-r--r--r--  1 root  vboxusers     16159 25 май 12:54 VBoxAuth.so
-r--r--r--  1 root  vboxusers    209857 25 май 13:00 VBoxAuthSimple.so
-r-s--x--x  1 root  vboxusers     23604 25 май 13:02 VBoxBFE
...................
..............

ЗЫ.
С Linux и FreeBSD на VirtualBox есть некоторые бока в графическом режиме до тех пор, пока не проинсталить дополнения в образе, который скачивается при установке VBoxa и исправления конфига xorg.conf добавлением в него драйверов с этого же диска.

Установка.

Если еще не установлен, то установим vnc — он нам пригодится. А точнее vncviewer с его комплекта:

# cd /usr/ports/net/libvncserver 
# make && make install

Теперь ставим виртуалбокс:

# cd /usr/ports/emulators/virtualbox-ose
# make config

Выбираем всё кроме (NLS, DBUS, DEBUG), иначе корится в процессе компиляции.

# make
# cd /usr/ports/emulators/virtualbox-ose-additions/
# make && make install

При установке дополнений, они за собой потянут 3 пакета виртуалбокса:

virtualbox-ose-4.0.8
virtualbox-ose-additions-4.0.8
virtualbox-ose-kmod-4.0.8

Если это не так, то доинсталиваем недостающее из трёх пакетов:

# cd /usr/ports/emulators/virtualbox-ose-additions/
# cd /usr/ports/emulators/virtualbox-ose-kmod/
# cd /usr/ports/emulators/virtualbox-ose/

После успешной сборки, выполняем, то что нас просит VB при установке:

# kldload vboxdrv
# echo 'vboxdrv_load="YES"' >> /boot/loader.conf
# echo 'vboxnet_enable="YES"' >> /etc/rc.conf
# echo 'vboxguest_enable="YES"' >> /etc/rc.conf
# echo 'vboxservice_enable="YES"' >> /etc/rc.conf
# echo 'vboxservice_flags="--disable-timesync"' >> /etc/rc.conf
# echo 'vboxheadless_enable="YES"' >> /etc/rc.conf
# echo 'vboxwebsrv_enable="YES"' >> /etc/rc.conf

В теории, это всё. Можно запустить сервис вручную, или перезагрузить ПК.
Но я на этом не остановился, как я уже писал выше, я поставил себе phpvirtualbox для удобства управления гостевыми ПК — это удобно.

# cd /usr/local/www/phpvirtualbox/
# make install

После установки phpvirtualbox, проверьте что бы было установленно SOAP PHP расширение, иначе он работать не будет.
Веб-сервер я сконфигурил, как отдельный виртуальный хост (мне так было удобнее).

Теперь создаём пользователя от которого и будем всё запускать, у меня это «pvbuser»

# adduser pvbuser
# pw groupadd vboxusers
# pw groupmod vboxusers -m pvbuser
# mkdir /home/pvbuser
# chown -R pvbuser:vboxusers /home/pvbuser

Правим конфиг для phpvirtualbox, я в нём отключил авторизацию, так как авторизируюсь средствами апача.

# mcedit /usr/local/www/phpvirtualbox/config.php
//var $noAuth = true; - нужно раcкомментировать, если авторизация не нужна.

Создаём скрипт для автозапуска сервиса веб-управления:

# mcedit /usr/local/etc/rc.d/phpvirtualbox.sh
и вносим:
#!/bin/sh
echo -n 'phpVirtualBox daemon
'
case "$1" in
start)
    echo 'VBox started..'
    su - pvbuser -c "VBoxManage setproperty websrvauthlibrary null" &&
#    su - pvbuser -c "/usr/local/bin/VBoxHeadless --startvm WinXP --vnc --vncport 5903 --vncpass qwest"
    su - pvbuser -c "/usr/bin/nohup vboxwebsrv -t 0 -F /dev/null"
;;
stop)
    killall vboxwebsrv
    killall VBoxSVC
    killall VBoxXPCOMIPCD
    echo 'VBox stoped..'
;;
*)
    echo "Usage: `basename $0` {start|stop}" >&2
    exit 64
;;
esac
exit 0

Ставим права запуска на скрипт и запускаем его:

# chmod +x /usr/local/etc/rc.d/phpvirtualbox.sh
# /usr/local/etc/rc.d/phpvirtualbox.sh

Теперь зайдя в ваш виртуальный хост, можно увидеть интерфейс управления как в самом gui-шном VirtualBox.

Но это еще не всё, можно машину сконфигурить и с его помощью, а можно вручную, что меня намного больше попёрло. Тем более, первый раз запустить её Вам однозначно прийдётся в ручную запускать с vnc — для установки гостевой ОС. А дальше как угодно, через тот-же phpvirtualbox.

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

# su -l pvbuser
$ VBoxManage createvm --name WinXP --ostype WindowsXP --register --basefolder /home/pvbuser 
$ VBoxManage modifyvm "WinXP" --memory 512 --acpi on --boot1 dvd --nic1 nat 
$ VBoxManage createhd --filename "WinXP.vdi" --size 8000
$ VBoxManage storagectl "WinXP" --name "IDE Controller" --add ide --controller PIIX4 
$ VBoxManage storageattach "WinXP" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "WinXP.vdi" 
$ VBoxManage storageattach "WinXP" --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /mnt/WinEnterpriseXP-sp3.iso

После конфигурации — запускаем в фоне:

/usr/bin/nohup /usr/local/bin/VBoxHeadless --startvm WinXP --vnc --vncport 5903 --vncpass qwest &

Подключаемся с помощью vncviewer:

$ vncviewer 127.0.0.1:5903
Password:

Вот и всё, мы подключились к нашей гостевой машине — далее инсталлируем на неё всё необходимое, включаем RDP. Перезагружаемся и Гостевой ПК готов к работе. Можно выключить стандартными средствами гостевого ПК и включить через phpvirtualbox, что бы сразу и проверить как всё работает.

PS. Возможно команды для конфигурения и запуска гостевой машины у Вас немного будут отличатся от моих — так как разработка VirtualBox на месте не стоит, что не может не радовать 🙂

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=2359


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

You must be logged in to post a comment.