понедельник, Апрель 02, 2007

Эмулятор VirtualBox: работа и впечатления

Для того, чтобы запускать другие операционные системы внутри уже установленной, есть множество программ-эмуляторов. Так исторически сложилось, что автор этих строк сильно прикипел к QEMU: намучавшись с VMware, устав от закидонов WINE и самой медленной черепахи во Вселенной имени Win4Lin. Но вот появился новый эмулятор - VirtualBox, заманивающий красочным графическим интерфейсом и высокой скоростью эмуляции. Скачав пакет для своей текущей версии Дебиана отсюда, можно совершенно бесплатно (для персонального использования) посмотреть на это чудо.


Установка
Пакет VirtualBox_1.3.6_Debian_sarge_i386.deb при установке потянул за собой libxalan18 и libxerces25 суммарным объёмом на 7 Мб. К тому же потребовал заголовков ядра - при установке собирается ускоряющий модуль.


Установка прошла гладко, при этом была создана новая группа vboxusers.

Creating group 'vboxusers'. VM users must be member of that group!
Собственно, после этого следует добавить своего пользователя в эту группу:
sudo gpasswd -a beast vboxusers
Перелогиниваемся в систему - вот и всё. Теперь, если посмотреть вывод lsmod, можно увидеть там модуль нового эмулятора.
vboxdrv 28420 0
Да, kqemu посолиднее будет :-) Кстати, несколько забегая вперёд, если у вас при этом загружен kqemu, то ничего страшного не произойдёт: оба эмулятора могут работать вместе одновременно, в любых режимах и с любыми ОС внутри. Соседствуют мирно, работают без нареканий на общее благо простого линуксоида.


Несколько слов о VirtualBox
Как говорится на официальном сайте, VirtualBox основан на QEMU и использует некоторые его наработки. При этом поддерживаются возможности новых процессоров, обладающих аппаратной виртуализацией - но это не мешает использовать эмулятор и на обычных процессорах.


VirtualBox в работе
Довольно умных фраз о тонкостях виртуализации: самое время запалить что-нибудь интересное внутри этого ящика. Запускаем его, набирая в консольке
VirtualBox
и перед нами должно появиться графическое окошко. Интерфейс его очевиден - кнопки с простыми названиями типа New и Start в пояснениях не нуждаются (особенно после QEMU - это просто детский сад). Поэтому сходу создаём новую виртуальную машину:



Программа будет выдавать окошки, в которых графическим способом придётся задавать параметры будущей виртуальной машины. Сначала это развлекает, но потом, кстати, начинает утомлять: если мне надо быстренько запалить Кноппикс, приходится тыкать по всем кнопкам сначала - в QEMU и bash_history всё куда быстрее...
Одна вещь в VirtualBox радует: это динамически задаваемый размер виртуального жёсткого диска. Задаём начальный размер, и он будет увеличиваться по мере надобности.



Все настройки сделаны, теперь жмём Start и пробуем установить внутри, например, свой любимый дистрибутив.



Особенности работы с VirtualBox
Тем, кто долго работал с QEMU, многое в VirtualBox будет понятно, но есть и существенные отличия. Если ткнуть в "экран" виртуальной машины, клавиатура и мышь подключаются к гостевой ОС. При этом для выхода из режима гостевой ОС нужно нажать на правый CTRL, а не на ALT+SHIFT по привычке. Кроме того, для перехода на другую раскладку в гостевой ОС нажимаем комбинацию клавиш хост-системы. Мелочь, а неприятно оказаться отрезанным от своей родной системы - и справку не откроешь...

Кроме того, есть глюки с полноэкранным режимом: однажды не удалось переключиться обратно после того, как в полноэкранном режиме я попытался сделать скриншота в гимпе из хост-системы. В QEMU это проходит без вопросов, а тут не смог переключиться обратно - пришлось сбрасывать иксы.
В полноэкранном режиме VirtualBox не переключает экран в более низкое разрение, как при использовании SDL, а просто выводит на чёрном поле экран гостевой ОС, как mplayer с видеовыводом x11. При этом графический интерфейс гостьОС начинает ощутимо тормозить.
Есть у VirtualBox и консольный интерфейс, использующий SDL - как QEMU. Но синтаксис команд, несколько скудно описанный в справочнике, довольно замороченный. И быструю справку по нему не получить: только в графическом режиме.

