Virtualbox


 * Handbook
 * http://wiki.freebsd.org/VirtualBox
 * http://www.virtualbox.org/wiki/FreeBSD%20build%20instructions
 * http://www.virtualbox.org/manual/
 * http://www.lissyara.su/articles/freebsd/www/phpvirtualbox/
 * http://habrahabr.ru/blogs/bsdelniki/84469/
 * http://tokarchuk.ru/2010/12/virtualbox-without-x-server-and-phpvirtualbox/
 * http://www.alterworld.ru/show/139 автозапуск
 * http://www.bloof.de/virtualBox_headless


 * http://forums.freebsd.org/showthread.php?t=7153
 * http://forums.freebsd.org/showpost.php?p=45664&postcount=5

В самой программе нет документации - её надо искать на официальном сайте

Серверная называется headless

Для серверного вариант есть провет phpvirtualbox, позволяющий через веб управлять виртуальными машинами.

Оптимальная конфигурация
cpu должен поддерживать технологию и 64-разрядным быть. Ниже строки из спецификации.
 * Instruction Set - 64-bit
 * Intel® Virtualization Technology (VT-x) -	Yes

Если процессор не поддерживает VT-технологию, virtualbox будет работать в режиме программной виртуаизации, что приведет к сильнейшим тормозам.

Установка
На примере версии 4.0.12 make config-recursive install clean -C /usr/ports/emulators/virtualbox-ose/


 * virtialbox
 * [-]QT4 Frontend
 * [-]X11 support
 * [-]NLS
 * [+]Guest additionals
 * [+]VNC


 * kmod - модули ядра
 * [+]VIMAGE

Сразу при сборке на установке 8.2 релиз захотело 32 либс cd /usr/src ; make build32 install32
 * Остановка при сборке

