4.9 ANDY OS
Специализированный эмулятор для операционной системы Андроид.
Преимущества:
- Находится в свободном доступе в Интернете;
- Очень простой в использовании . Об этом говорит сайт https://intellect.icu . Отличается наличием интуитивно понятного функционала;
- Опции регулировки размера экрана;
- Параметры быстрой синхронизации с современными мобильными устройствами.
Недостатки:
- Можно использовать только для работы с продуктами под Андроид;
- Не все 3D игры поддерживаются в корректной форме;
- Возникают периодические зависания;
- Постоянное появление рекламных вставок;
- Некоторые версии содержат официально не заявленные функции и параметры, позволяющие распространению вредоносных компонентов.
Конечно, этот список не можно считать завершенными. Выше были перечисленные исключительно наиболее ходовые продукты и их базовые характеристики, из которых при желании можно выбрать что-то стоящее.
1. VirtualBox
VirtualBox — это универсальное программное обеспечение для виртуализации в Linux, которое поддерживает и другие операционные системы, в том числе Windows и MacOS. Вы можете установить сюда практически любую систему, кроме, конечно, систем, предназначенных для устройств на чипе ARM. Все установленные виртуальные машины хранятся в файлах, которые содержат образы дисков. Это позволяет их очень просто выполнить их резервное копирование или перенос на другой компьютер просто скопировав файл машины.
VirtualBox поддерживает как 32, так и 64 битные системы и вы можете установить не только Linux дистрибутив, но и Windows или даже MacOS. Все системы будут отлично работать. Во время создания виртуальной машины вы можете выбрать профиль гостевой ОС, для которого автоматически выставятся правильные параметры памяти, процессора и видеокарты.
Кроме непосредственно виртуализации, VirtualBox поддерживает и дополнительные функции, например, запись видео с экрана виртуальной машины, и создание снимков системы для быстрого восстановления и создание виртуальной сети между несколькими машинами. Кроме того, если установить дополнения гостевой ОС, то можно настроить общий буфер обмена между хостовой и гостевой системой, передавать между ними файлы или даже интегрировать окна программ гостевой системы в основную.
Можно сказать, что это лучшая виртуальная машина для Linux, она предлагает все необходимые возможности, и в то же время достаточно проста в использовании.
[править] Дополнительная информация
- Свободный QEMU — установка и первые впечатления — заметка в блоге «Записки дебианщика» (рус.)
- Документация пользователя эмулятора процессора QEMU (рус.)
- Hardware virtualization with QEMU (англ.)
- https://qemu-buch.de/ (нем.) и частично (англ.)
Сеть в QEMU:
- QEMU and TUN/TAP networking (англ.)
- QEMU — Debian — Linux — TUN/TAP — network bridge (англ.)
- qemu bridged to Ethernet (англ.)
- Setting up your own internal network w/ qemu. (англ.)
- How to use Network in QEMU (англ.)
- QEMU Networking (англ.)
Эмуляция различных архитектур:
- HPPAQEMU — HPPA Host and Target Support for QEMU (PA-RISC)
- Debian on an emulated ARM machine (англ.)
виртуализация , эмуляция , симуляция и контейнеризация : ОТЛИЧИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ
эмулятор операционной системы (computer Science) — функционирующее в некоторой целевой операционной системе и аппаратной платформе программное и/или аппаратное средство, предназначенное для исполнения программ, изготовленных в другой операционной системе или работающих на отличном от целевого аппаратном обеспечении, но позволяющее осуществлять те же самые операции в целевой среде, что и в имитируемой системе.
У процессов эмуляции и виртуализации очень много общего, но также присутствуют и заметные эксплуатационные различия.
Если клиенту необходимо работать с более старой операционной системой внутри современной технической архитектуры, он выберет исключительно вариант с эмуляцией.
В тоже время, все виртуализованные системы функционируют в независимости от используемого базового оснащения.
КАКАЯ МЕЖДУ НИМИ РАЗНИЦА?
Суть эмуляции заключается в том, что одна система технически может имитировать другую.
Пример – если структура ПО работает в системе А, но не в системе В, мы создаем внутри системы В эмуляцию работы системы А. Вследствие этого, ПО спокойно работает на эмуляцию системы А.
Данный пример можно перенести и на виртуализацию, которая, помимо системы А. разделена еще на 2 выделенных сервера (В и С).
Оба сервера являются независимыми техническими контейнерами, обладающими персонализированным доступом к программным ресурсам – ОЗУ, ЦП и хранилищам памяти – их можно свободно перезагрузить независимо друг от друга. Их «поведение» всецело идентично поведению настоящего программного оборудования.
Каждая технология имеет свои преимущества и недостатки.
Конвертация образа диска qemu-img convert
Для конвертации одного формата образа в другой используется опция convert:
qemu-img convert -c -f fmt -O out_fmt -o options fname out_fname
где:
-c — компрессия (сжатие) целевого диска. Компрессию поддерживают только и форматы.
-f fmt — формат исходного диска, в большинстве случаев хорошо определяется автоматически.
-O out_fmt — формат целевого диска
-o options — куча опций. Чтобы узнать, какие опции допустимы для данной конвертации можно ввести:
$ qemu-img convert -O qcow2 ca.img ca1.img -o ? Supported options: size Virtual disk size compat Compatibility level (0.10 or 1.1) backing_file File name of a base image backing_fmt Image format of the base image encryption Encrypt the image cluster_size qcow2 cluster size preallocation Preallocation mode (allowed values: off, metadata) lazy_refcounts Postpone refcount updates
Настройка таймеров.
Ознакомительный материал:
- https://habr.com/ru/company/intel/blog/260113/
- https://habr.com/ru/company/intel/blog/260119/
, что для Windows-гостей оптимален таймер hypervclock, но в ряде публикаций в целях улучшения производительности, Windows 10 в особенности, настоятельно рекомендуется использовать tsc localtime и отключить «лишние» таймеры гипервизора, которые используются для калибровки.
По умолчанию блок с таймерами имеет подобный вид:
Настройка.
Вывести доступные для использования системные таймеры:
В выводе будет подобное: tsc hpet acpi_pm
Проверить какой таймер используется хостом:
В выводе будет tsc.
Настроенный вариант имеет следующий вид:
Добавлены следующие строки:
timer name = «kvmclock» present = «no» — отключение таймера гипервизора kvm.
timer name = «hypervclock» present = «no» — отключение таймера hypervclock, но можно оставить включённым. В этом случае таймер будет использоваться для калибровки.
timer name = «tsc» present = «yes» mode = «native» — использовать проброс таймера tsc.
По таймерам почти всё, остаётся ещё один момент.
В блок <cpu></cpu> необходимо добавить строку feature policy = «require» name = «invtsc»:
Архитектура QEMU
Рассмотрим, как QEMU обеспечивает эмуляцию. В этом разделе описываются два режима работы QEMU, а также некоторые интересные аспекты динамического транслятора QEMU.
Основные операции QEMU
QEMU поддерживает два режима эмуляции: пользовательский режим и системный режим . Пользовательский режим эмуляции позволяет процессу, созданному на одном процессоре, работать на другом (выполняется динамический перевод инструкций для принимающего процессора и конвертация системных вызовов Linux). Системный режим эмуляции позволяет эмулировать систему целиком, включая процессор и разнообразную периферию.
При эмуляции кода для x86 на хост-системе с архитектурой x86 можно достичь эффективности, близкой к родной, с помощью так называемого акселератора QEMU. Он позволяет исполнять эмулируемый код непосредственно на центральном процессоре хоста (на Linux через модуль ядра).
Но что делает QEMU действительно интересным с технической точки зрения, так это его быстрый и компактный динамический транслятор . Динамический транслятор позволяет выполнять во время исполнения переводить инструкции целевого (гостевого) процессора в инструкции центрального процессора хоста для обеспечения эмуляции. Это может быть сделано методом грубой силы (просто заменяя инструкции одного процессора другими), но это не всегда легко сделать, а в некоторых случаях одна инструкция может потребовать нескольких инструкций или даже изменений в их порядке следования для транслируемой архитектуры.
QEMU обеспечивает динамическую трансляцию преобразованием целевой инструкции в микрооперации. Эти микрооперации представляют собой элементы С-кода, которые компилируются в объекты. Затем вступает в дело основной транслятор. Он отображает целевые инструкции на микрооперации для динамической трансляции. Такой подход не только эффективен, но и обеспечивает переносимость.
Динамический транслятор QEMU также кэширует блоки транслируемого кода для снижения накладных расходов транслятора. Когда блок целевого кода встречается впервые, он переводится и хранится в виде транслированного блока . Кэш QEMU хранит недавно переведенные блоки в буфере объемом 16 МБ. QEMU может даже поддерживать самомодифицирующийся код, аннулируя транслированные блоки в кэше.
Узнать больше о деталях внутреннего устройства QEMU и ее динамическом трансляторе можно в интересной статье Фабриса Белларда (автора QEMU), представленной в разделе Ресурсы.
Поддерживаемые периферийные устройства
Использование QEMU в качестве эмулятора персонального компьютера обеспечивает поддержку разнообразных периферийных устройств. Естественно, сюда входят стандартные периферийные устройства — эмулятор аппаратного видеоадаптера (VGA), мыши и клавиатуры PS/2, интерфейс IDE для жестких дисков, интерфейс CD-ROM и эмуляция дисковода. Кроме того, QEMU имеет возможность эмуляции сетевых адаптеров NE2000 (PCI), последовательных портов, многочисленных звуковых плат и контроллера PCI Universal Host Controller Interface (UHCI) Universal Serial Bus (USB) (с виртуальным USB концентратором). Также поддерживается до 255 процессоров с поддержкой симметричной многопроцессорности (SMP).
Помимо стандартных PC и ISA PC (без шины PCI), QEMU может эмулировать и другие аппаратные платформы, не связанные с ПК, такие как базовые платы АРМ Versatile (с использованием 926E) и платы на основе Malta million instructions per second (MIPS). В настоящее время ведется работа по реализации поддержки ряда других платформ, включая Power Macintosh G3 (Blue & White) и Sun 4u.
BOCHS (наиболее стабильный, но медленный)
Win на эмуляторе BOCHS
Считается лучшим из подобных эмуляторов. У него нет недостатков QEMU и проблем с мышкой и работает стабильнее. В принципе, на нем можно было бы запустить любую версию windows, но его крайне медленная работа сводит на нет запуск тяжеловесных операционок. Хотя есть облегченные дистрибутивы, позволяющие выполнить, например, запуск windows xp на android устройствах за разумный период времени.
Установка во многом похожа на предыдущую:
Установить Bochs2_5_1.apk (BOCHS для Андроид 2.5.1; размер 1,20 Mb).
Скачать SDL_for_BOCHS.zip (в архиве прошивка bios, видеокарт и др.).
Распаковать в папку SDL, предварительно создав ее в корне sdcard.
Скачать *.img образ операционной системы.
Переименовать файл в архиве в «c.img» и поместить в папку «SDL» на флэшку
Обратите внимание — образы от эмулятора QEMU не работают!
Запустить программу, установленную первоначально.. Кликать мышкой можно, нажимая кнопки громкости, при этом двойной клик отлично работает
Другие клавиши функционируют как в QEMU: кнопка «Меню» равносильна «Вводу», а кнопка «Назад» является аналогом «Esc»
Кликать мышкой можно, нажимая кнопки громкости, при этом двойной клик отлично работает. Другие клавиши функционируют как в QEMU: кнопка «Меню» равносильна «Вводу», а кнопка «Назад» является аналогом «Esc».
Для запуска своих программ и игр надо создать образ диска, а затем использовать его как диск D. Это можно сделать используя способ, описанный для QEMU. Чтобы эмулятор мог использовать ваш образ, как диск D, надо открыть файл «bochsrc.txt», находящийся в папке «SDL», и убрать «#» в строке «#ata0-slave: type=disk, path=»d.img». Созданный образ надо переименовать в «d.img» и поместить в папку «SDL».
Можно воспользоваться более простым вариантом, без использования образа. Описанной версией BOCHS поддерживается прямой доступ к накопителю устройства. Чтобы включить эту опцию, надо дописать форму «ata0-slave: type=disk, mode=vvfat, path=/sdcard/HDD, journal=vvfat.redolog» в файле «bochsrc.txt». Здесь «HDD» — это папка, размещенная в корне sdcard.
Достоинства:
- Стабильность работы.
- Отличная эмуляция мыши.
- Поддержка эмуляции звуковой карты.
- Запуск большинства ОС.
- Постоянное развитие и поддержка программы.
[править] Сеть в QEMU
тихо-тихо идёт пинг изнутри qemu Один из способов соединить эмулируемую машину и общую сеть — использовать виртуальный мост Linux. Для этого в хост-системе необходимо создать мост, который соединить с физическим сетевым интерфейсом. К полученному мосту можно подключать эмулятор.
Например, в хост-системе создан мост и к нему подключен интерфейс:
%# brctl show … br0 8000.001a4d80ce78 no peth0 …
Тогда, если использовать такой скрипт и способ запуска qemu
, эмулятор будет подключен к этому мосту, и его единственный сетевой интерфейс будет смотреть в общую сеть (туда, куда смотрит интерфейсpeth0 ).
Файл /etc/qemu-ifup
#!/bin/sh bridge=br0 echo «Executing /etc/qemu-ifup» echo «Bringing up $1 for bridged mode…» sudo /sbin/ifconfig $1 0.0.0.0 promisc up echo «Adding $1 to $bridge…» sudo /usr/sbin/brctl addif $bridge $1 sleep 2
Файл должен быть исполняемым:
%$ chmod +x qemu-ifup
Запуск:
%# qemu -hda haiku.img -boot c -net nic,vlan=0 \ -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -m 256 -localtime
Запускать нужно от root’а, потому что иначе могут возникнуть проблемы с доступом к устройству /dev/net/tun.
Здесь ключевое слово vlan обозначает виртуальный коммутатор внутри процесса QEMU, который не имеет прямого отношения к VLANам в привычном понимании этого слова. |
Здесь вместо haiku.img должен быть указано имя файла, содержащего исполняемый образ.
Дополнительная информация:
- Networking QEMU Virtual BSD Systems (англ.) хорошая схема внутреннего подключения внутреннего DHCP-сервера в QEMU
- https://qemu-buch.de/cgi-bin/moin.cgi/QemuAndSlirp
Обратиться по сети к машине, работающей внутри QEMU можно не обзятально создавая дополнительные интерфейсы в хост-системе:
$ qemu-system-x86_64 Platte.img -net nic -net user,hostfwd=tcp::12345-:22
В данном случае порт 12345 в хост системе отражается на порт 22 гостевой системы. Сетевой интерфейс гостевой системы конфигурируется с помощью встроенного DHCP-сервера.
Пробросить порт в обратную сторону можно с помощью `guestfwd`:
guestfwd=tcp:10.0.2.100:49999-tcp:127.0.0.1:49999
В этом случае при обращении изнутри гостевой системы на 10.0.2.100:49999 обращение будет перенаправлено на 127.0.0.1:49999 внешней системы.
Другой способ — использовать опцию redir:
-redir tcp:12345::22
Дополнительная информация по теме (QEMU + Socket):
- https://unix.stackexchange.com/questions/124681/ssh-from-host-to-guest-using-qemu
- https://wiki.qemu.org/Documentation/Networking (искать по слову Socket)
- https://www.h7.dion.ne.jp/~qemu-win/HowToNetwork-en.html
- https://secomputing.co.uk/2012/02/21/Forwarding-ports-to-KVM-clients/
- https://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_Netzwerkoptionen/_Virtuelle_Netzwerke_konfigurieren (нем.)
Установка QEMU
Информация об установке есть на официальном сайте, в разделе Download QEMU. Тем, кто использует Windows, нужно будет скачать установочный файл (в зависимости от разряда своей системы).
Команда для установки QEMU на Linux выглядит следующим образом (для примера взята Ubuntu):
# apt-get install qemu
Все довольно просто, так как QEMU есть в официальных репозиториях Ubuntu.
Для изучения всех возможностей QEMU стоит обратиться к официальной документации.
Команда для создания образа:
# qemu-img create myimage.img mysize
- myimage.img — название файла с образом диска;
- mysize — размер в килобайтах (для размера в мегабайтах в конце надо добавить M, в гигабайтах — G: 10G).
Если нужно указать формат (qcow2 — формат, который используется QEMU по умолчанию), то нужно использовать ключ -f:
# qemu-img create -f qcow2 myimage.img 10G
Более подробную информацию о команде qemu-img можно посмотреть здесь.
# qemu-system-x86_64 -hda myimage.img -boot d -cdrom ~/downloads/ubuntu-17.04-server-amd64.iso -m 640
В этом случае:
- жесткий диск подключается как -hda (другие возможные варианты: -hdb, -hdc, -hdd);
- если указать -boot d, то загрузка будет начинаться с CD-ROM (в противном случае – с жесткого диска);
- -cdrom указывает, что файл будет использоваться как образ CD-ROM (поэтому нельзя одновременно использовать ключи -cdrom и -hdc);
- в конце указывается количество оперативной памяти, которое будет выделено для машины.
После этого будет выполнена установка новой системы, которую потом можно запустить командой:
# qemu -hda myimage.img -m 640
Для того чтобы включить поддержку KVM, нужно добавить -enable-kvm в конце.
Графическое управление[править]
Чтобы сделать некое подобие «Диспетчера Hyper-V» (Графическую консоль для управления виртуальными машинами) устанавливаем следующий пакет:
# apt-get install virt-manager
Открываем Virt-Manager. Файл>Добавить соединение>
- Локальная машина
- Удаленный сервер
- QEMU/KVM-Connect to remove host over SSH
- вводим имя пользователя
- вводим IP
- ставим галочку подключаться автоматически
- QEMU/KVM-Connect to remove host over SSH
Создание виртуальной машиныправить
- Нажимаем на кнопку «Создать виртуальную машину»
- Выбираем метод установки — локальный/ISO
- Выбираем ISO/CD и тип ОС (с помощью автодополнения)
- Выбираем количество ОЗУ и процессоров
- Создаем виртуальный жесткий диск
- Вводим название и выбираем сеть
Некоторые настройкиправить
Выберите машину, нажмите на лампу…
Настройка жесткого дискаправить
…Диск-1> Дополнительные параметры>Шина диска
Тип диска:
- IDE — рекомендуется для Windows XP и младше
- SATA — для 7 и старше
Включить меню загрузки> ставите очередность.
Иначе вы просто не загрузитесь с CD/ISO.
запускать при старте системы
Подключение ISOправить
…Выберите IDE CDROM> Browse.
В окне «Выберите том хранилища» нажмите на плюс (добавить пул), выберите тип dir-каталог в файловой системе и укажите папку с iso-образами.
Выберите образ из пула и нажмите на кнопку «Выбор тома».
Примечание: В качестве каталога можно указать папку прописанную в /etc/openssh — так вы легко сможете закидывать и подключать ISO-образы
NATправить
NAT — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса одной сети, в адрес другой сети.
Т.е. у вас в локальной сети сеть 192.168.0.x., а у виртуальных машин будет 192.168.1.x. И NAT позволит вам общатся между сетью 0.x и 1.x.
По-умолчанию в virt-manager уже есть NAT-интерфейс, но если вы его случайно удалили или хотите создать новый, то это делается так:
- откройте Правка>Свойства подключения>Виртуальные сети>+
- введите название сети
- режим: NAT
- Forward to: любое физическое устройство
Можете так же настроить адресацию IPv4 и DHCP-сервер (они настраиваются автоматически).
И в настройках виртуальной машины выберите данный интерфейс.
Мостправить
Чтобы напрямую общаться между реальной сетью и виртуальными машинами напрямую нужно создать сетевой мост.
Данный способ является наиболее правильным. Проще всего его сделать через alterator-net-bridge.
Например, br0, затем в настройках ВМ указать именно его.
//Как? Расписать…
Примечание: При этом управление сетью перейдет к etcnet и NetworkManager уже будет не нужен, его и его апплет можно удалить: apt-get remove NetworkManager NetworkManager-applet-gtk. В трее, соответственно, иконка статуса сети исчезнет.
Проброс портовправить
Из переписки:
Настроил тут проброс порта в QEMU-виртуалку. Казалось бы, в чём проблема-то?
cmd|qemu -netdev user,id=user0,hostfwd=tcp::2222-:22 -device e1000,netdev=user0" …
как-то так (можно вместо e1000 паравиртуальный драйвер, это побыстрее будет).
Но. Я это сделал через libvirt! И оказалось, что штатными средствами (не только тыкая в менюшки virt-manager, но и, кажется, вообще прямой настройкой сети) нельзя. Не знаю, почему. Может быть, можно, но я не нашёл как. А я искал. То, что в libvirt называется NAT, в действительности садится на tun/tap, лезет в iptables и т. д. Наверное, для совместимости с другими платформами виртуализации, не знаю.
Короче.
- В настройках virt-manager разрешаем «Редактирование XML»
- Удаляем все сетевые устройства.
- Добавляем в конец общего XML-я виртуалки (например, во вкладке «Обзор»), перед закрывающим </domain>, такие строки:
<qemu:commandline> <qemu:arg value="-netdev"/> <qemu:arg value="user,id=user0,hostfwd=tcp::2222-:22"/> <qemu:arg value="-device"/> <qemu:arg value="e1000,netdev=user0"/> </qemu:commandline>
Если неймспейс qemu не загружен, то такие:
И qemu преспокойненько само всё как надо делает. Фишка — не забыть про
иначе просто не заработает, а вам ничего не скажет)
Графикиправить
Откройте «Правка> Параметры», вкладка «Статистика», отметьте галочками, какие графики вы хотите сделать доступными.
Вкл./выкл. график вы можете через «Вид> График».
Снимок машины можно создать только если виртуальный жесткий диск у вас в формате *.qcow2.
Установка QEMU
Информация об установке есть на официальном сайте, в разделе Download QEMU. Тем, кто использует Windows, нужно будет скачать установочный файл (в зависимости от разряда своей системы).
Команда для установки QEMU на Linux выглядит следующим образом (для примера взята Ubuntu):
# apt-get install qemu
Все довольно просто, так как QEMU есть в официальных репозиториях Ubuntu.
Для изучения всех возможностей QEMU стоит обратиться к официальной документации.
Команда для создания образа:
# qemu-img create myimage.img mysize
- myimage.img — название файла с образом диска;
- mysize — размер в килобайтах (для размера в мегабайтах в конце надо добавить M, в гигабайтах — G: 10G);
- если нужно указать формат (qcow2 — формат, который используется QEMU по умолчанию), то нужно использовать ключ -f:
# qemu-img create -f qcow2 myimage.img 10G
Более подробную информацию о команде qemu-img можно посмотреть здесь.
# qemu-system-x86_64 -hda myimage.img -boot d -cdrom ~/downloads/ubuntu-17.04-server-amd64.iso -m 640
В этом случае:
- жесткий диск подключается как -hda (другие возможные варианты: -hdb, -hdc, -hdd);
- если указать -boot d, то загрузка будет начинаться с CD-ROM (в противном случае -с жесткого диска);
- -cdrom указывает, что файл будет использоваться как образ CD-ROM (поэтому нельзя одновременно использовать ключи -cdrom и -hdc);
- в конце указывается количество оперативной памяти, которое будет выделено для машины.
После этого будет выполнена установка новой системы, которую потом можно запустить командой:
# qemu -hda myimage.img -m 640
Для того, чтобы включить поддержку KVM, нужно добавить -enable-kvm в конце.
Установка VirtualBox
Чтобы создать виртуальную машину, скачайте VirtualBox с официального сайта. Инсталляция программы не отличается от установки любой другой. Если вдруг система выдаст предупреждение, что ПО не тестировалось с этой версией операционной системы, проигнорируйте его. Такое предупреждение выходит несколько раз, продолжайте инсталляцию.
Интерфейс VirtualBox при инсталлировании разных ОС имеет небольшие различия, но они не столь существенны. Принцип создания гостевой ОС остаётся одинаковым как для версий Windows, так и, например, для Ubuntu.
Инсталлировав программу, создаём уже именно машину. Для этого следуйте алгоритму:
- Активируйте кнопку «Создать».
- В открывшемся окне выберите ОС, её тип и версию, задайте вашей виртуальной машине какое-либо имя. Это имя ни на что не влияет, просто отражается в заголовке окна.
- Далее вас попросят выбрать для гостевой системы жёсткий диск: использовать существующий уже либо создать новый. Создаём новый.
- Следующий параметр, который вас попросят проставить, касается типа файла, определяющего формат используемого нового диска. Оставляете VDI.
- В дополнительных атрибутах можно выбрать динамический либо фиксированный диск. Фиксированный работает быстрее, но занимает сразу всё выделенное место на винчестере. Динамический захватит на винчестере место, необходимое для гостевой системы, приложений, будет автоматически расширяться при дополнениях, установке программ. Рекомендуется выбирать фиксированный вариант для быстродействия.
- Задайте имя нового жёсткого виртуального диска, указываете место папки с файлами, установите его размер — величину файлов, сохраняемых на этом диске. Например, для Windiws XP, по мнению производителей, достаточно 10 ГБ, для Linux можно оставить выделенный объём по умолчанию.
- Завершите процесс, нажав на кнопку «Создать».
Процесс создания займёт около 7 минут. Компьютер это время не беспокойте, задействован центральный процессор. После создания машины, отрегулируйте параметры, нажав вкладку «Настроить». Впрочем, установок по умолчанию достаточно для запуска ОС, функционирования гостевой системы.
Шаблоны и снимки состояния
Необходимо также упомянуть о замечательной возможности делать несколько образов виртуалных машин, на основе базового образа. При этом в будут записываться только различия между целевым и базовым образоми.
Пусть уже создан образ arch.qcow2 с установленной операционной системой на нём. Для того, чтобы на его основе создать еще несколько образов необходимо воспользоваться командами
$ qemu-img create -f qcow2 -o backing_file=arch.qcow2 archnew1.qcow2Formatting 'archnew1.qcow2', fmt=qcow2 size=5368709120 backing_file='arch.qcow2' encryption=off cluster_size=0 $ qemu-img create -f qcow2 -o backing_file=arch.qcow2 archnew2.qcow2Formatting 'archnew2.qcow2', fmt=qcow2 size=5368709120 backing_file='arch.qcow2' encryption=off cluster_size=0
Теперь существуют три образа: arch.qcow2, archnew1.qcow2, archnew2.qcow2. При этом два последних не занимают на диске существенного места и ссылаются на первый. При запуске виртуальной машины из образа archnew1.qcow2 в этот файл будут записываться только изменения относительно базового образа.
Ниже приведен вывод команды qemu info для базового образа и diff файла:
$ qemu-img info arch.qcow2image: arch.qcow2file format: qcow2virtual size: 2.0G (2147483648 bytes)disk size: 585Mcluster_size: 65536$ qemu-img info archnew1.qcow2image: archnew1.qcow2file format: qcow2virtual size: 2.0G (2147483648 bytes)disk size: 136Kcluster_size: 65536backing file: arch.qcow2 (actual path: arch.qcow2)
Видно, что в файле archnew1.qcow2 прописан файл базового образа. Соответвенно при переименовании или отсутствии файла базового образа все системы, основанные на нем не смогут запуститься. Поэтому в некоторых случаях полезно создать однин файл, который объединяет в себе как информацию заложенную в базовом образе, так и отличия записанные в отдельном файле. Это можно сделать так
$ qemu-img convert archnew2.qcow2 -O qcow2 archnew3.qcow2
После этого файл archnew3.qcow2 будет содержать с себе информацию как из archnew2.qcow2 так и из базового образа на котором он основан (arch.qcow2).
$ qemu-img info archnew3.qcow2 image: archnew3.qcow2file format: qcow2virtual size: 2.0G (2147483648 bytes)disk size: 585Mcluster_size: 65536
Для управления базовыми образами и дополнениями, основаными на них, также может использоаться опция rebase. Описание работы этой опции я нашел только в рассылке разработчиков qemu http://www.mail-archive.com/[email protected]/msg21374.html.
qemu-img rebase -f <конечный формат> -b <новый_базовый_образ> -F <формат_базового_образа> конечный_файл
Без опции -u команда сравнивает базовые файлы (новый, который указан в команде, и старый, на котором основан конечный файл) и переписывает те изменения, которые гарантируют работоспособность системы с новым базовым файлом.
С опцией -u команда только перезаписывает имя базового файла не проверяя сохранение целостности информации. Эта опция полезна при переименовании базового образа и обновлении всех ссылок на этот файл в образах основаных на нём.
В завершении разговора о базовых образах стоит отметить, что организация снапшотов в RHEV основана имеено на создании diff образов для каждого снапшота.
Заключение
Какую же виртуальную машину выбрать? Трезво оценивая ситуацию, можно придти к выводу, что большинство представленных бесплатных продуктов имеют более-менее одинаковую функциональность, и оценивать их стоит исходя из сферы применения, чем по совокупности плюсов и минусов. Для домашнего использования или обучения лучшим выбором станет Oracle VirtualBox. Данный продукт лучше всего подойдет начинающим пользователям, прост в освоении и имеет воистину широкие возможности. В свою очередь, для организаций куда более выигрышно смотрится Hyper-V, с его интеграцией в инфраструктуру Microsoft.