Виртуальная машина qemu как настроить

Виртуализация операционных систем с помощью QEMU. Основы работы с эмулятором

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

Но есть и другие, в чём-то даже более гибкие и продуктивные решения хотя и куда менее удобные в использовании. Например, QEMU — бесплатная программа с открытым исходным кодом, предназначенная для эмуляции программного обеспечения и операционных систем. Инструмент использует аппаратную виртуализацию, поддерживая два режима работы:

• Полная эмуляция — данный режим применяется для запуска операционных систем, в его рамках QEMU эмулирует физическое устройство со всеми его компонентами, встроенными и периферийными.

• Эмуляция пользовательского режима — дает возможность запускать программы, созданные для конкретной архитектуры на другой архитектуре, например, приложения ARM в x86 . Режим доступен только в хостовой системе Linux.

QEMU поддерживается эмуляция архитектуры x86 , ARM , MIPS , PowerPC , m68k , Alpha , SPARC , SH-4 , CRISv2 , MicroBlaze и это более солидный список, чем у того же Виртуалбокс.

Как установить QEMU в Windows

Скачать установочный файл эмулятора можно с официального сайта www.qemu.org/download/#windows,

есть редакции 32-битные и 64-битные, версию выбираем последнюю.

Устанавливается QEMU как обычная программа в папку Program Files\qemu , но можно выбрать и другое расположение.

Установку выполняем с параметрами по умолчанию, ничего менять не нужно, просто жмем в окне мастера «Next».

Виртуализация операционных систем в QEMU

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

• qemu-system — задает архитектуру виртуальной машины.
• qemu-img create — создает файл виртуального IMG -диска, на который будет устанавливаться операционная система.
• -m — выделяет виртуальной ОС указанный объем оперативной памяти.
• -hda — подключает созданный виртуальный диск.
• -boot IMG — указывает, что загрузка должна производиться с виртуального диска, вместо IMG следует указать имя IMG -файла.
• cdrom — содержит путь к установочному образу ISO , эмулирует дисковод.

Чтобы вам стало всё немного понятнее, установим и запустим с помощью QEMU какую-нибудь операционную систему. Для примера мы выбрали Windows XP, так как она легкая и занимает на диске мало места. QEMU у нас уже установлен, открываем командную строку, переходим в каталог установки и создаем виртуальный жесткий диск следующей командой:

qemu-img.exe create -f raw c.img 5000M

Файл qemu-img.exe в эмуляторе отвечает за создание IMG -образов, с — это название образа, 5000 — размер виртуального диска в мегабайтах. По умолчанию образ будет создан в папке QEMU .

Теперь сформируем следующую команду:

qemu-system-i386w.exe -boot c -m 350 -hda c.img -cdrom «E:\WinXP_SP3.iso»

Исполняемый файл в начале команды отвечает за создание виртуальной машины с архитектурой х86 , -boot с ключом сообщает, что грузиться она будет с диска, в значение параметра -hda подставляем созданный образ, а в качестве значения параметра –cdrom указываем путь к дистрибутиву Windows.

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

Читайте также:  Схемы вышивок для швейной машины

Далее проходим все этапы установки операционной системы вплоть до локальных настроек и загрузки рабочего стола.

Чтобы запустить закрытую виртуальную машину, выполните команду qemu-system-i386w.exe -hda name.img , где name — название вашего виртуального диска, чтобы удалить ставшую ненужной VM, просто удалите из каталога установки QEMU созданный IMG -образ.

Управлять QEMU можно с помощью клавиатуры и мыши, для переключения между эмулятором и хостовой машиной используйте комбинацию Ctrl + Alt + G . Запущенная с минимальными настройками ОС не будет иметь доступа к аудио- и сетевой карте, не будет также возможности обмена файлами между виртуальной и хостовой системами.

Нельзя сказать, что QEMU лучше или хуже VirtualBox либо VMware, это альтернативное средство виртуализации, имеющие как свои плюсы, так и минусы. QEMU менее удобен, требует знания документации и демонстрирует весьма небольшую производительность. Для ускорения работы в Windows требуется установка и настройка Диспетчера аппаратного ускорения HAXM, в Linux – подключение загружаемого модуля ядра KVM . С другой стороны, инструмент позволяет эмулировать работу устройств на базе разных архитектур, не поддерживаемые популярными гипервизорами.

Технически современные компьютерные игры не идут ни в какое сравнение со старыми консольными игрушками, найти Читать далее

Чтобы иметь возможность наслаждаться старыми играми из 90-х, необязательно устанавливать MS DOS на ПК или Читать далее

Несмотря на унификацию интерфейсов современных операционных систем, переход с Windows на Linux может оказаться достаточно Читать далее

