База знаний о хостинге и серверных технологиях Timeweb Community: Обзор и установка QEMU. Опыт наших пользователей поможет разобраться с любым вопросом из IT-сферы.
Что такое 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.
Источник: http://losst.ru/kak-polzovatsya-qemu
1.1
QEMU — ! , .
QEMU :
- — . QEMU ( ), . .
- — ( Linux-). QEMU Linux, , . Wine — API Windows (http://www.winehq.org), ݣ — -.
QEMU — , .
:
- PC ( x86 x86_64)
- PREP ( PowerPC)
- G3 BW PowerMac ( PowerPC)
- Mac99 PowerMac ( PowerPC, )
- Sun4m (32- Sparc)
- Sun4u (64- Sparc processor, )
- Malta board (32- MIPS, )
x86, PowerPC, ARM Sparc32/64.
QEMU, compilation.
Источник: http://opennet.ru/docs/RUS/qemu_doc/
Подготовка
Самый первый шаг — настройка параметров ядра. Обязательна поддержка KVM и vhost-net, желательна поддержка туннельных интерфейсов[1] и сетевого моста[2]. Полный список на Gentoo вики-странице QEMU.
Подготовьте дисковое пространство. Я выделил 70 GiB, и Windows 8.1 за пару месяцев использовала почти 50 GiB так, что для обновления до 10-й версии места на диске не хватило.
Далее, нам понадобится набор редхатовских драйверов virtio-win. Если у вас установлен RedHat, достаточно запустить
[root@server ~]# yum install virtio-win
и образ iso будет записан в каталог /usr/share/virtio-win/. Также можно его скачать с репозитариев Fedora.
Убедитесь, что поддержка аппаратной виртуализация включена в BIOS/UEFI. Без этого KVM не будет активирован, а virt-manager выдаст вот такую ошибку.
В качестве проверки можно прочитать файл устройства.
(2:506)$ ll /dev/kvmcrw-rw—-+ 1 root kvm 10, 232 ноя 9 02:29 /dev/kvm
Если файл не обнаружен, а опции ядра выставлены верно, значит дело в настройках BIOS/UEFI.
Устанавливаем нужные пакеты.
(5:519)$ sudo emerge -av qemu virt-manager
Для RedHat 7 достаточно установить только virt-manager, так как QEMU устанавливается по умолчанию.
[root@server ~]# yum install virt-manager
Дебианщикам надо установить пакет qemu.
root# aptitute install qemu
Можно теперь переходить к установке.
Источник: http://habr.com/ru/post/313144/
Описание:
На этом сайте будут регулярно выкладываться образы дисков для эмуляторов Pentium x86 — BOCHS, QEMU и Limbo.
Для кого создан этот ресурс:
— Для тех, кто проявляет интерес к различным операционным системам и хочет познакомиться с ними поближе.
— Для владельцев старых компьютеров выпуска 1990-х и начала 2000-х гг.
— Для тех, кто изучает новую систему, но пока не собирается устанавливать её на компьютер.
— Для обладателей программ, которые могут быть запущены только в DOS или ранних версиях Windows.
— Для тех, кто хочет получить готовую систему для эмулятора без необходимости её установки и настройки.
…
и тому подобное.
Источник: http://sbornik-obrazov-dlya-bochs-i-qemu.ru/
2.1 Linux
— . . compilation.
Источник: http://opennet.ru/docs/RUS/qemu_doc/
2.2 Windows
http://www.free.oszoo.org/download.php.
Источник: http://opennet.ru/docs/RUS/qemu_doc/
2.3 Mac OS X
http://www.freeoszoo.org/download.php.
Источник: http://opennet.ru/docs/RUS/qemu_doc/
Запуск и инсталляция
Запускаем virt-manager и создаем новую виртуальную машину из локального хранилища.
Указываем путь к установочному iso образу Windows.
Далее, на 3-м и 4-м шаге будет выбор количества CPU, объем RAM и размер дискового пространства, после чего на 5-м шаге следует выбрать дополнительные конфигурации перед настройкой.
Окно дополнительных настроек нужно для того, чтобы выполнить финт ушами. Его смысл в том, чтобы добавить виртуальный флопарь с драйверами из набора virtio-win. Это даст возможность изменить тип жесткого диска: удалить диск с шиной IDE и добавить его же, но с шиной VirtIO. Подробно, в доках RedHat.

Прописываем драйвер /usr/share/virtio-win/virtio-win.vfd и добавляем виртуальный флоппи-диск. Затем переходим на вкладку [Шина] Диск № и проделываем финт с заменой шины диска: удаляем с IDE и добавляем с VirtIO.
Чуть не забыл сказать, для чего нужен этот фокус. Специалисты утверждают, что с шиной VirtIO, производительность диска ощутимо выше.
В принципе, уже можно начинать инсталляцию, но мы забыли добавить CD-ROM с драйверами virtio-win, а они нам пригодятся, когда диспетчер устройств засверкает желтыми иконками вопросительного знака.
Ну вот теперь можно начать установку.
Ну хорошо, начали мы установку. А что, если установщик Windows попросит сменить диск? Мне из-за этого пришлось пару раз прервать и начать всю карусель заново, но с вами такого уже не случится.
(qemu) change ide1-cd0 /tmp/windows_8.1_x64_disk2.iso
Источник: http://habr.com/ru/post/313144/
Установка qemu
Перед тем как мы сможем использовать программу, необходимо ее установить. Если вы используете дистрибутив Linux, например, Ubuntu, то сможете найти программу в официальных репозиториях. Для Ubuntu команда будет выглядеть вот так:
sudo apt install qemu-kvm qemu
Для Fedora и других систем RedHat можно установить группу Virtualization:
sudo dnf install @virtualization
В ArchLinux используйте Pacman:
pacman -S qemu
Для Windows или MacOS вам нужно скачать исполняемый файл из официального сайта. Программа управляется только через терминал, так что вы главном меню системы ничего не появиться после установки. А теперь перейдем к тому как настроить qemu.
Источник: http://losst.ru/kak-polzovatsya-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 на компьютере или других подобных задач. Команде достаточно передать команду и ее параметры:
qemu-x86_64 /bin/ls
Точно так же вы можете выполнить arm программу или программу для любой из поддерживаемых архитектур.
Источник: http://losst.ru/kak-polzovatsya-qemu
3.5 QEMU
QEMU QEMU. :
- — ߣ ( CD-ROM );
- -«»/»» () ţ ;
- — .
3.5.1
:
`help ? [cmd]’
cmd.
`commit’
( -snapshot).
`info -‘
:
`info network’ `info block’ `info registers’ `info history’ `q quit’
.
`eject [-f] ‘
ߣ ( -f).
`change ‘
ߣ .
`screendump ‘
PPM- .
`log 1[,…]’
`/tmp/qemu.log’.
`savevm ‘
.
`loadvm ‘
.
`stop’
.
`c cont’
.
`gdbserver []’
gdbserver ( =1234).
`x/fmt ‘
, .
`xp /fmt ‘
, .
fmt — , , . : `/{}{}{}’
.
x (), d ( ), u ( ), o(), c () i ( asm).
b (8 ), h (16 ), w (32 ) g (64 ). x86 h w i 16- 32- .
:
- 10 :
(qemu) x/10i $eip0x90107063: ret0x90107064: sti0x90107065: lea 0x0(%esi,1),%esi0x90107069: lea 0x0(%edi,1),%edi0x90107070: ret0x90107071: jmp 0x901070800x90107073: nop0x90107074: nop0x90107075: nop0x90107076: nop - 80- 16- :
(qemu) xp/80hx 0xb80000x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b420x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b410x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b720x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b730x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b200x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x07200x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x07200x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x07200x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x07200x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
`p print/fmt ‘
. format fmt.
`sendkey ‘
. — . :
, , ctrl-alt-f1 XWindow.
`system_reset’
.
3.5.2
, . ̣ , $.
Источник: http://opennet.ru/docs/RUS/qemu_doc/
В завершение
Трудно рассказать в одной статье обо всех аспектах Windows + QEMU/KVM, поэтому завершим в следующей. А там будет самый смак, командный интерфейс, разрешение экрана максимум 1024×768, Сцилла pulseaudio и Харибда сети, команда virsh и настройка ВМ из конфиг файла, фейл с tpm, двоичный синтаксис устройств и прочие тихие радости.
- ↑TUN/TAP interfaces
- ↑Ethernet bridging
- ↑От английского root
Источник: http://habr.com/ru/post/313144/