Итак, как всегда, начнём с задачи: Установить virtualbox на сервер без X11 на FreeBSD, создать виртуальную машину и установить на неё другую операционную систему. Я ставить буду тоже FreeBSD, но это уже не принципиально. Таким образом, на одном физическом ПК можно установить несколько виртуальных машин.Сначала установим всё необходимое:
make BATCH=yes -C/usr/ports/net/libvncserver install clean
make BATCH=yes -C/usr/ports/emulators/virtualbox-ose-kmod install clean
cd /usr/ports/emulators/virtualbox-ose
make config
Options for virtualbox-ose 3.2.8_1
[ ] QT4 Build with QT4 Frontend
[ ] DEBUG Build with debugging symbols
[X] GUESTADDITIONS Build with Guest Additions
[X] DBUS Build with D-Bus and HAL support
[ ] PULSEAUDIO Build with PulseAudio
[ ] X11 Build with X11 support
[X] VDE Build with VDE support
[X] VNC Build with VNC support
[X] WEBSERVICE Build Webservice
[ ] NLS Native language support
make BATCH=yes -C/usr/ports/emulators/virtualbox-ose install clean
rehash
Нужно загрузить модуль vboxdrv в ядро, выполняем:
kldload vboxdrv
Без этого при старте vboxnet будем видеть ошибку:
Kernel driver not installed (rc=1908)]
Make sure the kernel module has been loaded seccessfully.
чтобы при перезагрузке модуль vboxdrv подгружался автоматически в /boot/loader.conf дописываем строку:
vboxdrv_load="YES"
Добавляю в /etc/rc.conf строку:
vboxnet_enable="YES"
О строках в /boot/loader.conf и /etc/rc.conf было написано в сообщении после инсталяции virtualbox-ose.
Стартуем vboxnet:
/usr/local/etc/rc.d/vboxnet start
Теперь можно создавать машину.
Примечание:
Виртуальные диски и файл конфигурации виртуальной машины по умолчанию создаются в профиле пользователя, по-моему это не удобно. Удобнее сделать так, чтобы местом хранения всех дисков(.vdi, .vmdk, .vhd) была одна директория, а конфигураций виртуальных машин(.xml) — другая директория.
Создам директории, кторорые будут использоваться в примере ниже:
директория, где будут храниться виртуальные hdd:
mkdir -p /mnt/pools/dsk00/virtual/sr/vbhdd/
директория, где по умолчанию будут сохраняться файлы настроек виртуальных машин:
mkdir -p /mnt/pools/dsk00/virtual/vb/vpc/vbpcset
даём права на директорию:
chmod -R 0777 /mnt/pools/dsk00/virtual/
для установки по умолчанию хранилища файлов виртуальных винчесетров выполняем:
VBoxManage setproperty hdfolder /mnt/pools/dsk00/virtual/sr/vbhdd
для становки по умолчанию хранилища настроек виртуальных машин выполняем:
VBoxManage setproperty machinefolder /mnt/pools/dsk00/virtual/vb/vpc/vbpcset
теперь посмотрев:
cat ~/.VirtualBox/VirtualBox.xml
увидим секцию, где и прописались наши изменения.
Создаём виртуальный hdd под названием vbhdd003 для виртуальной машины с именем vbpc003 (имена могут быть произвольными):
VBoxManage createhd --filename vbhdd003 --size 61440 --remember
Oracle VM VirtualBox Command Line Management Interface Version 3.2.8_OSE
(C) 2005-2010 Oracle Corporation
All rights reserved.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: adc3efcb-209e-4dc7-9a5e-78a069aee779
здесь
vbhdd003 -имя будущего виртуального винчестера
61440Mb -размер будущего виртуального винчестера в Mb (1024*60=61440Mb)
remember -зарегестрировать в менеджере виртуальных винтов
По умолчанию формат виртуального hdd — *.VDI
Переходим к созданию виртуальной машины:
VBoxManage createvm -name vbpc003 -register
Oracle VM VirtualBox Command Line Management Interface Version 3.2.8_OSE
(C) 2005-2010 Oracle Corporation
All rights reserved.
Virtual machine 'vbpc003' is created and registered.
UUID: 09cd25c3-dd06-43b0-9926-682fbcd16abb
Settings file: '/mnt/pools/dsk00/virtual/vb/vpc/vbpcset/vbpc003/vbpc003.xml'
здесь
vbpc003 -имя виртуального ПК
register -зарегистрировать виртуальный ПК
Создаём контроллер IDE в наш виртуальный ПК vbpc003:
VBoxManage storagectl vbpc003 --name "IDE Controller" --add ide
Подключаем к IDE0 наш виртуальный винчестер vbhdd003.vdi:
VBoxManage storageattach vbpc003 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /mnt/pools/dsk00/virtual/sr/vbhdd/vbhdd003.vdi
Модифицируем машину vbpc003:
VBoxManage modifyvm vbpc003 --ostype FreeBSD --memory 128 --hardwareuuid adc3efcb-209e-4dc7-9a5e-78a069aee779 --audio none --cableconnected1 on --usb off --nic1 bridged --bridgeadapter1 re0 --acpi on
здесь:
modifyvm vbpc003 -модифицируем ПК vbpc003
FreeBSD — тип устанавливаемой на виртуальную ПК операционной системы (посмотреть возможные варианты можно командой VBoxManage list ostypes)
128 — размер ОЗУ, выделяемой для виртуальной машины
adc3efcb-209e-4dc7-9a5e-78a069aee779 — на какой виртуальный HDD устанавливать гостевую ОС. Этот UUID из сочетания множества букв и цифр был виден после выполнения VBoxManage createhd.
audio none — выклюючаем аудио
usb off — выключаем usb
можно посмотреть параметры созданной машинки vbpc003:
VBoxManage showvminfo vbpc003
К IDE1 машины vbpc003 подключаем образ iso с которого будем устанавливать ОС FreeBSD:
VBoxManage storageattach vbpc003 --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /mnt/pools/dsk02/fcd/soft/unix/bsd/freebsd/FreeBSD-8.1-RELEASE-i386-dvd1.iso
Здесь:
/mnt/pools/dsk02/fcd/soft/unix/bsd/freebsd/FreeBSD-8.1-RELEASE-i386-dvd1.iso — Образ ОС, который будет являться загрузочным DVD для установки ОС.
Ставим первым загрузочным устройством виртуальный dvd
VBoxManage modifyvm vbpc003 --boot1 dvd
Всё готово к запуску.
Запускаем виртуальную машину:
VBoxHeadless --startvm vbpc003 -n -m 3389
n, —vnc — Включить VNC server
m, —vncport — номер порта vnc
3389 — порт vnc
Если нажать Ctrl+c виртуальная ПК выключится.
Чтобы запустилось в бэкграунде, то запускаем так:
nohup VBoxHeadless —startvm vbpc003 -n -m 3389 &
в этом случае можно жать Ctrl+c машина останется запущенной и к ней можно будет подключиться по vnc, например, через ultra vnc.
Посмотреть запущенные виртуалки:
VBoxManage list runningvms
Для выключения виртуальной машины vbpc003 выполняем:
VBoxManage controlvm vbpc003 poweroff
Сохранить текущее состояние виртуальной машины, а затем выключить её:
VBoxManage controlvm vbpc003 savestate
После того как выключили, ставим первым загрузочным устройством виртуальный HDD
VBoxManage modifyvm vbpc003 --boot1 disk
Если надо отключить установочный iso образ, выполняем:
VBoxManage storageattach vbpc003 --storagectl "IDE Controller" --port 1 --device 0 --medium none
Для регистрации ISO образа ОС в менеджере:
VBoxManage openmedium dvd /full/path/to/iso.iso
После того как запустили ПК, начнётся загрузка с FreeBSD-8.1-RELEASE-i386-dvd1.iso. Подключиться к запущенной машине из под M$ w!n можно с помощью UltraVNC.
Так же бывает необходимо автоматически запускать виртуальную машину после запуска ПК, на котором установлен virtualbox, для этого создадим скриптик:
ee /usr/local/etc/rc.d/vbpc003load
с таким содержимым.
Здесь:
vboxnet -демон, после запуска которого стартовать скрипт
vbpcname –это имя создаваемого выше виртуального ПК
vncport –номер порта vnc
vbpc003load -название скрипта и name
Если в скрипте стоит vbpc003load_enable=»NO»(как у меня в примере), то требуется строка vbpc003load_enable="YES"
в /etc/rc.conf
Делаем его исполняемым:
chmod +x /usr/local/etc/rc.d/vbpcload
в /etc/rc.conf добавляем строку:
vbpc003load_enable="YES"
После перезагрузки физического ПК, на котором установлен VirtualBox, виртуальная машина с именем vbpc003 будет стартовать автоматически.
Для удаления виртуальной машины:
1) сначала отключаем hdd от ВМ:
VBoxManage storageattach vbpc003 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium none
здесь
—port 0 —device 0 -параметры которые мы задавали выше при подключении к IDE0 нашего виртуального винчестера vbhdd003.vdi
2) Теперь удаляем hdd из менеджера виртуальных носителей:
VBoxManage closemedium disk /mnt/pools/dsk00/virtual/sr/vbhdd/vbhdd003.vdi
здесь
если добавить параметр —delete то удалится и файл /mnt/pools/dsk00/virtual/sr/vbhdd/vbhdd003.vdi. Если —delete не добавлять то диск удалится из менеджера виртуальных носителей, но физически останется в диретории /mnt/pools/dsk00/virtual/sr/vbhdd/
3) Далее если остальные диски, включая iso-образы, отключены, нам будет позволено удалить виртуальную машину:
VBoxManage unregistervm vbpc003 --delete
здесь
—delete -удалит и файл XML с описанием ВМ
Подведём итог:
Мы разобрались как установить virtualbox на сервер без X11 на FreeBSD, создать и настроить виртуальную машину, к которой можем подключаться по vnc для установки ОС, отключить/удалить диски виртуальной машины и саму ВМ, а так же организовали автозапуск этой виртуальной машины.
Здравствуйте!
У меня почему то не проходит команда
VBoxManage setproperty hdfolder /mnt/pools/dsk00/virtual/sr/vbhdd
После ее ввода пауза на пару секунд и:
Oracle VM VirtualBox Command Line Management Interface Version 4.2.6_OSE
(C) 2005-2014 Oracle Corporation
All rights reserved.
Usage:
VBoxManage setproperty machinefolder default| |
vrdeauthlibrary default| |
websrvauthlibrary default|null| |
vrdeextpack null| |
autostartdbpath null| |
loghistorycount
Syntax error: Invalid parameter ‘hdfolder’
Я так понимаю параметр ‘hdfolder’ даже не определен. Не подскажете в чем дело? В интернетах ни чего не нашел.
Здравствуйте.
Разобрались?
Сейчас, к сожалению повторить я не могу, потому что окончательно перешёл на другую ОС, но в сети нашёл страничку ( http://mirspo.narod.ru/vbox/ch08.html ) с параметрами команд VBoxManage, там есть параметр VBoxManage setproperty hdfolder и похоже, что он верно написан.
Проверьте, есть ли такая директория /mnt/pools/dsk00/virtual/sr/vbhdd , указанная в команде.