Что такое DOSBox? Это замечательная программа, которая позволяет эмулировать работу старенькой операционной системы DOS. Disk Читать далее

Как пользоваться qemu

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

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

Что такое qemu?

Qemu — это бесплатный инструмент с открытым исходным кодом для эмуляции и виртуализации работы операционных систем на компьютере. Программа может работать в Windows, Linux, MacOS и даже на Android. Ресурсы хоста, такие как процессор, жесткий диск, память, разделяются между виртуальными машинами.

Qemu использует аппаратную виртуализацию, поэтому может выполнять гостевые операционные системы почти так же быстро, как и на основном железе. Может использоваться гипервизор XEN или модуль ядра KVM в Linux. Qemu может работать в двух режимах работы:

  • Полная эмуляция системы — в этом режиме qemu полностью эмулирует устройство, например, компьютер, включая все его компоненты, процессор и различные периферийные устройства. Он может использоваться для запуска нескольких операционных систем без перезагрузки или отладки системного кода.
  • Эмуляция пользовательского режима — работает только для Linux хоста, позволяет запускать процессы Linux, скомпилированные для одной архитектуры в другой, например, ARM программы в x86. Полезно для разработки, кросс-компиляции и отладки.

Эмулировать можно такие архитектуры: x86 (32 и 64 бит), PowerPC (32 и 64 бит), ARM, MIPS (32 бит), Sprac (32 и 64 бит), Alpha, ColdFire(m68k), CRISv2 и MicroBlaze. Этот список уже более внушительный чем у Virtualbox.

Установка qemu

Перед тем как мы сможем использовать программу, необходимо ее установить. Если вы используете дистрибутив Linux, например, Ubuntu, то сможете найти программу в официальных репозиториях. Для Ubuntu команда будет выглядеть вот так:

Читайте также:  Трейлеры для тест драйв

sudo apt install qemu-kvm qemu

Для Fedora и других систем RedHat можно установить группу Virtualization:

sudo dnf install @virtualization

В ArchLinux используйте Pacman:

Для Windows или MacOS вам нужно скачать исполняемый файл из официального сайта. Программа управляется только через терминал, так что вы главном меню системы ничего не появиться после установки. А теперь перейдем к тому как настроить qemu.

Как пользоваться qemu?

Теперь, когда программа установлена и готова к использованию попытаемся разобраться как ее запустить и применять. Но сначала нужно разобраться какие команды и для чего используются. Эмулятор qemu создает много команд, но их можно разделить на группы:

  • qemu-архитектура — эмуляция окружения пользователя для указанной архитектуры;
  • qemu-system-архитектура — эмуляция полной системы для архитектуры;
  • qemu-img — утилита для работы с дисками;
  • qemu-io — утилита для работы с вводом/выводом на диск;
  • qemu-user — оболочка для qemu-архитектура, позволяет запускать программы других архитектур в этой системе;
  • qemu-system — оболочка для qemu-system-архитектура, позволяет полностью эмулировать систему нужной архитектуры.

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

1. Использование qemu-system

Чтобы вы понимали что и откуда берется для начала рассмотрим опции утилиты qemu-system. Синтаксис команды такой:

$ qemu-system параметры

Куда сложнее здесь синтаксис каждого из параметров:

-имя_параметра имя_опции = значение : значение2

Мы рассмотрим только основные параметры, и их опции, которые нам понадобятся:

  • -machine указывает тип компьютера, который вы собрались эмулировать, можно выбрать ubuntu, pc, pc-q35 и другие варианты, смотрите подробнее командой -machine help;
  • -cpu — тип процессора, можно передать непосредственно тип процессора, а также дополнительные флаги;
  • -smp — включает симуляцию мультипроцессорной архитектуры;
  • -boot — позволяет настроить порядок загрузки устройств, a,b — дискета, с — первый жесткий диск, d — CDROM, n-p — загрузка через сеть, по умолчанию виртуальная машина загружается из жесткого диска;
  • -m — указывает количество оперативной памяти, доступной машине;
  • -k — раскладка клавиатуры по умолчанию;
  • -soundhw — подключить звуковую карту к системе;
  • -device — подключить указанное устройство к машине, нужно указать драйвер и его опции;
  • -name — имя гостевой системы, будет отображаться в верху окна;
  • -uuid — установить UUID для системы;
  • -fda, fdb — подключить дискету из файла;
  • -hda, hdb — подключить жесткий диск из файла;
  • -cdrom — подключить оптический диск;
  • -usb — включить поддержку USB;
  • -usbdevice — подключить USB устройство;
  • -display — выбрать тип отображения, доступно sdl, curses, gtk, none, vga и другие;
  • -full-screen — запустить в полный экран;
  • -no-acpi — отключить поддержку ACPI;
  • -net — создать сетевой интерфейс;
  • -realtime включить режим реального времени, опции mclock нужно передать значение on;
  • -gdb — ожидать подключения отладчика gdb;
  • -enable-kvm — включить поддержку kvm;
  • -loadvm — загрузить сохраненное состояние;
  • -daemonize — сделать процесс фоновым;
  • -snapshot — записывать изменения не в файл жесткого диска, а в отдельные файлы;
  • -nographic — отключить графический вывод.
  • -kernel — использовать указанный образ ядра linux.
  • -append — командная строка для ядра;
  • -initrd — файл initrd для загрузки Linux.

