VirtualBox - бесплатная виртуальная машина


Виртуальные машины необходимы для тех людей, которые используют на одном компьютере несколько операционных систем. Например: Windows и Linux. Нет ничего удобнее, чем просто переключиться на всегда готовую ОС, запущенную на виртуалке.

Любые действия, проведенные с операционной системой под виртуалкой, не повлекут за собой ни каких последствий! Что бы ни делай, какой сомнительной деятельностью ни занимайся, ось возвращается в работоспособное приложение парой кликов мыши – достаточно лишь выбрать нужный снимок системы (snapshot). Это мощнейшее средство для создания в виртуальных условиях сетевой инфраструктуры любой сложности, с нужным количеством хостов на различных системах. Провозившись немного, можно получить платформу для различных работ. Например, самому разобрать сетевой демон, разобраться с настройкой сети или подготовиться к экзамену.


Что можно виртуализировать
Изначально разработка была ориентирована на запуск только Windows и Linux, а уже со временем научилась запускать системы, такие как Solaris, OpenSolaris, и OpenBSD. После разработка стала поддерживать все аппаратные технологии виртуализации, которыми снабжаются современные процессоры. Таким образом, VirtualBox стал продуктом возможным для использования. Теперь же есть версии VirtualBox для Windows, Linux, Solaris/OpenSolaris/MacOS X.

Запустить ОС под VirtualBox очень просто. А в случае возникновения вопросов в соседнем окне можно найти подсказку (почитать мануал).

Интерфейс программы Virtual Box очень прост. Работа программы начинается с нажатия кнопки "Создать", с помощью которой и создается новая виртуальная машина. В ходе работы мастера необходимо выполнить несколько этапов:

  • выбрать тип операционной системы и название виртуальной машины;
  • указать размер оперативной памяти, выделенной гостевой ОС;
  • создать новый или использовать уже имеющийся виртуальный жесткий диск.


При выборе диска необходимо выбрать тип диска:

  • статический - который сразу займет все выделенное ему место;
  • динамический - файл, которого будет расширяться по мере необходимости.


После выбора диска можно переходить в настройки и устанавливать различные параметры виртуальной машины.
Сначала примонтируем в качестве привода ISO-образ с дистрибутивом (или просто предоставить в распоряжение свой CD/DVD-драйв), после чего нажимаем кнопку "Старт" и приступаем к установке.

Работа на виртуалке представляет собой работу обычного компьютера, который теперь работает внутри стандартного окна системы. А работа гостевой системы напоминает работу операционки, установленной на компьютере. VirtualBox поддерживает виртуализацию аудиоустройств. Еще программа реализует виртуальный USB-контроллер, позволяющий подключить произвольное USB-устройство к виртуальной машине, без необходимости устанавливать драйвера на машину-хост. Рекомендуется использовать систему снепшотов - систему сохраненных состояний виртуальной машины. К любому из таких снепшотов можно быстро произвести откат из любого состояния гостевой системы.


Настройки сетевых интерфейсов
Для каждой виртуальной машины может быть установлено до четырех виртуальных интерфейсов, которые могут работать в разных режимах. Режим, в котором интерфейс будет функционировать, выбирается в свойствах виртуальной машины из следующих вариантов:

  • Not attached (Не подключен);
  • Network Address Translation (NAT);
  • Bridged networking (Сетевой мост);
  • Internal networking (Внутренняя сеть);
  • Host-only networking (Виртуальная сеть хоста).


Network Address Translation. По умолчанию, виртуальные сетевые адаптеры работают в режиме - NAT. Этот режим идеально подходит для того, чтобы предоставить гостевой операционной системе простейший доступ в интернет. Однако отсутствие реального IP-адреса сводит на нет полезность такого режима. Поэтому лучше использовать "Сетевой мост".

Bridged networking. Виртуальный сетевой адаптер получает точно такой же доступ в сеть, как и сетевой адаптер машины-хост.

Internal networking. Режим "Внутренняя сеть" отлично подходит для локальных экспериментов, когда виртуальные машины нужно связать в локальную сеть, не предоставляя им доступ наружу и к машине-хосту.

