VirtualBox: Запуск образа для QEMU/KVM

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску

VirtualBox

Задача: есть образ виртуальной машины. (qemu, kvm). Нужно запускать его на хост-машине с VirtualBox. В качестве хост-машины убунту. ВиртуалБокс 4.1.12

# VBoxManage -v
4.1.12_Ubuntur77245

Этот документ является компоновкой из нескольких, потому возможны некоторые ошибки в именах машин и путям к образам. Иногда используются относительные пути, иногда абсолютные.

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

Cоздать виртуальную машину (xml)

Машина должнв быть зарегистрирована. Не вижу смысла создавать незарегистрированную машину.

VBoxManage createvm -name  CentOS-5.8_i386_PayPalLinux_09___VM_09  -register 
# VBoxManage createvm -name CentOS-5.8_i386_PayPalLinux_09___VM_09 -register 
Virtual machine 'CentOS-5.8_i386_PayPalLinux_09___VM_09' is created and registered.
UUID: c3afd038-b4cc-4152-acad-6332b761b7ea
Settings file: '/root/VirtualBox VMs/CentOS-5.8_i386_PayPalLinux_09___VM_09/CentOS-5.8_i386_PayPalLinux_09___VM_09.vbox'

потом можно посмотреть список:

#VBoxManage  list vms
"CentOS-5.8_i386_PayPalLinux_09___VM_09" {c3afd038-b4cc-4152-acad-6332b761b7ea}

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

VBoxManage showvminfo   CentOS-5.8_i386_PayPalLinux_09___VM_09 

Name:            CentOS-5.8_i386_PayPalLinux_09___VM_09
Guest OS:        Red Hat
UUID:            c3afd038-b4cc-4152-acad-6332b761b7ea
Config file:     /root/VirtualBox VMs/CentOS-5.8_i386_PayPalLinux_09___VM_09/CentOS-5.8_i386_PayPalLinux_09___VM_09.vbox
Snapshot folder: /root/VirtualBox VMs/CentOS-5.8_i386_PayPalLinux_09___VM_09/Snapshots
Log folder:      /root/VirtualBox VMs/CentOS-5.8_i386_PayPalLinux_09___VM_09/Logs
Hardware UUID:   c3afd038-b4cc-4152-acad-6332b761b7ea
<skipped>
Вывод поскипан, но обычно все что нужно можно найти.

создать .vdi диск для системы

Мне не нужно - конвертирую, как создавать - только пример. Описание конвертации ниже.

VBoxManage createvdi -filename "ubuntu-server.vdi" -size 5000

Добавить контроллер

VBoxManage storagectl ubuntu --name "IDE Controller" --add ide

Добавить диск (к контроллеру

	
VBoxManage storageattach CentOS-5.8_i386_PayPalLinux_09___VM_09 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/mmaxur/virtual/CentOS-5.8_i386_PayPalLinux_09___VM_09.img.vdi 


конвертация с raw (QEMU)

Конвертация тривиальна но нашел как это сделать я не сразу http://mydebianblog.blogspot.com/2010/05/img-qemu-virtualbox-vditool.html

VBoxManage convertdd CentOS-5.8_i386_PayPalLinux_09___VM_09.img.raw CentOS-5.8_i386_PayPalLinux_09___VM_09.img.vdi

Модификация ВМ

Указать тип системы, сеть, --vrde - для удаленного доступа.
в примерах обычно пишут так:

VBoxManage modifyvm CentOS-5.8_i386_PayPalLinux_09___VM_09 --ostype redhat --memory 1024 --vrde on

Но думаю это не совсем вероно. Следуует указать еще тип авторизации и порт (если ВМок больше чем 1 то это обязательно). Я использовал следующюю комманду:

VBoxManage modifyvm CentOS-5.8_i386_PayPalLinux_09___VM_09  --vrde on --vrdeauthtype null --vrdemulticon  off --vrdeport 5000

Сеть

NAT -  не совсем то что мне нужно, это только пример:
<PRE>
VBoxManage hostonlyif create ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0

Я использовал следующие комманды:
Создал Host-Only интерфейс:


потом указал что сеть хост-онли:

VBoxManage modifyvm CentOS-5.8_i386_PayPalLinux_09___VM_09 --nic1 hostonly --hostonlyadapter1 vboxnet0

Собственно, этого достаточно:

vboxnet0  Link encap:Ethernet  HWaddr 0a:00:27:00:00:00  
          inet addr:192.168.56.1  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:507 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:85774 (85.7 KB)

Старт ВМ

Простой неправильный пример - в этом случае вывод будет на монитор и в случае если это удаленный сервер - ничего не получится

VBoxManage startvm ubuntu 

Прааильный вариант - так:

VBoxManage startvm CentOS-5.8_i386_PayPalLinux_09___VM_09 --type headless

все параметы портов и рдп будут взяты из конфига ВМ (настроено выше)
Внимание:должны быть установлены екстеншены!!!

Установка дополнений

Скачать с сайта виртуалбокса, есть для всех не слишком старых версий. Установить так:

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.12-77245.vbox-extpack.tar.gz

После чего машина стартует нормально, и начинает слушать порт (5000 у меня)

 netstat  -ntpl | grep 5000
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      16029/VBoxHeadless

Импорт/Экспорт

	VBoxManage export ubuntu -o ubuntu.ova

сохраняем нашу систему как .ova

	VBoxManage import ubuntu.ova 

после чего можем её импортировать


Работа с госевой ОС

на этой стадии у меня загрузился мой образ, получил IP по DHCP и я могу получить доступ с хоста. Так же RDP на хост-машину на порт 5000 проброшен на ВМ. Но графика не работает (отсутвует драйвер видеокарты)

Графика

Для нормальной работы - доставить драйвер. Я делал это просто: скопировал iso с драйверами, запустил .run, дождался исполнения, перезагрузился.

scp VBoxGuestAdditions_4.1.12.iso root@192.168.56.101:

Здесь 192.168.56.101 это адрес ВМки

Проброс портов

Это пример, смысл мне пока что не сильно ясен, оставлдяю для дальнейшей доработки
Пробросили 24 порт гостевой машины на 4444 порт 127.0.0.1

VBoxManage modifyvm spite-windows --natpf1  "rule 3",tcp,127.0.0.1,4444,,24

Пропрос портов на ходу

VBoxManage controlvm ubuntu natpf1  "rule 3",tcp,127.0.0.1,4444,,24    

Shared Folder

VBoxManage sharedfolder add "spite-windows" --name "sharename" --hostpath "/home/vnaboychenko/gns"
Для windows 
в консоли net use Y:  \\vboxsvr\sharename
или делаем это с флагом –automount
VBoxManage sharedfolder add "spite-windows" --name "gns" --hostpath "/home/vnaboychenko/gns" -automount

тогда нам не придется монтировать её в системе.


Для гостевой Ubuntu Linux нужны пакеты:
<PRE>
virtualbox                                                        - x86 virtualization solution - base binaries 
virtualbox-guest-utils                                            - x86 virtualization solution - non-X11 guest utilities 
virtualbox-guest-x11                                              - x86 virtualization solution - X11 guest utilities 
virtualbox-qt                                                     - x86 virtualization solution - Qt based user interface

Для CentOS достаточно (по видимому) того что установлен VBoxManage sharedfolder add "ubuntu-guest" --name "sharedfolder" --hostpath "/home/vnaboychenko/gns" Делаем шаред фолдер для нашей системы

и с гостевой системы монтируем папку

mount.vboxsf sharedfolder /mnt/test

ссылки

(Если что то забыл. пишите - исправлю)