Установка Oracle VM VirtualBox-4 на FreeBSD.

Наконец-то, я дождался стабильной версии этого замечательного продукта под любимую ОС 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 на месте не стоит, что не может не радовать :)

noted.org.ua

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

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

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

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