Мы рассмотрели опции для qemu-system-x86-64, для других архитектур, они могут немного отличаться. А теперь разберем несколько простых примеров как использовать qemu, как создать машину qemu и настроить ее.

Сначала нужно создать жесткий диск для установки. Вы можете использовать реальные жесткие диски, но работать с образами намного удобнее. Можно просто создать пустой файл, заполненный нулями, а затем форматировать его в нужную файловую систему во время установки, но также можно создать файл формата qcow2, этот формат используется по умолчанию в qemu. Воспользуемся командой qemu-img:

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

qemu-img create -f qcow2 ubuntu.qcow 10G

Опция -f указывает формат нового файла. Теперь мы можем непосредственно перейти к запуску qemu-system. Вот так будет выглядеть самая простая команда запуска системы:

qemu-system-x86_64 -hda ubuntu.qcow -boot d -cdrom

/downloads/ubuntu-17.04-server-amd64.iso -m 640

Здесь мы подключаем наш жесткий диск как hda, затем указываем что нужно загружаться с cdrom и подключаем образ системы ubuntu к нему. Последний параметр указывает сколько оперативной памяти будет выделено для машины.

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

qemu-system-x86_64 -hda ubuntu.img -m 640

Создавать виртуальную машину с другой архитектурой не очень сложно, достаточно изменить команду. Например, сделаем виртуальную машину ppc:

qemu-system-ppc -hda ubuntu.qcow -boot d -cdrom

/downloads/ubuntu-17.04-server-amd64.iso -m 640

Поскольку сейчас мы не используем kvm, то система будет работать очень медленно все можно очень сильно ускорить, если его включить с помощью опции -enable-kvm:

qemu-system-x86_64 -hda ubuntu.qcow -m 640 -enable-kvm

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

qemu-system-x86_64 -hda ubuntu.qcow -m 640 -enable-kvm -soundhw ac97

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

qemu-system-x86_64 -hda ubuntu.qcow -m 640 -enable-kvm -soundhw ac97 -vga qxl

С помощью опции -global qxl-vga.vram_size можно задать объем видеопамяти, доступный машине, значение указывается в байтах, например:

qemu-system-x86_64 -hda ubuntu.qcow -m 640 -enable-kvm -soundhw ac97 -vga qxl -global qxl-vga.vram_size=4294967

Для многих машин важно чтобы из них был доступ в сеть интернет. Настройка сети qemu — это достаточно обширная тема, которую мы не будем полностью раскрывать в этой статье. Если кратко, то, в qemu используется специальный виртуальный шлюз vlan, который позволяет соединять машины с внешней сетью или между собой. Каждый vlan имеет свой номер. Самый простой способ настроить сеть — использовать такие параметры:

qemu-system-x86_64 -hda ubuntu.qcow -m 640 -enable-kvm -net nic,vlan=0 -net user,vlan=0

Здесь мы два раза вызываем опцию -net, в первый раз создаем виртуальную сетевую карту с помощью параметра -nic и подключаем ее к vlan с номером 0. Вторая же опция -net создает наш vlan 0 с типом конфигурации user, которая не требует дополнительной настройки и автоматически подключается к сети хоста.

2. Использование эмуляции окружения

Теперь рассмотрим использование qemu для эмуляции архитектуры в окружении пользователя. Команда qemu-user или qemu-архитектура позволяет выполнять программы, собранные для другой архитектуры прямо в вашей системе. Это очень часто используется для отладки программ, собранных для arm на компьютере или других подобных задач. Команде достаточно передать команду и ее параметры:

Точно так же вы можете выполнить arm программу или программу для любой из поддерживаемых архитектур.

Выводы

В этой статье мы очень кратко рассмотрели как пользоваться qemu, основные настройки этой утилиты и опции. На самом деле там намного больше опций и возможностей. Одна только возможность эмулировать такое огромное количество архитектур чего стоит. Если для вас эмулятор qemu слишком сложен через терминал, то можно использовать графический интерфейс, например, virt-manager. А вы используете qemu? Или предпочитаете другие виртуальные машины? Почему? Напишите в комментариях!

Оцените статью