Отже, як завжди, почнемо з завдання: Встановити 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
побачимо секцію, де і прописалися наші зміни.
Створюємо віртуальний hdd під назвою vbhdd003 для віртуальної машини з ім'ям vbpc003 (імена можуть бути довільними):
VBoxManage createhd --filename vbhdd003 --size 61440 --remember
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
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. Качаємо. встановлюємо, запускаємо UltraVNC Viewer. В поле VNC Server вказуємо IP ПК, НА ЯКИЙ ВСТАНОВЛЮВАЛИ VIRTUALBOX і номер порту vnc (приклад: ПК_с_virtualbox: 3389). Тиснемо "Connect" і бачимо екран віртуальної ПК.
Так само буває необхідно автоматично запускати віртуальну машину після запуску ПК, на якому встановлено 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
Після її введення пауза на пару секунд і: