Install VirtalBox to FreeBSD and FreeNAS

Во FreeNAS есть плагин с преконфигурированным Jail-ом, через который дожен запускаться VirtualBox.

Однако, не работало. В jail войти не получалось, jexec [jail#] tcsh вылетал.

Искал, нашел: http://forums.freenas.org/index.php?threads/virtualbox-in-a-jail-in-freenas.20185/ По этой инструкции делаем jail во FreeBSD или FreeNAS, получаем subj и в довесок веб-интерфейс VitrualBox-a.

ИНСТРУКЦИЯ

  • Делаем стандартный Jail (FreeNAS - с поддержкой VIMAGE, но NAT и Vanilla - отключены)
  • Заходим в jail и обновляем pkg.
    pkg update

  • чтобы pkg не ругался, делаем индекс портов. Я знаю единственный способ: поставить порты.

    portsnap fetch extract

  • Ставим компоненты:

    pkg install nano wget xauth apache24 mod_php5 virtualbox-ose phpvirtualbox

  • Проверяем версии (т.к. во FreeNAS версия VBox ниже 4.3.x определенно не заработает):

    pkg version | grep virtualbox

  • Насраиваем апач:

    nano /usr/local/etc/apache24/httpd.conf

Меняем:

Было Стало
DocumentRoot “/usr/local/www/apache22/data DocumentRoot ”/usr/local/www/phpvirtualbox
<Directory “/usr/local/www/apache22/data”> <Directory “/usr/local/www/phpvirtualbox”>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-sources .phps

Сохраняем. Добавляем юзера vbox с uuid=1001, чтобы потом в его домашнюю папку класть виртуальные машины:

adduser

Ставим пароль на рута:

passwd root

Прописываем необходимые элементы в rc.conf

sysrc apache24_enable="YES" && sysrc sshd_enable="YES" && sysrc vboxwebsrv_user="vbox" && sysrc vboxwebsrv_enable="yes"

Добавляем возможность менять advanced settings в ГУИ:

nano /usr/local/www/phpvirtualbox/config.php

и раскомментируем там строку

var $enableAdvancedConfig = true;

phpvirtualbox 5.0.5 отказывается работать с VirtualBox 5.1.x

Как пишуть вГлавном сайте PHPVirtualBox-a: I was able to get v5.0-5 working with vbox 5.1 by commenting out the version check line and replacing it with a static value in the api.php file:

cd phpvirtualbox
cd ./endpoints/lib/

edit: api.php

find and replace (comment out old, add new):

// $response['data']['responseData']['phpvboxver'] = @constant('PHPVBOX_VER');
$response['data']['responseData']['phpvboxver'] = "5.1-0";

Под Хромом запускается.

Второй путь под Хром мне нравится больше:

go to phpvirtualbox webroot:

cd phpvirtualbox
cd ./endpoints/lib/

edit: config.php

find and replace (comment out old, add new):

//define('PHPVBOX_VER', '5.0-5');
define('PHPVBOX_VER', '5.1-0');

create 2 symlinks:

ln -s vboxweb-5.0.wsdl vboxweb-5.1.wsdl
ln -s vboxwebService-5.0.wsdl vboxwebService-5.1.wsdl

При желании поставить GUI по https

делаем (не перевожу, тупой копипаст): If you want to use SSL you have to do the following:

nano /usr/local/etc/apache22/httpd.conf

Add the following lines to the document(the end is fine):

Listen 443
<VirtualHost *:443>
  ServerName 192.168.2.4
  SSLEngine on
  SSLCertificateFile /home/vbox/server.crt
  SSLCertificateKeyFile /home/vbox/server.key
</VirtualHost>

Substitute your jail's IP address for my address in the line ServerName.

If you do not want http to work then delete or comment out the line “Listen 80” in httpd.conf.

Save and exit the file.

The following encryption key settings may or may not be secure. Use them at your own risk(or benefit).

Create some encryption keys for SSL:

cd /home/vbox
openssl genrsa -des3 -out server.key 1024 #(Generates a private key)
openssl req -new -key server.key -out server.csr
cp server.key server.key.org #(backs up your key)
openssl rsa -in server.key.org -out server.key #(Removes the passphrase from the key)
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt # (Generates a self-signed Certificate)

Jail готов.

В основной ОС FreeNAS добавляем (если нет) необходимые модули для создания bridged интерфейса VBox-a. Они лежат в приаттаченном файле files.tar.gz

Перемонтируем корень для записи:

mount -uw /

copy the included vbox*.ko files over the vbox*.ko files included in /boot/modules

cp modules/vbox*.ko /boot/modules/

copy the included ng*.ko files to /boot/kernel

cp kernel/ng*.ko /boot/kernel/

Исправляем права доступа:

chmod 555 /boot/modules/*.ko
chmod 555 /boot/kernel/*.ko

Перелинковываем модули ядра:

kldxref /boot/modules /boot/kernel

Прописываем строку о возможности создания внутренней сети vboxnet:

echo "vboxnet_enable=YES" >> /conf/base/etc/rc.conf

и сохраняемся:

mount -ur /

Если планируем использовать bridged network, то через веб-гуи FreeNAS-a добавляем tunable

  • ng_ether_load и ставим его значение как YES

Перезагружаем наш FreeNAS и имеем щасте и доступ к упрвлению VBox-ом через веб-интерфейс по айпишнику Jail-a

Юзернейм admin
Пароль admin

AutoStart VM

VBoxManage modifyvm <Vmname_or_UUID> –autostart-enabled on - не работает.

Но есть мануалы: https://forums.freenas.org/index.php?threads/enabling-autostart-of-virtualbox-vms-on-freenas.26503/
https://www.zufallsheld.de/2015/01/06/enabling-autostart-of-virtualbox-vms-on-freenas/

Суть такова: в rc.conf пишем (по типу jail-ов) название вирт.машины и опции автостарта.
Пример:

 cat /etc/rc.conf | grep -i vbox
vboxnet_enable="YES"
vboxheadless_enable="YES"
# VBox VMs to start (whitespace-separated list):
vboxheadless_machines="yourvm vm2"
# definition for vbox VM with acronym "yourvm":
vboxheadless_yourvm_name="Vbox-given VM name"
vboxheadless_ yourvm_user="vbox"
vboxheadless_ yourvm_stop="savestate"
# definition for vbox VM with acronym "vm2":
vboxheadless_vm2_name="Vbox-given name of VM 2"
vboxheadless_ yvm2_user="vbox"
vboxheadless_ vm2_stop="savestate"
freebsd/fbsd_virtual_box.txt · Last modified: 2017/01/31 03:23 by rybario
About this template
CC Attribution-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5