Загрузка и выгрузка ядерного модуля эмулятора
Если VirtualBox используется на машине, работающей в режиме 24/7, то наличие в памяти ядерного модуля может быть нежелательным по разным причинам. Если выгрузка проблем не представляет:
sudo rmmod vboxdrv
то загрузка модуля имеет особенности.
Для загрузки и приведения в рабочее состояние модуля для VirtualBox нужно не только загрузить его, но и дать полные права файлу-устройству:
sudo modprobe vboxdrv
sudo chmod 777 /dev/vboxdrv
иначе будете получать при запуске эмулятора следующую ошибку:
/dev/vboxdrv not writable for some reason. If you recently added the current
user to the vboxusers group then you have to logout and re-login to take the
change effect.
После этого ядерный модуль заработает в штатном режиме. Опять-таки, в отличие от QEMU, нельзя запустить VirtualBox без ускорителя.


Скорость эмуляции VirtualBox
Эмулятор очень шустрый, особенно при операциях с графикой: графический интерфейс гостьОС совершенно не тормозит в оконном режиме. Скорость работы как с Линуксом (на примере Кноппикса), так и со ЗломХП примерно такая же, как и в QEMU. Только графика отзывчивее. Кроме того, при работе эмулятора происходит постоянная загрузка процессора под 100% - новый QEMU в этом плане куда экономнее.


Точность эмуляции VirtualBox
Скорость - это хорошо, но хотелось бы ещё и точности эмуляции. Под этим подразумевается сходное поведение гостьОС внутри эмулятора и на реальном железе.
Линуксы (Кноппикс и Дебиан) и BSD-системы (Frenzy) работали нормально, быстро и без глюков. То ли дело ЗлоХП - эмуляция ЗлоСистем всегда праздник. Рядовая ситуация - отмонтирование и выброс CD-ROM в эмуляторе приводит к мгновенной перезагрузке ЗлаХП. Запуск некоторых приложений вываливает ЗлоХП в синий экран смерти, после чего при запуске вылезает из гроба scandisk и начинает долго и придирчиво латать гениальное патентованное изобретение Майкрософт - файловую систему FAT32. Иногда после таких сбоев вылезает окно "Система восстановлена после серьёзного сбоя" и просит отправить анонимный донос в ФБР сообщение об ошибке разработчикам.
Попытка запуска внутри VirtualBox BeOS и Haiku приводит к одному результату: эти ОС вываливаются в kernel panic. Хотя Haiku в QEMU идёт без проблем.


Выводы
Некоторое время использования VirtualBox позволяет поделиться следующими впечатлениями.

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

Что НЕ понравилось
  • глюки полноэкранного режима - определённо следует дорабатывать;
  • консольный режим не проработан: нельзя получить быструю справку по ключам эмулятора, нельзя указать много параметров (как в QEMU);
  • не может работать без модуля виртуализации - не всегда хочется, чтобы в памяти болтался сомнительного содержания ядерный модуль;
  • документация - только в хелпе графического интерфейса, никаких манов;
  • довольно посредственная точность эмуляции, особенно экзотических и альтернативных ОС.
В целом, можно сказать: хороший и быстрый эмулятор для начинающих виртуализаторов без особых претензий и не для частого использования.

Копируете статью - поставьте ссылку на оригинал!

24 комментариев:

Максим комментирует...

В версии 1.3.8 многие ошибки были исправлены.

virens комментирует...

2 Максим
В версии 1.3.8 многие ошибки были исправлены.
Спасибо за информацию, с интересом почитаю их changelog. Попробую, но и эта версия очень даже неплоха.

ПИнеу комментирует...

для полноты впечатления не хватает описания работы с НЖМД и встроенного RDP...

Интересная особенность VirtualBox умеет изображать iSCSI диски для гостей как локальные - интересно было бы почитать, т.к. самому под ЗлоХП создать iSCSI-диск неудалось - нету инструментария...

