FreeBSD: установка и настройка VirtualBox

Автор: | 11/22/2012
 

Устанавливаться будет:

# pkg_info | grep virtualbox
virtualbox-ose-4.1.22 A general-purpose full virtualizer for x86 hardware
virtualbox-ose-kmod-4.1.22 VirtualBox kernel module for FreeBSD

На систему:

# uname -v
FreeBSD 9.0-RELEASE-p3

Обновляем порты:

# cd /usr/ports/
# portsnap fetch update

Приступаем к установке библиотек VNC-сервера:

# cd /usr/ports/net/libvncserver && make BATCH=yes install clean

Теперь — модули ядра VirtualBox:

# cd  /usr/ports/emulators/virtualbox-ose-kmod && make BATCH=yes install clean

Т.к. машинка серверная, то управление виртуальными машинами будет только через консоль, следовательно — везде дальше снимаем галочки с Х11:

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

Если при запуске установки выдается сообщение такого плана:

===>  virtualbox-ose-4.1.22 is marked as broken: QT4 frontend requires X11 support. Run ‘make config’ again!.
*** Error code 1

То выполните:

# make rmconfig

или даже:

# make rmconfig-recursive

И запустите конфигурирование заново, выбрав в первом окне БЕЗ опций NLS и QT4.

Теперь, можно запускать установку:

# make install clean

По окончанию установки — загружаем в память модуль:

# kldload vboxdrv

Что бы он загружался вместе с системой — добавляем в файл /boot/loader.conf такую строку:

vboxdrv_load=»YES»

В файл /etc/rc.conf добавляем:

vboxnet_enable=»YES»

Запускаем:

# service vboxnet onestart

Теперь — перезначим каталоги для хранения файлов самих виртуальных машин:

# mkdir /home/setevoy/VMs
# chmod -R 777 /home/setevoy/VMs/
# VBoxManage setproperty machinefolder /home/setevoy/VMs/

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

# VBoxManage createhd —filename disk1 —size 61440
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Disk image created. UUID: b21ebe9a-a258-46da-8d48-8e9e70e05964

Допустимые опции:

disk1 -имя будущего виртуального винчестера
61440Mb -размер будущего виртуального винчестера в Mb (1024*60=61440Mb)

По умолчанию формат виртуального hdd – *.VDI.

Учтите, что если не указать путь — то файл диска будет создан в текущем каталоге.

Создаем саму виртуальную машину:

#  VBoxManage createvm -name bsd1 -register
Virtual machine ‘bsd1’ is created and registered.
UUID: 01a92662-86e9-4679-bc1a-1e94999747a0
Settings file: ‘/home/setevoy/VMs/bsd1/bsd1.vbox’

Проверить, какие машины созданы в системе можно командой:

# VBoxManage list vms
«bsd1» {01a92662-86e9-4679-bc1a-1e94999747a0}

Созаем виртуальный IDE-контроллер и подключаем его к нашей машине:

# VBoxManage storagectl bsd1  —name «IDE Controller» —add ide

Теперь, подключаем к этому контроллеру наш ранее созданный винчестер:

# VBoxManage storageattach bsd1  —storagectl «IDE Controller» —port 0 —device 0 —type hdd —medium /home/setevoy/VMs/disk/disk1.vdi

Далее — изменим настройки нашей машины.

Нам потребуется UUID созданного ранее жесткого диска. Проверить его можно командной:

# VBoxManage showhdinfo disk/disk1.vdi
UUID:                 b21ebe9a-a258-46da-8d48-8e9e70e05964
Accessible:           yes
Logical size:         61440 MBytes
Current size on disk: 0 MBytes
Type:                 normal (base)
Storage format:       VDI
Format variant:       dynamic default
In use by VMs:        bsd1 (UUID: 01a92662-86e9-4679-bc1a-1e94999747a0)
Location:             /home/setevoy/VMs/disk/disk1.vdi

И выполняем:

# VBoxManage modifyvm bsd1 —ostype FreeBSD —memory 1024 —hardwareuuid b21ebe9a-a258-46da-8d48-8e9e70e05964 —audio none —cableconnected1 on —usb off —nic1 bridged —bridgeadapter1 re0 —acpi on

