Исходные данные: Сервер FreeBSD 8.1-RELEASEЗадача: Запустить на VirtualBox гостевую ОС Windows или Ubuntu.
Решение:
1. Устанавливаем VirtualBox из портов (не забываем вначале обновить порты)
cd /usr/ports/emulators/virtualbox-ose
make config
/------------------------------------------------------\
| Options for virtualbox-ose 3.2.10 |
| |
| [ ] 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 |
| [ ] VDE Build with VDE support |
| [X] VNC Build with VNC support |
| [ ] WEBSERVICE Build Webservice |
| [ ] NLS Native language support |
\------------------------------------------------------/make install
2. Добавляем запуск модулей при старте сервера:
echo vboxdrv_load="YES" >> /boot/loader.conf
Загружаем нужный модуль:
kldload vboxdrv
3. Создаем пользователя vbox под которым будем запускать VirtualBox
pw useradd vbox -c 'VirtualBox Daemon' -d /home/vbox -g vboxusers -w none -s /bin/sh
4. Создаем домашний каталог пользователя vbox где будем хранить виртуалки
mkdir /home/vbox
5. Даем права:
chown -R vbox:vboxusers /home/vbox/
chmod -R 770 /home/vbox/6. Входим под пользователем и создаем виртуальную машину:
Под рукой был только диск с Ubuntu, для Windows нужно лишь
изменить опцию --ostype, имя виртуалки, имя hdd и путь до iso-образа.
Список возможных значений --ostype смотрим командой: VBoxManage list ostypessu -l vbox
VBoxManage createvm --name Ubuntu --ostype Ubuntu --register --basefolder /home/vbox
VBoxManage modifyvm "Ubuntu" --memory 256 --acpi on --boot1 dvd --nic1 nat
VBoxManage createhd --filename "Ubuntu.vdi" --size 10000 --remember
VBoxManage storagectl "Ubuntu" --name "IDE Controller" --add ide --controller PIIX4
VBoxManage storageattach "Ubuntu" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "Ubuntu.vdi"
VBoxManage openmedium dvd /mnt/ubuntu-9.10-dvd-i386.iso
VBoxManage storageattach "Ubuntu" --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /mnt/ubuntu-9.10-dvd-i386.iso7. Смотрим конфигурацию созданной машины:
VBoxManage showvminfo Ubuntu
8. Создаем скрипт /usr/local/etc/rc.d/vbox.sh для запуска VirtualBox:
#!/bin/sh
echo "Starting VirtualBox..."
su -l vbox -c '/usr/bin/nohup /usr/local/bin/VBoxHeadless --startvm Ubuntu --vnc --vncport 2222 --vncpass 1234567890 &'9. Подключаемся к VirtualBox с помощью любого VNC клиента. (порт 2222, пароль 1234567890)
10. Устанавливаем и настраиваем ОС, ставим на неё VirtualBox GuestAdditions.
На этом все, если есть вопросы, пишите, буду рад ответить.
(с) Михаил Григорьев (sleuthhound@gmail.com)
URL:
Обсуждается: http://www.opennet.dev/tips/info/2505.shtml
Не понял, а это http://www.opennet.dev/base/sys/virtualbox_freebsd.txt.html
тогда что?
Там через пхп управление проиходит. Тут прямо с консоли.
По ссылке один пост, там всё, что здесь.
По вашей ссылке статья где конфигурирование VirtualBox идет с помощью PHP скриптов.
Здесь же все через командную строку. Все гораздо быстрее и проще, никаких заморочек с php, apache и скриптами.
Читайте внимательно.
Так взяли Ваш пост, выкинули ПХП и всё, мне было достаточно той статьи.
Если Вы эту статью разместили, тогда вопросов нет,
а если нет, то это чистый плагиат.
Вы видать плохо читали ту статью и эту тоже.Там вы не увидите ни одной команды управления VirtualBox из командной строки, здесь создание вирт. машины идет чисто из командной строки, никаких php-примочек не используется.
Эту статью написал лично я на основе своих заметок 2-х месячной давности и я никогда не страдал копи-пастерством, так что прежде чем обвинять - найдите доказательства плагиата.
Это Вы не внимательно читаете!!!! Я же писал!!!!
>Если Вы эту статью разместили, тогда вопросов нет
> 8. Создаем скрипт /usr/local/etc/rc.d/vbox.sh для запуска VirtualBox:Хоть бы скрипт нормальный написали. Такой никуда не годится.
> Хоть бы скрипт нормальный написали. Такой никуда не годится.Это FreeBSD - не устраивает этот скрипт, напишите свой и выложите сообществу. Лично я и другие будут Вам благодарны.
Данный скрипт, лично меня устраивает на все 100%.
> Это FreeBSD - не устраивает этот скрипт, напишите свой и выложите сообществу. Лично я и другие будут Вам благодарны.
> Данный скрипт, лично меня устраивает на все 100%.Лично Вас устраивает - хорошо, однако кто-то будет следовать этой Вашей заметке, поэтому чем более "архитектурно правильной" она будет, тем лучше.
Ваш скрипт тем и плох, что с точки зрения "правильности" он не соответствует принципам старт-стоповых скриптов FreeBSD, подробно изложенным в man rc.
Я бы предложил такой минимальный вариант (/usr/local/etc/rc.d/vboxvm):
----
#!/bin/sh# PROVIDE: vboxvm
# REQUIRE: LOGIN. /etc/rc.subr
name="vboxvm"
rcvar=`set_rcvar`load_rc_config $name
: ${vboxvm_enable="NO"}
start_cmd=${name}_start
stop_cmd=${name}_stopvboxvm_start() {
su -l vbox -c '/usr/local/bin/VBoxHeadless --startvm ...'
}vboxvm_stop() {
su -l vbox -c '/usr/local/bin/VBoxManage controlvm <vm> poweroff ...'
}run_rc_command "$1"
----Внесите необходимые изменения самостоятельно.
В /etc/rc.conf при этом можно регулировать запуск скрипта при помощи переменной vboxvm_enable="YES" или vboxvm_enable="NO".
Удачи!
Спасибо за предложенный вариант, добавлю к себе в заметку :)
А можно предусмотреть вариант, когда запускают несколько виртуалок?
Да и стартовых сетевых скриптов не видно.
Как будем присваивать/отнимать виртуалке IP? как будем обеспечивать роутинг между реальной и виртуальными системами?
Большое спасибо за проделанную работу. Не обращайте внимания на неконструктивную критику.
Почему NLS и pulseaudio не подключается?
поставьте нужные галочки при сборке VirtualBox
А как связать виртуальную машинку с локальной сетью?
Подскажите пожалуйста, если у меня ОС хоста freebsd 12.2. Вы пишите: "9. Подключаемся к VirtualBox с помощью любого VNC клиента. (порт 2222, пароль 1234567890)
Как? распишите будьте добры (я новичок)