jmv комментирует...

Для ЗлаХР есть специальные гостевые драйверы экрана и мыши. Сильно облегачают работу -- курсор хост-системы действует и в гостевой, не надо нажимать специальную клавиш или кликать мышью для переключения туда-сюда.

Лично меня напрягает отсутствие общего буфера обмена.

Глюки встречал только со звуком (в некоторых приложениях не работает).

virens комментирует...

2 ПИнеу
для полноты впечатления не хватает описания работы с НЖМД и встроенного RDP...
Подключать свой винчестер нативно к эмулятору не решился - данные на нём мне дороги, как память :-)

Интересная особенность VirtualBox умеет изображать iSCSI диски для гостей как локальные
Да, интересная особенность. Но так как я не работал с такими устройствами, поэтому ничего и не написал. Но мысль интересна, спасибо.

2 jmv
Для ЗлаХР есть специальные гостевые драйверы экрана и мыши. Сильно облегачают работу -- курсор хост-системы действует и в гостевой
Большое спасибо - надо будет поискать, а то в самом деле переключаться не очень удобно.

Лично меня напрягает отсутствие общего буфера обмена.
Для меня это всегда было монтирование гостьФС и качание туда/оттуда файлов :-)

Комментаторам спасибо, как всегда, узнаю много нового и интересного. Если что ещё вспомните - не стесняйтесь!

jmv комментирует...

Драйверы интеграции устанавливаются в VirtualBox через меню. Что-то типа "Enable Integration"

Анонимный комментирует...

Интересная заметка.

Пользуюсь вызвавшим у автора некие затруднения (интересно было бы их послушать) VMware Player. Работает очень быстро (% на 70 быстрее QEMU+kqemu) и стабильно. Зло2k летает, периферия (сканер, принтер) подключается влет. В общем, доволен как слон: из связки VMware Player & VMTools (взятого из VMware Server) получилась отличная виртуалка и совершенно даром ^_^

Система: Debian GNU/Linux 4.0 (etch) i386, срез от 30 янв 2007.

Игорь комментирует...

Минус VirtualBox - глюки при работе с OS/2 в виде eComStation.

Анонимный комментирует...

Как присвоить виртуальной системе уникальный IP?

Andrey комментирует...

В VirtualBox понравилась бесплатность и система управления виртуальными дисками. По скорости - виста работала достсточно шустро. Вывод звука в VirtualBox сделан через OSS - старье, а глюки вполть то убивания процесса.
Для меня лучший выбор это VMware. Посмотрим, во что разовьется VirtualBox.

Настроения комментирует...

USB нормально работает?
В упор не могу заставить рабтать VirtualBox с usb ;(

etch + vb1.3.8....

Настроения комментирует...

пофиксил трабла снята
осталось заставить нормальный IP в гостевую прикрутить

virens комментирует...

У меня с USB проблем не было: только до старта ОС врубил флешку и указал эмулятору использовать её. С qemu всё немного сложнее.

ai комментирует...

патентованное изобретение Майкрософт - файловую систему FAT32
Microsoft уже давно релизнул NTFS. Рекомендую. ;)

Барра Белый Гепард комментирует...

Авторам многих комментариев от души советую RTFM.
Во первых, VirtualBox существует в двух видах: open-source и closed-source. Обе бесплатны для некоммерческого использования. Первая отличается в первую очередь неподдерживанием USB. Остальные отличия касаются сети.
Во вторых, сейчас у меня стоит версия 1ю5ю0, closedsource. В ней: звук идёт через ALSA, в полноэкранном режиме Зло шустрее, чем в оконном, есть вообще отпадный режим интеграции дисплеев. (Отпадают начинающие линухоиды при виде этого).
В третьих. Работа с железом. Partition Magic, ScanDisk и IsoBuster превосходно работали из-под Зла с реальным винтом и компактами. Утилиты по шифрованию всего тома - тоже.
В четвёртых, ни при изъятии компакта, ни при чём бы то ни было ещё ЗлоПыХалка не вылетала, кроме одного случая:
Замеченный глюк: 100% тормоз всея системы при попытке запустить VirtualBox одновременно с OpenOffic. Решилось всё это дело подключением swap раздела. Обычно я его не пользую. А, ещё вирус Касперского не идёт в резидентном режиме.

