- Устанавливаем Windows в виртуальной машине (KVM/QEMU) на Linux — без VirtualBox и VMware
- Проверка поддержки виртуализации оборудованием:
- Установка KVM и QEMU:
- Создание и настройка виртуальных машин KVM в GUI:
- Виртуализация операционных систем с помощью QEMU. Основы работы с эмулятором
- Как установить QEMU в Windows
- Виртуализация операционных систем в QEMU
Устанавливаем Windows в виртуальной машине (KVM/QEMU) на Linux — без VirtualBox и VMware
Начинающие пользователи операционных систем на базе ядра Linux (да, Linux это не «операционная система», а «ядро» операционной системы, но об этом как-нибудь в другой раз), мигрировавшие из мира Windows, рано или поздно сталкиваются с необходимостью создать «виртуалку» для запуска ещё одной ОС параллельно основной.
Одних в эти степи заводит жажда экспериментов (а как иначе, если вы мигрировали из уютненького мира Windows в тёплый ламповый мир Linux), других — необходимость запустить ПО существующее только для определённой операционной системы. И начинаются поиски туториалов «как установить Windows в VMware Player или VirtualBox на Linux|Ubuntu». Но почему-то мало где пишут о том, что в ядро Linux уже встроена своя «виртуалка», которая отлично работает без танцев с бубном и «красных глаз». Имя ей «KVM» и её установкой и настройкой мы сегодня и займёмся.
Итак, KVM или Kernel Virtual Module — это программное решение, обеспечивающее виртуализацию в среде Linux на платформе x86, которая поддерживает аппаратную виртуализацию на базе Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Machine). KVM использует QEMU в качестве фронтенда и для эмуляции некоторых устройств.
В свою очередь QEMU — свободная программа с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ. Включает в себя эмуляцию процессоров Intel x86 и устройств ввода-вывода. Может эмулировать 80386, 80486, Pentium, Pentium Pro, AMD64 и другие x86-совместимые процессоры; PowerPC, ARM, MIPS, SPARC, SPARC64, m68k — лишь частично.
Надеюсь вы поняли, что это очень крутая штука, которая даёт прикурить как VirtualBox, так и решениям от VMware (плюс ещё и полностью бесплатная, в отличии от некоторых предложений последней). Приступим к делу.
Проверка поддержки виртуализации оборудованием:
Вообще последние лет 10 на рынке практически не было x86-процессоров, которые бы не поддерживали аппаратную виртулизацию, т.ч. с вероятностью в 99% ваш компьютер имеет поддержку всех необходимых технологий. Но всё же стоит проверить это с помощью следующей команды в терминале:
egrep -c ‘(vmx|svm)’ /proc/cpuinfo
Если в результате терминал выдаст число большее чем 0 (у меня, например, было 4) — значит ваш процессор поддерживает аппаратную виртуализацию и можно сразу переходить к следующему разделу этой статьи.
А вот если терминал выдал 0 — значит ваш процессор не поддерживает аппаратную виртуализацию или система думает, что ваш процессор не имеет такой поддержки, хотя по факту она есть. Причина этого скорее всего банальна — в BIOS отключена поддержка технологий виртуализации. Это легко решаемо — необходимо зайти в настройки BIOS (о том как это сделать было упомянуто в этой статье) и найти там следующие опции (одну или несколько) и включить их:
- Для процессоров Intel: Intel VT или Intel Virtualization Technology, или VT-x, или VT-d, или Intel vPro
- Для процессоров AMD: AMD-V, или AMD Virtualization, или AMD Secure Virtual Machine, или AMD SVM
Кстати, не забудьте после включения соответствующей опции в BIOS сохранить настройки — как правило это кнопка F10, но бывают и исключения (просто внимательно читайте всё что на экране — искомое «Save and exit setup» или что-то аналогичное).
Установка KVM и QEMU:
Здесь всё просто, т.к. все необходимые пакеты есть в репозиториях всех популярных дистрибутивов. Мы будем рассматривать на примере установки в Ubuntu-based дистрибутивах, но и в openSUSE, Manjaro и прочих все нижеперечисленные пакеты есть — надеюсь сами разберётесь. Если не разберётесь, тогда задавайте вопросы в комментариях.
Итак, команды для уставновки KVM и утилит QEMU:
sudo apt install qemu-kvm qemu-utils libvirt-bin bridge-utils virt-manager cpu-checker
После завершения установки вам необходимо будет добавить своего пользователя в группу libvirtd. Делаем в терминале:
sudo gpasswd -a ПОЛЬЗОВАТЕЛЬ libvirtd
Вместо «ПОЛЬЗОВАТЕЛЬ» необходимо указать имя вашего пользователя — если забыли, то в терминале это всё то, что написано перед знаком «@». Вообще желательно теперь разлогиниться и вновь залогиниться, но лично у автора всегда всё и так работало без релогина.
Теперь проверяем правильно ли всё было установлено (вводим команду в терминале):
Если всё и правда «ок», тогда терминал в ответ выдаст:
INFO: /dev/kvm exists
KVM acceleration can be used
Всё, KVM установлен, осталось настроить и использовать. Именно этим сейчас и займёмся.
Вообще на просторах сети множество туториалов, инструкций, советов и прочих опусов о настройке KVM и QEMU, но все они пестрят огромным количеством шаманских команд в терминале, суть которых понимают только гуру и мастера игры на бубне. При этом в таких командах описан порядок создания и настройки сетевого моста (проброс подключения к сети виртуальных машин), создания виртуальных разделов жесткого диска, создание и настройка самих виртуальных машин и подключения к ним установочных образов и всё такое прочее — ничего такого, что нельзя сделать с помощью мыши.
Мы же пойдём другим путём — будем всё настраивать с помощью графической оболочки (GUI) для KVM и QEMU. Это намного более понятно для всех тех пользователей, которые ранее имели опыт работы с приложениями от VMware и VirtualBox, а те кто не имели — намного быстрее разберутся в графической оболочке, чем в командах для терминала.
Создание и настройка виртуальных машин KVM в GUI:
Находим в списке установленных программ свежую «Менеджер виртуальных машин» (если у вас меню приложений группируется по категориям — должно быть в разделе «Администрирование») и запускаем.
Далее опишу алгоритм создания виртуальной машины для установки Windows. Понятное дело, что для установки Windows нам необходим будет установочный ISO образ. Образ Windows 10 можно свободно скачать на сайте Microsoft по следующей ссылке: https://www.microsoft.com/uk-ua/software-download/windows10ISO.
- выбираем меню «Файл» — «Новая виртуальная машина»;
- дальше ничего не меняем и оставляем «Локальный ISO или CDROM» (в этом окне также можно задать подгрузку установочного образа из сети, сетевую загрузку или подключение уже готовой виртуальной машины) и жмём «Вперёд»;
- далее ничего не меняем, если устанавливать гостевую ОС будем с диска, вставленного в привод, а в случае если установка будет производиться из ISO образа — выбираем «Образ ISO», жмём «Обзор». В следующем окне жмём внизу кнопку «Локальный файл» и выбираем скачанный заранее установочный ISO образ (после однократного использования любого ISO файла, он будет добавлен в перечень томов хранилища и поэтому в следующий раз нет необходимости искать его в диспетчере файлов) и жмём «Вперёд»;
- галочку «Автоматически определить операционную систему носителя» нет необходимости ставить или убирать — на моём опыте KVM ещё ни разу сам этого корректно не сделал, поэтому не обращаем внимание на это;
- далее нам предложат настроить размер выделяемой оперативной памяти и количества ядер процессора для гостевой ОС — здесь необходимо выставить как минимум минимальные системные требования. Для Windows 10 это 1024 МиБ (для 32-битной версии) или 2048 МиБ (для 64-битной версии) оперативной памяти и как минимум 2 ядра процессора (но важно понимать, что оптимальным параметром является не более 1/2 от всех физических ядер вашего процессора — поэтому если у вас 2-х ядерный процессор, то не выбирайте более «1» ядра для гостевой). После выставления значений жмём «Вперёд»;
- далее нам предложат настроить размер выделяемой постоянной памяти для гостевой ОС — это будет наш виртуальный жесткий диск;
- в следующем окне задаём имя для нашей виртуальной машины (пишем на ваш выбор) и отметить галочкой пункт «Дополнить конфигурацию перед установкой» — жмём «Готово»;
- перед нами окно дополнительных настроек виртуальной машины — здесь необходимо будет сделать ещё несколько корректировок (в нашем случае будем настраивать для Windows, но прирблизительно аналогичные настройки подойдут и практически для всех дистрибутивов Linux и *BSD):
- в разделе «Процессоры» выбираем «Копировать конфигурацию ЦП хоста» — теперь наша виртуальная машина будет видеть наш реальный CPU, хотя в этом пункте можно выбрать и эмуляцию других архитектур с помощью QEMU;
- в разделе «Параметры загрузки» выбираем «Включить меню загрузки», после чего поставить галочки напротив «Диск 1» и «CDROM», затем с помощью стрелок необходимо пункт «CDROM» поставить на первое место в списке;
- в разделе «CDROM» необходимо подключить установочный ISO образ — да, мы это уже делали в предыдущих пунктах на этапе создания виртуальной машины, но здесь вот такая алогичная логика — просто выбираем ещё раз тот же самый установочный ISO образ;
- в разделе «Дисплей Spice» необходимо изменить тип на «VNC-сервер» — Windows не умеет должным образом взаимодействовать с Spice, поэтому необходимо изменить тип на VNC;
- в разделе «Видео QXL» изменить модель на VGA — аналогично ситуации со Spice, гостевая Windows нормально взаимодействует с VGA, но не с QXL.
- теперь можно начинать установку Windows в виртуальной машине KVM — в верхнем левом углу выбираем кнопку «Показать графическую консоль», затем на кнопку «Включить виртуальную машину» (кнопка Play):
- в окне с белым текстом на чёрном фоне нажать «F12», затем «1» и «Enter» — всё, загрузка с установочного ISO образа началась.
Предупреждение №1: гостевая ОС перехватывает управление мышью — для возврата курсора необходимо нажать одновременно левые «Ctrl» и «Alt».
Предупреждение №2: часто наблюдаются проблемы с выходом из полноэкранного режима — здесь можно поступить двумя способами:
- повесить шорткат на функцию «Показать рабочий стол» — после использования комбинации, описанной в «Предупреждении №1» используйте шорткат для «Показать рабочий стол» для выхода из полноэкранного режима;
- после использования комбинации, описанной в «Предупреждении №1» используйте всем известный шорткат «Alt» + «Tab» для переключения на любое другое открытое окно.
Предупреждение №3: если вы попали на эту страницу в поисках решения ошибки «Не удалось завершить установку: «Couldn’t create storage volume ‘.qcow2’: ‘внутренняя ошибка: для создания обработанных образов файлов требуется qemu-img’»» — решение есть и оно очень простое (но на просторах рускоязычного интернета об этом почему-то мало написано, хотя инструкций по настройке KVM, которые и приводят к такой ошибке — вагон и маленькая тележка). Итак, всё что необходимо, это установить пакет «qemu-utils». В Ubuntu-based дистрибутивах это команда:
sudo apt install qemu-utils
В других дистрибутивах — воспользуйтесь поиском указанного пакета в вашем менеджере пакетов (он присутствует в стандартных репозиториях с вероятностью в 99,9%).
Если вы следовали инструкциям по установке из этой статьи, тогда подобной проблемы у вас не будет с установкой Windows в виртуальную машину KVM, т.к. в разделе об установке учтена данная часто встречающаяся проблема.
Ниже подборка скриншотов потнастройке KVM — для наглядности:
Вот и всё — больше здесь рассказывать особо не о чем, т.к. подробный разбор всех возможностей KVM и QEMU растянется на много-много страниц. Да и нет в этом смысла, т.к. тонкости настройки и использования хорошо описаны на linux-kvm.org и qemu-project.org
Держите ваши напильники в чистоте и до скорого!
PS: для удаления установленного KVM и QEMU из Ubuntu-based систем необходимо выполнить следующие команды в терминале:
sudo apt purge qemu-kvm qemu-utils libvirt-bin bridge-utils virt-manager
sudo apt autoremove
sudo rm -r /etc/apparmor.d/abstractions/
sudo rm -r /etc/libvirt/qemu/networks/autostart/
sudo rm -r /var/cache/libvirt/qemu/
sudo rm -r /var/lib/libvirt/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 . С другой стороны, инструмент позволяет эмулировать работу устройств на базе разных архитектур, не поддерживаемые популярными гипервизорами.