Установка VirtualBox на FreeBSD 8.2
Сегодня меня озадачили, в очередной раз упал канал до площадки, где у меня установлен сервер. Честно говоря, меня это уже немного достало так как канал лежит третий день, и я решил переезжать, да и в общем, к той площадке, где стоит сервер, я больше отношения не имею. Так что угроза потерять сервер замаячила с новой силой. Ладно, у меня есть еще несколько серверов в различных датацентрах, и есть обычный хостинг на PeterHost. Сначала я было подумал перенести все проекты на обычный хостинг, и не заморачиваться об этом. Но вот проблема в том, что перенос абсолютно всех проектов – это дорогое удовольствие, их много. Да и зачем платить много, когда есть собственные сервера. Но есть одна особенность у моих серверов, они имеют свойство то исчезать, то появляться, то тут то там. И каждый раз перенастраивать и переносить всю эту братию, со всеми redmine, MySQL, Apache и прочий сброд который у меня на сервере установлен, в общем не здорово. И тут я подумал, а почему бы мне не замутить виртуальную машину, настроить все там, и перетаскивать виртуальную машину с сервера на сервер, эдакое маленькое облачко замутить.
Сказано – сделано!
Первое что было сделано, это выбрано ПО для виртуализации, я захотел использовать VirtualBox
1) Я уже его устанавливал на Windows, MacOS, Linux
2) Он довольно шустро работает, не нагружает излишне систему
3) Он бесплатен
4) Достаточно удобно в управлении
И так начнем, обновляем порты FreeBSD 8.2
# portsnap fetch
# portsnap update
Затем устанавливаем саму VirtualBox
#cd /usr/ports/emulators/virtualbox-ose
#make install clean
В окошке выбора опций я выбрал следующие:
Guest Additions потом понадобятся для настройки гостевой ОС (Для windows точно, для фри пока не знаю)
DBUS & HAL Support – как я понимаю понадобятся для установки винды, и возможно других ОС
VDE – я так и не понял зачем, а VNC надо для управления консолью через VNC клиента.
RDP бесплатная версия не поддерживает =(
Поехали…. В процессе компиляции у меня VirtualBox вывалилась с ошибкой, мол libtool => 2.4 нужен. Это не проблема:
#cd /usr/ports/devel/libtool/
#make install clean
Все прошло без ошибок, и возвращаемся назад:
#cd /usr/ports/emulators/virtualbox-ose
#make install clean
Теперь установка прошла успешно, о чем мне и сообщили:
VirtualBox was installed.
You need to load the vboxdrv kernel module via /boot/loader.conf:
vboxdrv_load=»YES»
//Вам надо загрузить vboxdrv модуль в ядро, добавив в файлик /boot/loader.conf вот эту строчку:
// vboxdrv_load=»YES»
You also have to add all users to your vboxusers group in order to use vbox.
//Вы так же должны добавить всех пользователей которые будут работать с
//виртуалками в группу vboxusers
% pw groupmod vboxusers -m jerry
Reboot the machine to load the needed kernel modules.
//Перезагрузите машину для загрузки модулей (я попробовал не перезагружая машину просто //выполнить # kldload vboxdrv, вроде получилось
Bridging Support:
=================
For bridged networking please add the following line to your /etc/rc.conf:
vboxnet_enable=»YES»
// для работы сети в виртуальной машине в режиме бриджа, необходимо разрешить vboxnet
USB Support:
============
For USB support your user needs to be in the operator group and needs read
and write permissions to the USB device.
//для работы с USB девайсами, необходимо что бы пользователь входил в группу оператор.
% pw groupmod operator -m jerry
Add the following to /etc/devfs.rules (create if it doesn’t exist):
//добавьте в /etc/devfs.rules следующие строки (создайте файл если его нет):
[system=10]
add path ‘usb/*’ mode 0660 group operator
To load these new rule add the following to /etc/rc.conf:
//для применения этих настроек, надо добавить строчку в /etc/rc.conf
devfs_system_ruleset=»system»
Then restart devfs to load the new rules:
% /etc/rc.d/devfs restart
Добавляем пользователя:
#pw useradd vbox -c ‘VitrualBox’ -d /usr/vbox -g vboxusers -w none -s /bin/sh
Теперь приступим к созданию виртуальной машины, и установки FreeBSD на нее.
$ VBoxManage createvm —name Zagor —ostype FreeBSD —register —basefolder /usr/vbox
Virtual machine ‘Zagor’ is created and registered.
UUID: 857a028a-2cbe-4185-8ab8-7f24cbc29497
Settings file: ‘/usr/vbox/Zagor/Zagor.vbox’
$ VBoxManage modifyvm «Zagor» —memory 512 —acpi on —boot1 dvd —nic1 nat
$ VBoxManage createhd —filename «Zagor.vdi» —size 20000
$ VBoxManage storagectl «Zagor» —name «IDE» —add ide —controller PIIX4
$ VBoxManage storageattach «Zagor» —storagectl «IDE» —port 0 —device 0 —type hdd —medium «Zagor.vdi»
$ VBoxManage storageattach «Zagor» —storagectl «IDE» —port 1 —device 0 —type dvddrive —medium /usr/upload/FreeBSD-8.2-RELEASE-i386-disc1.iso
$ VBoxManage modifyvm «Zagor» —vrde on
Запускаем!
$ VBoxHeadless -s Zagor —vnc —vncport 2222 —vncpass 123321
Теперь с помощью VNC можно подключаться к серваку…
Для автоматического запуска с консолью используем:
/usr/bin/nohup /usr/local/bin/VBoxHeadless —startvm Zagor —vnc —vncport 2222 —vncpass Zuper_secret_passworT &