Чебурашка комментирует...

несколько слов о VirtualBox. Сама виртуальная машина в целом не плохая если настраивать ее локально, она показывает неплохую производительность, НО если настраивать сеть на виртуальной машине то можно сказать что VirtualBox самое настоящее полное ГОВНО ГОВНО и еще ращ ГОВНО. Придумать такой геморой при настройки сети мог только очени ГЕНИАЛЬНЫЙ программист. Вот как настроить сеть а ??? Известно что надо создать Хост подключение между виртуальной машиной и реальной (физической), но всеровно не получается выйти в ни в internet ни в ithernet. Кто-нибудь подскажите как настроить нормально сеть так чтобы оно работало нормально и без глюков???...

virens комментирует...

2 Чебурашка комментирует...

несколько слов о VirtualBox. Сама виртуальная машина в целом не плохая если настраивать ее локально, она показывает неплохую производительность,
Между прочим, в ряде случаев быстрее QEMU, особенно при эмуляции Зла.

НО если настраивать сеть на виртуальной машине то можно сказать что VirtualBox самое настоящее полное
Ну зачем же так... Проект довольно молодой, так что не стоит сильно с навозом смешивать. В QEMU тоже сеть в некоторых версиях не легко поднимается.

Придумать такой геморой при настройки сети мог только очени ГЕНИАЛЬНЫЙ программист.
Не знаю, как там с сетью, а консольный интерфейс точно не удался.

Кто-нибудь подскажите как настроить нормально сеть так чтобы оно работало нормально и без глюков?
Увы, я это делать не пробовал - в QEMU сеть настраивается нетрудно, а здесь просто руки до этого не дошли :-)

Антон Баранов комментирует...

У меня при переключении в полноэкранный режим по какой-то причине, окно с виртуальной ОС остается тех же размеров, что и было, а по краям экран просто становится чернымю. ;-(

Сергей Кохан комментирует...

Есть очень актуальный вопрос - связь с реальной машиной!
Поскольку монтирование аналогично qemu не есть доступно из-за того что сам образ находится на смонтированном разделе ntfs.

Анонимный комментирует...

Проблемы как минимум половины здесь отписавшихся с сабжем проистекают от недостаточного знания о нем. Советую внимательнее изучить все опции и почитать справку (локальную идет вместе с эмулятором). Во-первых после установки системы ставится пакет от авторов эмулятора для гостевой системы (и для винды и для линуксов) ускоряет графику, полностью интегрируется клава и мышь (никак переключатся не надо), в полседних версиях реализован буфер обмена. Сеть работает сразу в режиме NAT и инет тоже , можено настроить бридж (как ищите в инете много инфы) есть внутреняя сеть между гостевыми системами. Короче очень хорошая система, скорость отличная у меня тест в матлабе выполняется если и медленее чем в нативной винде то на какие-т проценты. Реализован RDP сервер...короче отличный эмулятор с удобным интерфейсом. проблемы есть но судя по скорости разработки они буду быстро решатся

Анонимный комментирует...

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

virens комментирует...

2 Сергей Кохан пишет...
Есть очень актуальный вопрос - связь с реальной машиной!
В старых машинах VirtualBOX работало криво, сейчас, говорят, поправили. Напишу позже.

2 Анонимный
да в догонку, связь с реальной машиной вообще элементарна - есть управляемые в последних версиях
Я немного отстал от жизни, т.к. пользую QEMU. Но надо будет пост про это забабахать. Спасибо за развёрнутый комментарий.

izverg13 комментирует...

С настройкой сети и правда напряги :) В описываемой в этой заметке версии сеть отлично работала в режиме NAT сразу же после установки, в других режимах - с хост интерфейсом например, так и не удалось запустить. Сейчас вышла версия 2.1.0, в ней сеть уже кроме NAT работает и с хост интерфесом, причем настраивать ничего не нужно, в настройках надо только выбрать сетевую карту через которую будет связь идти. Но в виртуальной машине устанавливается своя собственная виртуальная сетевуха (там можно выбрать из 4 разных), засада в том что мне надо постерировать вайфай карточку, а в виртаулбоксе нету поддержки беспродной сети.
Виртуалбоксом часто пользуюсь.