Тут:

modifyvm bsd1 — модифицируем машину bsd1;
FreeBSD – тип устанавливаемой на виртуальную машину операционной системы (посмотреть возможные варианты можно командой VBoxManage list ostypes );
1024 – размер ОЗУ, выделяемой для виртуальной машины;
b21ebe9a-a258-46da-8d48-8e9e70e05964 – на какой виртуальный HDD устанавливать гостевую ОС;
audio none – выключаем аудио;
usb off – выключаем usb ;
cableconnected1 on — сетевой кабель подключен;
nic1 bridged — тип сетевого включения на хост-машине (NAT, bridged, Internal etc );
bridgeadapter1 re0 — имя сетевой карты на хост-машине, которая будет мостом.

Проверить конфигурацию машины можно командной:

# VBoxManage showvminfo bsd1 | less

Теперь, подключаем *.iso образ, с которого будем загружаться:

# VBoxManage storageattach bsd1 —storagectl «IDE Controller» —port 1 —device 0 —type dvddrive —medium  /home/setevoy/Soft/OS/frenzy-1.3-ju-mini-ru-release.iso

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

# VBoxManage modifyvm bsd1 —boot1 dvd

Запускаем саму виртуальную машину:

# VBoxHeadless —startvm bsd1 -n -m 3389
Oracle VM VirtualBox Headless Interface 4.1.22_OSE
(C) 2008-2012 Oracle Corporation
All rights reserved.

11/11/2012 12:41:47 Listening for VNC connections on TCP port 3389
11/11/2012 12:41:47 Listening for VNC connections on TCP6 port 3389
Set framebuffer: buffer=2a56c000 w=800 h=600 bpp=32

n –vnc – включить VNC server;
m –vncport – номер порта VNC4
3389 – порт VNC.

Если нажать Ctrl+c виртуальная машина выключится.

Чтобы запустилось в бэкграунде, то запускаем так:

# nohup VBoxHeadless —startvm bsd1 -n -m 3389 &
[1] 56531
# appending output to nohup.out
^C

Кнопками Ctrl+C можно вернуться в консоль, машина при этом останется работать. Проверить список запущенных машин можно так:

# VBoxManage list runningvms
«bsd1» {01a92662-86e9-4679-bc1a-1e94999747a0}

Теперь можно подключаться к консоли виртуальной машины. Для Windows — это утилита UltraVNC.

Запускаем UltraVNC Viewer. Указываем IP хост-машины, на котором работает сам VirtualBox и порт, указанный при запуске машины:

И получаем консоль нашей виртуальной машины:

Для выключения виртуальной машины bsd1 выполняем:

# VBoxManage controlvm bsd1 poweroff

0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%

Сохранить текущее состояние виртуальной машины, а затем выключить её:

# VBoxManage controlvm bsd1 savestate

После того как выключили, ставим первым загрузочным устройством виртуальный HDD:

# VBoxManage modifyvm bsd1 —boot1 disk

Если надо отключить установочный *.iso образ, выполняем:

# VBoxManage storageattach bsd1 —storagectl «IDE Controller» —port 1 —device 0 —medium none
[1]+  Done                    nohup VBoxHeadless —startvm bsd1 -n -m 3389

Для удаления виртуальной машины:

1) Cначала отключаем HDD от виртуальной машины:

# VBoxManage storageattach bsd1 —storagectl «IDE Controller» —port 0 —device 0 —type hdd —medium none

Здесь:

–port 0 –device 0 -параметры которые мы задавали выше при подключении к IDE0 нашего виртуального винчестера disk1.vdi.

2) Теперь удаляем HDD из менеджера виртуальных носителей:

# VBoxManage closemedium disk /home/setevoy/VMs/disk/disk1.vdi

Здесь:

Если добавить параметр –delete то удалится и файл /home/setevoy/VMs/disk/disk1.vdi. Если –delete не добавлять то диск удалится из менеджера виртуальных носителей, но физически останется в директории /home/setevoy/VMs/disk/.

3) Далее, если остальные диски, включая iso-образы, отключены, нам будет позволено удалить виртуальную машину:

# VBoxManage unregistervm bsd1 —delete

0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%