Host-only networking. Режим "Виртуальная сеть хоста" включает во "Внутреннюю сеть" машину-хост.


Удаленное подключение к виртуальной машине
У VirtualBox есть полезная функция - это возможность удаленного подключения к виртуальным машинам по стандартному протоколу RPD (вернее, его модифицированным версиям - VRDP, VirtualBox Remote Desktop Protocol). Для подключения используются стандартные клиенты:

  • Mstsc - виндовая утилита;
  • Rdesktop - никсовый клиент.


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

В разделе "Удаленный дисплей" можно активировать опцию "Включить VRDP-сервер". Однако, для каждой конкретной виртуальной машины необходимо указать свой уникальный порт, иначе одновременно работать с несколькими виртуалками не получится.

Стандартный виндовый клиент можно запустить по команде

  • mstsc

или найти его через

  • меню "Пуск" - "Стандартные" - "Подключение к удаленному рабочему столу"


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

Под никсами выполнить подключение не менее просто через rdesktop, который в любом современном дистрибутиве установлен по умолчанию:

  • rdesktop host_system_ip:port


При настройках авторизации необходимо, либо:

  • полностью отключить процедуру аутентификации, но в этом случае доступ к виртуалке получит любой желающий;
  • выбрать авторизацию через аккаунты хостовой системы или аккаунты гостевой системы. Для того чтобы данные было невозможно отснифать, любая RPD-сессия шифруется с помощью симметричного RC4 алгоритма с 128-битным ключом, который меняется каждые 4096 отправленных пакетов.


Дополнения гостевой системы
Недостатком в использовании виртуальных машин является "захват" ими клавиатуры и мышки, которые работают либо в гостевой ОС либо в хостовой. Освободить захваченные виртуалкой манипуляторы можно специально назначенной клавишей "Host Key" (правый <Ctrl> по умолчанию). Многократные переключения, особенно в случае использования нескольких виртуальных машин, начинают выводить из себя уже через несколько минут. Чтобы подобное не произошло, рекомендуется в каждой гостевой ОС установить так называемые Guest Additions. После этого граница между окном с гостевой ОС и хостовой системой становится прозрачной – ничего не захватывается, а буфер обмена становится общим.

Чтобы установить Guest Additions в Windows, надо лишь в меню запущенной виртуальной машины выбрать

  • "Устройства" - "Установить Дополнения гостевой ОС"


В систему примонтируется виртуальный CD, с которого быстренько и устанавливается все необходимое. В случае с никсами, официально поддерживаются дистрибутивы Fedora Core, Redhat Enterprise Linux, (open)SUSE, Ubuntu. Однако в действительности дополнения устанавливаются и на многие другие туксы.

Перед установкой настоятельно рекомендуется установить фреймворк DKMS (Dynamic Kernel Module Support). Под Ubuntu это делается с помощью команды:

  • sudo apt-get install dkms


Далее монтируем образ

  • VBoxGuestAdditions.iso


в качестве виртуального CD-драйва, переходим в эту директорию и под рутом отдаем команду:

  • sh ./VBoxLinuxAdditions-x86.run


Чтобы перекомпилировать модули ядра на гостевой машине, делаем:

  • /etc/init.d/vboxadd setup


После компиляции остается перегрузить гостевую машину и убедиться, что все новые модули нормально работают.


Режим Seamless windows
Если включить опцию, то окна виртуальной машины будут отображаться, как и окна обычной хостовой ОС. В основную систему они переносятся одним нажатием клавиши. Таскбар гостевой ОС при этом отображается рядом с панелью задач привычной хостовой системой.

Чтобы включить режим "Seamless", необходимо нажать на "Host key" вместе с "L", после чего размер виртуалки будет выставлен в соответствии с расширением экрана, окна перенесутся в хостовую машину, а фон виртуальной машины будет вырезан. Для возвращения в обычный режим используется та же комбинация клавиш.

Функция довольно специфичная, поэтому работает пока только для гостевых ОС на Windows, а также Solaris/OpenSolaris с сервером X.org старше версии 1.3.