Pimp комментирует...

Рискуя получить порцию тухлых яиц и помидоров, всё же вставлю свои пять копеек.
Научен опытом, что если в статье промелькивают всевозможные "злаXP" и "мастдаи", то мы с автором, как правило, разойдёмся в результатах.
Ну вот смотрите: статья опубликована в 2007 году. Именно тогда у нас в офисе встала задача применения виртуальных машин, в основном для проверки софта на разных версиях Windows. Надо было сделать быстро и как можно проще. Выбор пал на VMWare. В качестве хост-системы Windows ну никак не подходила, потому что VMWare на *nix была реально быстрее (ну, процентов на 15% точно) и реально тормозила в момент переключения из vm в хост.
Был взят обыкновенный дистр. Mandriva 2007.1 и установлен VMWare Server 1.x
Так вот, данное решение живо до сих пор. И скажу вам по правде, вот этих слов - "намучавшись с VMware", от автора этой статьи (который, судя по всему, по сравнению со мной настоящий it-спец, ибо я в *nix полнейший новичок) я не ожидал. Почему? Тут обсуждаются плюсы и минусы Virtual Box с 2007-го, так вот:

1) "Одна вещь в VirtualBox радует: это динамически задаваемый размер виртуального жёсткого диска" - ещё в 2005-м (могу ошибаться) эту фичу активно пользовали VMware, если не раньше.

2) "для перехода на другую раскладку в гостевой ОС нажимаем комбинацию клавиш хост-системы" - Творец всемогущий! Без комментариев.

3) "при работе эмулятора происходит постоянная загрузка процессора под 100%" - vm не только используется для постоянной работы в "гостях", но чаще для тестов. А такая "фича" озадачивает.

Дальше просто праздник:

4) "То ли дело ЗлоХП - эмуляция ЗлоСистем всегда праздник" - а я думал, эти времена прошли.

5) "Рядовая ситуация - отмонтирование и выброс CD-ROM в эмуляторе приводит к мгновенной перезагрузке ЗлаХП" - это точно не в 2001-м написано?

6) "Запуск некоторых приложений вываливает ЗлоХП в синий экран смерти, после чего при запуске вылезает из гроба scandisk и начинает долго и придирчиво латать гениальное патентованное изобретение Майкрософт - файловую систему FAT32." - на практике (и это понятно и такому прикладнику, как я), убивают виртуальную машину только приложения, что лезут на самый низкий уровень взаимодействия с железом. Но как правило, их запускать на vm редко когда нужно.
P.S. Не играйтесь со злом на fat32.
P.P.S. К вопросу надежности "виртуальных" данных на "виртуальном" диске. На VMWare такая возможность есть: отключить кеширование виртуального диска. Так вот: за два года, что я работал в vm (а я именно там работал, а не эксперименты делал), с таких дисков не исчезло ничего, даже когда хост-система рушилась или отрубалось питание. Хотя вру - в Опере кэш однажды рухнул. :-O

7) "хороший и быстрый эмулятор для начинающих виртуализаторов без особых претензий и не для частого использования" - соглашусь пожалуй. Думал "потискать" VB, но попридержу коней. Ибо использую vm часто.

8) "Пользуюсь вызвавшим у автора некие затруднения (интересно было бы их послушать) VMware Player. Работает очень быстро (% на 70 быстрее QEMU+kqemu) и стабильно. Зло2k летает, периферия (сканер, принтер) подключается влет. В общем, доволен как слон: из связки VMware Player & VMTools (взятого из VMware Server) получилась отличная виртуалка и совершенно даром ^_^" - жму руку! :-)

Коммент написан прям из этой самой "виртуальной" злой XP на VMWare, которую (если включить полноэкранный), не всякий виндузятник отличит от настоящей. ;-) Удачи!

Отправить комментарий