Виртуализация… виртуализация…
Сейчас все пытаются выжать из своих аппаратных ресурсов как можно больше. Иметь несколько отдельных компьютеров с различными ОС немного накладно и не все организации пойдут на это. Но выход есть, можно использовать виртуальные машины. И возможно, что многие используют для этих целей замечательный продукт от Sun «VirtualBox». Я уверен, что большинство для настройки используют GUI интерфейс, т.к. это очень наглядно и удобно. Но многие ли задумывались о возможности управления VirtualBox через консоль.
Была поставлена задача: На один сервер поставить две ОС (Ubuntu и Windows). При этом был работающий сервер под управлением Ubuntu 9.04 Server Edition. Поэтому было решено ставить Windows XP в качестве гостевой системы.
Но возникла проблема на Ubuntu НЕ УСТАНОВЛЕНА никакая графическая среда, т.е. там есть только голая консоль.
Итак, что у нас есть:
Скачиваем с официального сайта VirtualBox пакет для Ubuntu 9.04
После того, как скачали, выполняем комманду:
VirtualBox должен установится. Если возникла проблемы при установке пакета, изучите сообщение об ошибках. Возможно у вас не установлены необходимые пакеты. В моем случае у меня не был установлен пакет libxslt1.1, что моментально было исправлено командой
Добавляем себя в группу vboxusers
Для начала стоит отметить, что для управления виртуальными машинами через консоль используется одна команда VBoxManage (правда у неё очень много параметров).
Начнем.
Чтобы запустить виртуальную машину надо выполнить
Параметр --type vrdp нужен, чтобы подключиться к машине с помощью VRDP
Все, теперь осталось подключится к нашей машине, с помощью удаленного рабочего стола. Это можно сделать с помощью стандартных утилит: для windows это mstsc, для никсовых систем rdesktop.Т.к. у нас есть только консоль, то надо воспользоваться компьютером, имеющим графический рабочий стол.
Чтобы подключится, надо указывать IP хост машины и порт для данной виртуальной машины. В моем случае, я ничего не менял и использовал порт по умолчанию (3389). Чтобы изменить порт, выполните
Теперь у нас запущена виртуальная машина и мы к ней спокойно можем подключаться используя протокол VRDP. Я спокойно установил Window XP, находясь за своим рабочим компьютером.
P.S. Windows XP была нужна только по одной причине. В проекте нужно было использовать MS SQL Server.
Документация по VBoxManage
UPD: bsdemon предложил ещё один способ. Использовать libvirt
Сейчас все пытаются выжать из своих аппаратных ресурсов как можно больше. Иметь несколько отдельных компьютеров с различными ОС немного накладно и не все организации пойдут на это. Но выход есть, можно использовать виртуальные машины. И возможно, что многие используют для этих целей замечательный продукт от Sun «VirtualBox». Я уверен, что большинство для настройки используют GUI интерфейс, т.к. это очень наглядно и удобно. Но многие ли задумывались о возможности управления VirtualBox через консоль.
Была поставлена задача: На один сервер поставить две ОС (Ubuntu и Windows). При этом был работающий сервер под управлением Ubuntu 9.04 Server Edition. Поэтому было решено ставить Windows XP в качестве гостевой системы.
Но возникла проблема на Ubuntu НЕ УСТАНОВЛЕНА никакая графическая среда, т.е. там есть только голая консоль.
Итак, что у нас есть:
- Хост система: Ubuntu 9.04 Server Edition
- VirtualBox 2.2.2
- Гостевая система: Windows XP
Установка VirtualBox
Скачиваем с официального сайта VirtualBox пакет для Ubuntu 9.04
После того, как скачали, выполняем комманду:
dpkg -i virtualbox-2.2_2.2.2-46594_Ubuntu_jaunty_i386.deb
VirtualBox должен установится. Если возникла проблемы при установке пакета, изучите сообщение об ошибках. Возможно у вас не установлены необходимые пакеты. В моем случае у меня не был установлен пакет libxslt1.1, что моментально было исправлено командой
sudo apt-get install libxslt1.1
.Добавляем себя в группу vboxusers
sudo usermod -a -G vboxusers имя_пользователя
Создание виртуальной машины
Для начала стоит отметить, что для управления виртуальными машинами через консоль используется одна команда VBoxManage (правда у неё очень много параметров).
Начнем.
- Для начала создадим машину и сразу её зарегистрируем
VBoxManage createvm -name имя_виртуальной_машины -register
- Далее необходимо создать диск для машины
VBoxManage createhd --filename имя_диска --size размер_диска_в_мегабайтах
Существует возможность выбрать тип диска VDI (VirtualBox), VMDK (VMWare), VHD (Microsoft Virtual PC). По умолчанию, конечно же, VDI :).
- Делаем дополнительные настройки нашей виртуальной машины. Укажем:
- Тип гостевой ОС. Для получения списка поддерживаемых ОС выполните команду
VBoxManage list ostypes
- Размер выделяемой памяти
- Наименование главного диска
- Возможность использовать VRDP (VirtualBox Remote Desktop Protocol)
VBoxManage modifyvm имя_виртуальной_машины --ostype тип_ОС --memory размер_памяти_в_мегабайтах --hda имя_диска --vrdp on
- Тип гостевой ОС. Для получения списка поддерживаемых ОС выполните команду
- Подключим образ диска, с которого будем ставить Windows XP
- Зарегестрируем DVD с образом дистрибутива системы
VBoxManage openmedium путь_до_образа
- Вставим наш диск в виртуальный привод
VBoxManage modifyvm WindowsXP --dvd путь_до_образа
- Зарегестрируем DVD с образом дистрибутива системы
- Посмотрим на настройки нашей машины. Убеждаемся, что все нас устраивает и…
VBoxManage showvminfo имя_машины
… Запуск… Поехали
Чтобы запустить виртуальную машину надо выполнить
VBoxManage startvm имя_машины --type vrdp
Параметр --type vrdp нужен, чтобы подключиться к машине с помощью VRDP
Все, теперь осталось подключится к нашей машине, с помощью удаленного рабочего стола. Это можно сделать с помощью стандартных утилит: для windows это mstsc, для никсовых систем rdesktop.Т.к. у нас есть только консоль, то надо воспользоваться компьютером, имеющим графический рабочий стол.
Чтобы подключится, надо указывать IP хост машины и порт для данной виртуальной машины. В моем случае, я ничего не менял и использовал порт по умолчанию (3389). Чтобы изменить порт, выполните
VBoxManage --vrdpport порт
. Если у Вас установлено несколько виртуальных машин, то для того, чтобы подключаться к каждой их них, необходимо в настройках указать различные порты, например, для первой машины 3389, для второй 3390 и т.п.Вместо эпилога
Теперь у нас запущена виртуальная машина и мы к ней спокойно можем подключаться используя протокол VRDP. Я спокойно установил Window XP, находясь за своим рабочим компьютером.
P.S. Windows XP была нужна только по одной причине. В проекте нужно было использовать MS SQL Server.
Полезные ссылки:
Документация по VBoxManage
UPD: bsdemon предложил ещё один способ. Использовать libvirt