Опция Shared Folders
Shared Folders или общие папки. Позволяет физически не расшаривать ресурсы, но примонтировать их в гостевых ОС, как если бы они были доступны по сети. Для каждой конкретной виртуальной машины такие папки настраиваются в отдельности. Т.е каждая гостевая машина будет видеть только то, что ей полагается. Реализуется это с помощью специально запущенной службы на хостовой системе и файлового драйвера на гостевых ОС.

Сделать такую расшаренную папку на уже запущенной виртуалке можно следующим образом:

  • Выбираем меню "Устройства" - "Общие папки";
  • Выбираем нужные каталоги основной системы и задаем им сетевое имя и уровень доступа (полный или только для чтения).


Все. Теперь можно примонтировать их под виртуалкой. Под Windows сетевой диск подключается с помощью команды:

  • net use x: \\vboxsvr\sharename

где x: - буква для сетевого диска
vboxsvr - фиксированное имя, обозначающее хост-машину
sharename - название папки, которое ты указал в момент создания общей папки


Под Linux'ом все то же самое выполняется командой:

  • mount -t vboxsf [-o OPTIONS] sharename mountpoint


Поддержка 3D в гостевых ОС
Поддержка 3D. Благодаря этой новой функции, программе не приходится больше эмулировать 3D-ускорение внутри виртуальной машины (что дико медленно). Вместо этого VirtualBox использует графический процесс хостовой машины, причем не важно, будь та на Windows, Linux, Mac, Solaris. Quake3 или эффекты Compiz'а под линуксом на виртуальной машине - теперь вполне нормальное явление. Разработчикам удалось достичь подобного результата за счет дополнительного 3D-драйвера, который устанавливается вместе с Guest Additions в гостевую ОС и выполняет роль своеобразного посредника. Когда какое-то приложение в гостевой системе пытается воспользоваться аппаратным ускорением 3D через интерфейсы OpenGl, соответствующие вызовы передаются на хостовую систему по организованному VirtualBox'ом туннелю, где они успешно и выполняются.

Данная функция, по умолчанию, в настройках виртуальной машины отключена. На текущий момент поддерживается только OpenGL-ускорение, а Direct3D разработчики обещают уже в будущих релизах.


Управляем VB через консоль
Любые действия можно выполнить через консольную утилиту администрирования

  • VBoxManage.exe

и использовать в своих сценариях.

Например. Введя команду

  • "VBoxManage list vms"

можно получить в консоли список всех существующих виртуальных машин, их имена и идентификаторы UUID:

  • c:\Program Files\Sun\xVM VirtualBox>VBoxManage.exe list vms
    VirtualBox Command Line Management Interface Version 2.2.0
    (C) 2005-2009 Sun Microsystems, Inc.
    All rights reserved.

  • "w7" {7f5e06fb-fee2-4984-af22-a113bf67e646}
    "xp" {778f2a40-dce8-4519-97fd-9c4c0d6797c4}
    "ub" {afc68d97-3883-48c1-8e1f-4fae39dc2d6c}


Для запуска одной из них необходимо отдать соответствующую команду, указав имя нужной виртуалки:

  • "VBoxManage.exe startvm w7"


Другими словами, через эту консольную утилиту можно сделать абсолютно все.

Еще больше интеграции c VirtualBox можно достичь с помощью открытого API программы. Благодаря вызовам, хорошо документированных в SDK, разработчик получает полный контроль над движком виртуализации. К примеру. Когда разработчик воспользовался открытым API, стоит привести утилиту BoxVmService.exe, цель которой - позволить администратору грамотно запустить VirtualBox в виде Windows-сервиса.


На последок
Виртуальные машины можно запустить на другом компьютере. Для этого нужно экспортировать конфигурацию в файл специального формата OVF (открытый формат виртуализации):

  • Выбираем меню "Файл" - "Экспорт конфигурации"


P.S.: VirtualBox поддерживает образы жестких дисков VMDK (VMware) и VHD (Microsoft Virtual PC).
VirtualBox является абсолютно бесплатной программой.