===> Checking if devel/dbus already installed ===> Creating users and/or groups. Creating group `messagebus' with gid `556'. Creating user `messagebus' with uid `556'. pw: user 'messagebus' disappeared during update *** Error code 67

Запустио еще раз, появилось сооьщение что пользователь уже есть. Удалил вручную пользователя с помощью vipw.

Запуск
Загрузку модуля kldload vboxdrv не стоит делать - лучше грузить при загрузке системы

Загрузка модуля при старте echo 'vboxdrv_load="YES"' >> /boot/loader.conf Добавление пользователей в группу pw groupmod vboxusers -m leksey

Bridging Support: echo 'vboxnet_enable="YES"' >> /etc/rc.conf /usr/local/etc/rc.d/vboxnet start

Этот скрипт грузит модули ядра 5   2 0xffffffff81212000 2aa0     vboxnetflt.ko 6    2 0xffffffff81215000 8e24     netgraph.ko 7    1 0xffffffff8121e000 1572     ng_ether.ko 8    1 0xffffffff81220000 e70      vboxnetadp.ko

в одном из PR совет загружать vbox_net через rc.conf, а я то прописал и vboxdrv и vboxnetadp в /boot/loader.conf! После того, как там оставил только vboxdrv, а в rc.conf добавил vboxnet_enable="YES" все заработало.

Не написано, но по смыслу нужно. По-видимому для запуска автоматического виртуальных машин безмониторных. echo 'vboxheadless_enable="YES"' >> /etc/rc.conf

 For USB support your user needs to be in the operator group and needs read and write permissions to the USB device. % pw groupmod operator -m jerry Add the following to /etc/devfs.rules (create if it doesn't exist): [system=10] add path 'usb/*' mode 0660 group operator To load these new rule add the following to /etc/rc.conf: devfs_system_ruleset="system" Then restart devfs to load the new rules: % /etc/rc.d/devfs restart

This port has installed the following binaries which execute with increased privileges. /usr/local/lib/virtualbox/VBoxHeadless /usr/local/lib/virtualbox/VBoxNetAdpCtl /usr/local/lib/virtualbox/VBoxNetDHCP

Troubleshooting:

=
=== Running VirtualBox as non-root user may fail with a fatal error NS_ERROR_FACTORY_NOT_REGISTERED. In this case delete /tmp/.vbox-*-ipc file. Check wiki page for known issues and troubleshooting: http://wiki.freebsd.org/VirtualBox Please report any problems to emulation@. Thanks! 

inside a FreeBSD guest (для FreeBSD, запущенной в качестве гостя). В мастер-систему откажется ставиться. make install clean -C /usr/ports/emulators/virtualbox-ose-additions/ [-]X11 support [-]HAL - ему нужен X11 support

Перезагрузка
До перезагрузки kldstat  1   9 0xffffffff80100000 dc0850   kernel 2   1 0xffffffff80ec1000 202980   zfs.ko 3    2 0xffffffff810c4000 4998     opensolaris.ko 

4   1 0xffffffff810c9000 4c358    vboxdrv.ko

Создание виртуальной машины
Посмотреть типы и идендификаторы ОС VBoxManage list ostypes


 * 1) Создается в /root/VirtualBox VMs/win2008/win2008.vbox

Только команды. Для Windows 2008 server 64 бита (на поддерживающем VM процессоре) VBoxManage createvm --name win2008 --ostype Windows2008_64 --register VBoxManage modifyvm win2008 --memory 1024 --floppy disabled --audio none --nic1 bridged --bridgeadapter1 re0 --vram 4 --accelerate3d off --boot1 disk --acpi on --cableconnected1 on VBoxManage createhd --filename /ms.aopa.ru/win2008.vdi --size 15360 VBoxManage storagectl win2008 --name "IDE Controller" --add ide VBoxManage storageattach win2008 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /ms.aopa.ru/win2008.vdi VBoxManage storageattach win2008 --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /ms.aopa.ru/7601.17514.101119-1850_x64fre_server_en-us_VL-GRMSXVOL_EN_DVD.iso VBoxManage modifyvm win2008 --boot1 dvd VBoxHeadless --startvm win2008 -v on -n -m 5900 -o password& vncviewer localhost:5900

VBoxManage createvm --name winxp --ostype WindowsXP --register Virtual machine 'winxp' is created and registered. UUID: b423f8a7-8a2c-448e-bd9e-d2a3e0a61ca3 Settings file: '/root/VirtualBox VMs/winxp/winxp.vbox'

VBoxManage modifyvm winxp --memory 256 --floppy disabled --audio none --nic1 bridged --bridgeadapter1 stge0 --vram 4 --accelerate3d off --boot1 disk --acpi on --cableconnected1 on

Без --register - такого ключа уже нет (хотя так советует инструкция) VBoxManage createhd --filename /root/winxp.vdi --size 1000 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Disk image created. UUID: 0f865189-5ded-43e2-b1e4-653c78140cfb

Без указания файла почему-то. Видимо через имя идет привязка. VBoxManage storagectl winxp --name "IDE Controller" --add ide

Диск к контроллеру VBoxManage storageattach winxp --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /root/winxp.vdi

Образ диска с Windows XP VBoxManage storageattach winxp --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/leksey/Windows\ XP\ Professional\ sp3\ VL/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso

Указание загрузки с диска VBoxManage modifyvm winxp --boot1 dvd

Дополнения
Установка дополнений. Нормально начинает курсом мыши синхронизироваться в мастер-машине и виртуальной. VBoxManage storageattach winxp --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /usr/local/lib/virtualbox/additions/VBoxGuestAdditions_4.0.12.iso

Чтобы размер экрана был больше - в настройках адаптера надо его изменить в гостевой ос. В моем случае - до 1280 х 960

Отключение диска (?). После выполнения становится IDE Controller (1, 0): Empty VBoxManage storageattach win2008 --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium emptydrive

Сеть
Посмотреть МАК-адрес VBoxManage showvminfo winxp  ... NIC 1: MAC: 080027796F93, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0



NAT
Переключение на NAT VBoxManage modifyvm winxp --nic1 nat

DHCP и сетевая получает Connection-specific DNS Suffix. : tushino.com IP Address. . . . . . . . . . . . : 10.0.2.15       Subnet Mask. . . . . . . . . . . : 255.255.255.0       Default Gateway. . . . . . . . . : 10.0.2.2

Bridge
Вместо eth0 или vboxnet0 в настройках виртаульной машины у --bridgeadapter1 надо писать название интерфейса физического (em0, re0 и пр). VBoxManage modifyvm winxp -nic1 bridged --bridgeadapter1 stge0

telnet 172.16.0.9 3389 rdesktop 172.16.0.9

На интерфейсе запущен DHCP и он выдаст виртуальной машине настройки Connection-specific DNS Suffix. : example.org IP Address. . . . . . . . . . . . : 172.16.0.9 Subnet Mask. . . . . . . . . . . : 255.255.255.0 Default Gateway. . . . . . . . . : 172.16.0.1

Если перезагружаться, т.е. модули загружаются из /boot/loader.conf, появляется сетевое устройство vboxnet0: flags=8802 metric 0 mtu 1500 ether 0a:00:27:00:00:00

Когда поднимаю на vboxnet (или физическом интерфейсе) тот же самый IP что задан в гостевой ОС, то обе системы сообщают о конфликте адресов.

NIC 1:MAC:080027796F93, Attachment: Bridged Interface 'stge0', Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0

NIC 1: MAC: 080027DCB539, Attachment: Bridged Interface 're0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0

VBoxManage showvminfo vbbsd01 | grep ^NIC\ 1

VBoxManage list bridgedifs Выводит список  Name:           age0 GUID:           30656761-0000-4000-8000-001e8c8c63da Dhcp:           Disabled IPAddress:      89.250.8.14 NetworkMask:    255.255.254.0 IPV6Address: IPV6NetworkMaskPrefixLength: 0 HardwareAddress: 00:1e:8c:8c:63:da MediumType:     Ethernet Status:         Up VBoxNetworkName: HostInterfaceNetworking-age0

Name:           re0 GUID:           00306572-0000-4000-8000-0080485a189c Dhcp:           Disabled IPAddress:      192.168.56.1 NetworkMask:    255.255.255.0 IPV6Address: IPV6NetworkMaskPrefixLength: 0 HardwareAddress: 00:80:48:5a:18:9c MediumType:     Ethernet Status:         Down VBoxNetworkName: HostInterfaceNetworking-re0

Name:           stge0 GUID:           65677473-0030-4000-8000-001d605c9d6d Dhcp:           Disabled IPAddress:      172.16.0.1 NetworkMask:    255.255.0.0 IPV6Address: IPV6NetworkMaskPrefixLength: 0 HardwareAddress: 00:1d:60:5c:9d:6d MediumType:     Ethernet Status:         Up VBoxNetworkName: HostInterfaceNetworking-stge0

Name:           fwe0 GUID:           30657766-0000-4000-8000-0211d8a45d9a Dhcp:           Disabled IPAddress:      192.168.56.1 NetworkMask:    255.255.255.0 IPV6Address: IPV6NetworkMaskPrefixLength: 0 HardwareAddress: 02:11:d8:a4:5d:9a MediumType:     Ethernet Status:         Down VBoxNetworkName: HostInterfaceNetworking-fwe0 

Хз чего VBoxManage controlvm winxp nic1 bridged stge0

VBoxManage list hostonlyifs Сначала показывает то что выдает DHCP 192.168.56.101  Name:           vboxnet0 GUID:           786f6276-656e-4074-8000-0a0027000000 Dhcp:           Disabled IPAddress:      192.168.56.1 NetworkMask:    255.255.255.0 IPV6Address: IPV6NetworkMaskPrefixLength: 0 HardwareAddress: 0a:00:27:00:00:00 MediumType:     Ethernet Status:         Down VBoxNetworkName: HostInterfaceNetworking-vboxnet0 

Строка для запуска неживая совсем. VBoxHeadless --startvm MicroXP -v on -a 192.168.1.1 -p 5900 -S password Warning: '-a' or '-vrdpaddress' are deprecated. Use '-e "TCP/Address=192.168.1.1"' Warning: '-p' or '-vrdpport' are deprecated. Use '-e "TCP/Ports=5900"' VBoxHeadless: error: Unknown option: '-S'

VBoxHeadless --startvm $1 -n -m 5900 -o $2

Запускать так VBoxHeadless --startvm winxp -v on -n -m 5900 -o password -e "TCP/Address=192.168.1.1"

После установки системы, когда VNC не требуется, то запускать без него VBoxHeadless --startvm win2008 &

Подключение vncviewer localhost:5900

В вики советуют COMPAT_IA32 (она переименована в COMPAT_FREEBSD32) - в GENERIC оно имеется.

Управление
Список доступных виртуальных машин (от того пользователя, где они были созданы) VBoxManage list vms "winxp" {b423f8a7-8a2c-448e-bd9e-d2a3e0a61ca3}

Запуск. После этого просмотреть, какой IP получен по DHCP (dmesg) и можно подключаться rdesktop. Но открывается только в окошке маленьком. VBoxHeadless --startvm winxp& rdesktop x.x.x.x

Просмотр конфигурации виртуальной машины VBoxManage showvminfo winxp

Там же показывает состояние State:          running (since 2012-03-08T21:37:17.984000000)

VBoxManage list runningvms "winxp" {b423f8a7-8a2c-448e-bd9e-d2a3e0a61ca3}

Выключение VBoxManage controlvm winxp poweroff

VBoxManage -nologo controlvm no_kernel reset

VBoxManage controlvm ubuntu acpipowerbutton

Копирование диска VBoxManage clonehd old_hard_disk.vdi new_hard_disk.vdi ––existing

Удаляется в т.ч. файл с виртуальной машиной VBoxManage unregistervm win2008 --delete
 * Удаление

Список жестких дисков VBoxManage -q list hdds

VBoxManage closemedium This commands removes a hard disk, DVD or floppy image from a VirtualBox media registry

"emptydrive": For a virtual DVD or floppy drive only, this makes the device slot behaves like a removeable drive into which no media has been inserted.

Снепшоты
VBoxManage snapshot win7 take ie8 --description "initial state with ie8" VBoxManage snapshot win7 restore ie8

Чтобы данные не попадали в снепшот, надо создать т.н. "writethrough" disk,

To add a writethrough disk, use the -type writethough option when creating a new disk with createvdi

http://mirspo.narod.ru/backup_vdi.html

Статистика
Для хоста и виртуальной машины может собираться. Host и Guest

В выводе команд всегда есть 4 типа метрик например CPU/Load (Category/Metric[/SubMetric][:aggregate]) - остальные являются сабметриками и их нельзя использовать при использовании команды disable

Сбор нужно специально активировать VBoxManage metrics setup -period 5 -samples 1 win2008

Выключение сбора статистики VBoxManage metrics disable win2008 VBoxManage metrics disable host Обратное включение (используется то что через setup выставлено) VBoxManage metrics enable win2008

Не надо активировать? - показывает текущие как top VBoxManage metrics collect --period 2 win2008 Показывает все сразу. Указать что-то одно почему-то не получается. Причем, выводится много параметров но полезных из них всего 2.
 * Guest/CPU/Load/User
 * Guest/RAM/Usage/Free

Написать только эти метрики почему-то нельзя - тихо игнорирует при запуске с ними

Как увидеть то количество samples что указал в setup? Через query

В документации пишут, что disable прекращает сбор данных, но не очищает (в отличие от setup)

Значение без Guest зачем-то выводятся, но в них нет значений. Причем, для host они также не очень полезно, по-видиому, не учитывается специфика FreeBSD - показывает для хоста RAM/Usage/Free - 500Мб а в Used - 16Мб. Free тут мало смысла несет. Потому что по факту свободной памяти другое количество.

Все остальные кроме упомянутых двух либо нулевые, либо содержат статичны, а также показывают полный объем выделенных виртуальной памяти ресурсов (например, памяти).

Сбор информации http://mirspo.narod.ru/labs/vbmon.html http://code.google.com/p/vboxmon/

Обновление системы
Если обновляется система, то надо обновлять и сам VirtualBox

VirtualBox uses kernel modules which should match the kernel version. So after you upgrade to 8.2, rebuild and reinstall emulators/virtualbox-ose-kmod. Don't know if emulators/virtualbox-ose also requires a rebuild, but it wouldn't hurt.

FreeBSD Гостевая система
freebsd as guest os - чтобы выставить разрешение отличное от 800х600

Развертку монитора нужно было прописать HorizSync    31-80 VertRefresh  30-100

64-битная гостевая ос
http://forums.virtualbox.org/viewtopic.php?t=8669

Нужно в BIOS хоста включить

VirtualBox also supports 64-bit guest operating systems, under the following conditions:

NOTE: Since version 2.1.0, you can run 64 bit Guests while running a 32 bit Host. The prior requirement for Operating System is only for version 2.0.x. You still need the proper hardware.
 * You need a 64-bit processor with hardware virtualization support (see User Manual chapter 1.2, Software vs. hardware virtualization (VT-x and AMD-V), page 10) and a 64-bit host operating system.

Note: some HP BIOSES have a glitch, When You ENABLE VT-X/AMD-V, You DISABLE it, so do try both ways.
 * You must enable hardware virtualization through your BIOS; software virtualization is not supported for 64-bit VMs.

A common misconception about 64bit hardware: Having 64bit hardware/cpu does NOT mean you have VT-X/AMD-V as well, in other words: yes you can run a 64bit OS on 64bit hardware as a HOST, but a 64bit GUEST NEEDS VT-X/AMD-V to be active and enabled.

Ссылки

 * http://wiki.freebsd.org/VirtualBox
 * http://www.freebsd.org/doc/en/books/handbook/network-bridging.html
 * http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization-host.html

VBoxManage startvm win7 --type headless