Как установить qemu на debian

Обновлено: 06.07.2024

Ранее я уже писал об установке Qemu-KVM в Debian. Но, на мой взгляд, информация получилась неполной. Плюс я не учёл некоторые нюансы. Потому предлагаю вашему вниманию обновлённую статью по установке виртуальной машины Qemu-KVM. Старую статью, естественно, удалю.

Думаю, объяснять что такое виртуальная машина, не стоит. Вы наверняка это знаете (раз читаете эту статью). Если нет - прочитайте это. Мы же остановимся непосредсвенно на сабже. Qemu-KVM - это проект по объединению двух замечтальнейшийх (на мой взгляд) технологий полной виртуализации. Qemu - это своего рода "эмулятор компьютера", который поддерживает великое множество аппаратных архитектур. В нём можно запустить практически любую ОС для любого устройства (к примеру я запускал старые версии Mac OS X, который для PowerPC). Недостатком Qemu является его медлительность вследствии отсутствия аппратного ускорения. И тут на помощь приходит другой проект - KVM. Или Kernel Virtual Machine. KVM - это технология ядра Linux, которая позволяет обеспечить аппаратное ускорение при полной виртуализации. Недостатком KVM является поддержка только архитектуры x86

Почему Qemu-KVM? Для Linux это самый рекомендуемый проект виртуализации. Он работает быстрее, чем VirtualBox и VMware Player (по моим тестам), KVM - это родная для Линукса технология. Плюс, если вы обладатель хорошего игрового компьютера с двумя видеокартами, вы можете установить в Qemu-KVM Windows, пробросить в неё одну из видеокарт, и забыть о перезагрузке в другую ОС. Захотели поиграть - запустили виртуалку с виндой и играете. Производительность будет 95% от производительности установленной на "железо" винды. Но это просто шикарно, на мой взгляд. Об этом я напишу отдельную статью. Будет интересно :)

А теперь опишу план наших действий. Во первых, установку я буду проводить на примере Debian 8.2 GNOME 64 bit, хотя, особых различий в других графических окружениях не будет. Во-вторых - я буду описывать работу с KVM только в графическом режиме (мы ведь не на сервер будет его ставить). Поэтому никаких терминалов, скриптов и так далее, как обычно поступают в случае серверной виртуализации. В третьих - советую вам дополнительно прочитать документацию к Qemu и KVM (ссылки дам в конце статьи). Вам это очень пригодится, если вы хотите по-максимуму использовать весь потенциал этой связки. Ну чтож, план наших действий ясен. Теперь этапы действий:

  • установка qemu-kvm;
  • установка графического менеджера и дополнительных утилит;
  • настройка сетевого моста;
  • создание хранилища для виртуальных машин;
  • установка гостевой системы.

egrep '(vmx|svm)' /proc/cpuinfo

В выводе команды должны присутствовать либо vmx, либо svm. Если их нет - проверьте включена ли виртуализация в BIOS (ищите пункты Intel VT-i или аналогичный для AMD). Если ничего нет - значит не повезло.

Устанавливаем необходимые компоненты:

sudo apt install qemu-kvm bridge-utils libvirt-bin virt-manager

Добавляем себя в группу libvirt:

sudo adduser $USER libvirt

Теперь настроим сеть. Для того чтобы все виртауальные машины могли выходить в сеть и связываться друг с другом, нужно создать сетевой мост и виртаульные сетевые карты для каждой виртуалки (tap-устройства). Так как виртуальные машины мы будем устанавливать из графического интерфейса, то создавать вручную tap'ы не нужно. Virt Manager сделает это за нас при каждом запуске. Нам нужно только настроить мост. Для начала включим маршрутизацию в ядре:

sudo nano /etc/sysctl.conf

Ищем строку net.ipv4_forward=0 и меняем её значение на 1. Сохраняем и:

Далее я буду предполагать следующее: 1) на вашем компьютере есть одна сетевая карта, получающая ip-адрес от роутера. 2) вы выходите в интернет через 3G-модем, и сетевая карта у вас свободна. Этот вариант предполагает побольше ручной работы, но он проверен неоднократно (у самого так на одной из машин). Итак, открываем файл interfaces:

sudo nano /etc/network/interfaces

Его содержимое по умолчанию такое:

Меняем его содержимое. Для первого варианта:

Для второго варианта:

Примечание: если вам не нужно автоматическое подключение Интернета через модем после старта системы, уберите из конфига строки auto ppp0 и
iface ppp0 inet wvdial . В противном случае, убедитесь что при запуске системы, модем вставлен в USB-порт.

Сохраняем. Теперь для варианта с модемом, нужно установить программу дозвона wvdial:

sudo apt install wvdial

Правим конфиг (обратите внимание: в качестве примера используется 3G-модем Beeline. Примеры конфигов для других модемов вы без труда найдёте в интернете):

sudo nano /etc/wvdial.conf

Сохраняем. Теперь модем будет включаться сразу после загрузки системы. Строка up route del default br0 удаляет маршрут по умолчанию через мост. Если этого не сделать, вы не сможете соединиться с Интернетом, так как трафик будет идти по мосту, а не через 3G-модем.

Последним этапом нам нужно сказать фаерволлу, чтобы он пропускал в сеть трафик от наших виртуалок и обратно. Для этого можно пойти двумя путями: написать скрипт с несколькими правилами для iptables, который будет запускаться вместе с системой, или ввести эти правила вручную и сохранить их. Я воспользуюсь первым вариантом. Для второго вам нужно будет установить пакет iptables-persistent и просто поочерёдно вводить правила (с использованием sudo). Итак. создаём скрипт (в любом текстовом редакторе). Вставляем туда следующее содержимое:

Сохраняем его как gateway.sh и даём права на выполнение (либо в свойствах файла, либо в терминале командой chmod +x gateway.sh). Теперь вы можете либо запускать его вручную, после того как загрузилась система, либо добавить в автозагрузку. Для этого переместите скрипт в

/.config/autostart (в файловом менеджере включите показ скрытых файлов, и вы увидите каталог .config в домашней директории).

Теперь всё готово для установки виртуальной машины. Из меню приложений запускаем Virt Manager (менеджер виртуальных машин):


Кликаем правой кнопкой на строке localhost и выбираем Детали. Переходим на вкладку Хранилище. Нам нужно указать каталог (или раздел диска/диск) для хранения виртуальных машин.


В левом нижнем углу жмём на плюсик (Добавить пул), указывам тип хранилища и путь к нему.


На вкладке Сетевые интерфейсы, можете проверить, всё ли работает.


Теперь нажимаем Файл - New virtual machine. Указываем путь к образу диска, тип виртуальной машины. Далее указываем количество оперативной памяти для неё и количество ядер процессора. Далее указываем наше хранилище и нажимаем Новый том. Указываем название, тип оставляем qcow2, и размер. Это будет виртуальный жёсткий диск. Если планируете устанавливать систему с графической оболочкой и кучей программ, дайте места побольше (гигов 50). На последней вкладке ставим галочку на Изменить настройки перед запуском, проверяем что в качестве сетевого устройства выбран наш мост, пишем любое название для виртуалки и жмём Завершить. Перед вами откроется окно параметров этой виртуальной машины.






Переходим на вкладку Процессор, и ставим галочку на Скопировать настройки процессора хост-системы.


Далее на вкладку Диск, и указываем тип шины VirtIO (самая производительная).


Далее на вкладку Сеть (следующая), и также указываем vitio. На вкладке Дисплей укажите Spice, а на вкладке Видео - QXL. Обычно эта связка обеспечивает максимальную производительность отрисовки графики, но, если хотите, можете поэксперементировать. Учтите, что для гостевых систем Windows, требуется отдельная установка QXL-драйвера (в самой Windows).



Теперь когда всё готово, в левом верхнем углу жмём Начать установку. И ставим систему как обычно, за одним исключением: как только установщик начнёт автоматически настраивать сеть, нажмите Отмена, и выберите Настроить сеть вручную. Укажите для виртуалки желаемый IP-адрес (в нашем случае 192.168.0.3), маску подсети (255.255.255.0), шлюз (шлюзом будет адрес хоста, тоесть 192.168.0.2) и DNS-сервер (здесь просто укажите Гугловский 8.8.8.8). И всё. Дальше ничего делать не нужно. Ставьте систему и настраивайте. В общем-то, всё. Описанные действия - это способ заменить, скажем, VirtualBox на более лучшую альтернативу. Прочитав документацию, вы поймёте, насколько широки возможности Qemu-KVM. Я намеренно не стал описывать здесь дополнительные консольные параметры и методы запуска виртуальных машин через терминал, так как это далеко не всегда нужно на домашней машине. Об этом я напишу отдельную статью, по настройке домашнего многофункционального сервера (который также сможет выступать в качестве сервера виртуальных машин). Для тех, кто по каким-то причинам не понял написанное, или остались непонятные моменты - предлагаю посмотреть ролик, в котором я уже не опишу, а покажу, как всё это добро устанавливать и настраивать. Если у вас есть предложения или дополнения к статье - пишите в комментариях.

Дополнение: для работы графических окружений, которым необходимо 3D ускорение, установите пакеты spice-vdagent и xserver-xorg-video-qxl

Данная статья — это обобщение информации, накопленной за время использования гипервизора Qemu-KVM. Я хочу поделиться теми знаниями опытом, которыми обладаю на данный момент. Надеюсь, что моя статья пойдет на пользу тем, кто только собирается использовать гипервизор Qemu-KVM или уже использует. И еще: статья не для новичков linux (элементарные вещи здесь рассматриваться не будут).

Про данную систему виртуализации в сети написано много. Но когда действительно начинаешь с ней работать — сталкиваешься с нехваткой информации и практических примеров применения. Итак приступим.

  • процессор Atlon X2 245
  • оперативная память 4 гигабайта
  • жесткий диск 500 гигабайт
  • материнская плата ASUS M4N68T-M LE.
  1. Microsoft hyper-v не подходит — платная. Компания, в которой я работаю использует только лицензионное программное обеспечение. Следовательно никто не выделит для моих целей лицензию на сервер.
  2. VMWARE ESXi не знает контролера SATA, расположенного на материнской плате (поскольку разрабатывалась для серверных систем).
  3. Qemu-kvm — свободно разрабатываемый гипервизор, поддерживает аппаратную виртуализацию. Его можно установить в любой современный дистрибутив Linux. Это по мне, его и берем.

Переходим к делу. Установку операционной среды описывать я не буду. Оговорюсь лишь, что во время установки операционной среды жесткий диск большего размера не трогал. Его время еще придет. Как установить гипервизор на Debian очень хорошо описано здесь. Лично я ставлю qemu-kvm libvirt-bin.

Гипервизор поставили, теперь немного о внутренней структуре. Есть два каталога, в которые стоит заглянуть:
/etc/libvirt/ — здесь в основном хранятся конфигурационные файлы
/var/lib/libvirt/ — здесь будут хранится образы жестких дисков, мгновенные снимки системы и многое другое.
Наш гипервизор установлен.

Далее сохраняем файл и перезагружаем компьютер.
О, чудо! Гипервизор установлен!
Дальше возникает вопрос: как управлять сервером? Управлять Qemu-kvm можно двумя программами: virt-manager и virtinst.

Virt-manager.
Эта программа рассчитана на графический интерфейс. Она поддерживает как удаленное управление виртуальными машинами, так и локальное. Но у нее есть огромный минус — аналогов для windows попросту нет.
Как лично я вышел из положения. Установил графическую оболочку LXDE и сервер xrdp, благодаря такому нехитрому набору программ мне не пришлось физически ходить к компьютеру (больно много ему чести). Я просто подключался через стандартный RDP клиент который, есть в windows. Но это дополнительная трата ресурсов компьютера.
Если вы установили virt-manager, он автоматически создает:
хранилище для образов виртуальных машин по пути /var/lib/libvirt/images
виртуальный сетевой интерфейс default.
Следовательно подмонтировать жесткий диск с большим объемом нужно в директорию /var/lib/libvirt/images.

  1. можно подмонтировать жесткий диск в директорию и указать его в качестве хранилища
  2. можно просто устройство выбрать хранилищем.

Если не создавать хранилище для образов дисков виртуальных машин, то для того, чтобы диски лежали в одном месте, нужно будет указывать полный путь к образу при его создании(много писать), а так образ создастся в указанном пуле или если он у вас единственный, то его имя указывать не обязательно. Конфигурационный файл пула будет лежать в директории /etc/libvirt/storage/ это .xml файлик. Выходим из virsh введя команду exit.

В принципе наш гипервизор установился и его можно использовать. Но есть еще маленькая мелочь, о которой хотелось бы упомянуть. А именно о том, как работает Qemu-kvm.

Запущенная на нем виртуальная машина шлет команды физическому процессору напрямую через загружаемый модуль (kvm-amd или kvm-intel). Это должен быть один из модулей, который соответствует производителю процессора (Intel или AMD).

  • отключаю поддержку звука (это сервер, а не рабочая станция);
  • не использую протокол IPv6 (в моей сети он не используется);
  • отключаю поддержку сетевых карт wifi, wmax и все что сними связанно.

В сборке собственного ядра мне помогли вот эти статьи первая и вторая.

Забегу немного вперед. Многие люди в интернете жаловались на то, что модель сетевой карты virtio некорректно работает. Этому есть объяснение, и достаточно простое. Драйвера для этого устройства находятся в стадии экспериментальных. Зато virtio storage работают отлично.

Теперь начинаем работать с виртуальными машинами. Создаем нашу первую виртуальную машину:
virt-install --connect qemu:///system \
--name comp1 \
--ram 512 \
--vcpus=1 \
--disk pool=storage,cache=none,size=20, format= qcow2\
--disk /home/firsachi/Winxp.iso,device=cdrom \
--bridge=br0,model=e1000 \
--os-type=windows
--os-variant=winxp \
--graphics vnc,port=5901,listen=0.0.0.0

Некоторые детали хочу пояснить:
pool=storage указываем пул, в котором нужно создать диск;
cache=none это означает, что отключено кэширование записи на диск. В моем случае это образ img. При включенном кэшировании записи вдвое увеличивается время обращения к диску виртуальной машины;
size=20 размер диска в гигабайтах;
format= qcow2 это формат образа диска. Как я понял, только он поддерживает снимки системы;
model=e1000 модель сетевой гигабитной карты Intel (по умолчанию идет стомегабитный rtl8139);
port=5901 порт, на который можно обратиться с помощью Ultra VNC Viewer;
listen=0.0.0.0 разрешение подключиться со всех IP (по умолчанию слушает только localhost).
Установку можно произвести непосредственно и на устройство. Выглядеть будет так:
virt-install --connect qemu:///system \
--name comp1 \
--ram 512 \
--vcpus=1 \
--disk /dev/sdb, format= qcow2\
--disk /home/firsachi/Winxp.iso,device=cdrom \
--bridge=br0,model=e1000 \
--os-type=windows
--os-variant=winxp \
--graphics vnc,port=5901,listen=0.0.0.0

Где sdb должен быть заменен на ваше устройство.

Если все прошло успешно, то для подключения к консоли нашей виртуальной машины нужно установить Ultra VNC Viewer к себе на компьютер. В подключении нужно указать IP адрес сервера и порт, или доменное имя сервера и порт.
Как происходит установка Windows, надеюсь, знают все.

Теперь о драйверах виртуальных машин. Для установки драйверов нужны следующие образы дисков: virtio-win-0.1-30.iso и viostor-0.1-30-floppy.img
Последний диск не обязателен, он нужен только в том случае, если вы собираетесь установить windows xp или windows 2003 server на virtio storage (кстати, если так сделать, то операционная система работает быстрее).

  • comp1 – имя виртуального компьютера, к которому подключаем диск.
  • /dev/sdc – путь к устройству на физическом компьютере.
  • Vdv — куда подключаем на виртуальной машине.
  • --type – тип диска.

Во многом поможет и вот эта статья. Рекомендую также заглядывать вот сюда.

  • компьютер, на котором работала виртуальная машина, сгорел (процессор Atlon X2 245).
  • раз в неделю виртуальная машина выключается и делается резервная копия файла конфигурации и образа диска.

Установил на нем Qemu-KVM, переместил на него файл конфигурации виртуальной машины и образ диска. В файле конфигурации отредактировал путь к диску виртуальной машины, перезагрузил ноутбук. И, о чудо! Гипервизор не только увидел мою виртуальную машину, но и запустил ее.

Вот так теперь и живем: гипервизор Qemu-KVM, виртуальный контролер домена, и довольный проделанной работой я.
Спасибо всем, кто дочитал до конца. Надеюсь, мои мысли оказались полезными.


Установите KVM на Debian 11 Bullseye

Шаг 1. Перед установкой любого программного обеспечения важно убедиться, что ваша система обновлена, выполнив следующие apt команды в терминале:

Шаг 2. Проверьте поддержку виртуализации.

Прежде чем начать установку KVM, проверьте, поддерживает ли ваш ЦП аппаратную виртуализацию. Теперь откройте командный терминал и выполните указанные команды:

Как установить KVM на Debian 11

Если вывод вышеуказанной команды больше нуля, то мы можем сказать, что в вашей системе включена технология виртуализации. Если результат равен нулю, мы должны перезапустить систему, перейти в настройки BIOS и затем включить VT-x (расширение технологии виртуализации) для процессора Intel и AMD-V для процессора AMD.

Шаг 3. Установка KVM в Debian 11.

Теперь мы устанавливаем все необходимое для установки Qemu, гипервизора KVM и Libvirt в системе Debian 11:

После этого установите необходимые пакеты KVM с помощью следующей команды:

Затем запустите virsh команду, чтобы вывести список доступных сетей для виртуальных машин KVM:

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

Шаг 4. Создайте виртуальные машины с помощью графического интерфейса Virt-Manager.

Сначала откройте средство запуска приложений, найдите «Диспетчер виртуальных машин» (VVM) и запустите его. Перед его открытием система попросит предоставить пароль root.

Как установить KVM на Debian 11

В окне диспетчера виртуальных машин щелкните первый значок на панели инструментов.

Как установить KVM на Debian 11

Затем выберите расположение установочного носителя.

Как установить KVM на Debian 11

Вы можете установить его с диска, ISO-образа или даже из сетевой папки.

Как установить KVM на Debian 11

Затем выделите память и ЦП для вашей виртуальной машины.

Как установить KVM на Debian 11

После этого укажите размер вашего виртуального диска. Если вы установите этот флажок перед выделением всего диска сейчас, то размер диска будет фиксированным.

Как установить KVM на Debian 11

В следующем окне вы можете дать своей виртуальной машине имя. Затем нажмите «Готово», чтобы начать установку ОС на вашу виртуальную машину.

Как установить KVM на Debian 11

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

Поздравляю! Вы успешно установили KVM . Благодарим за использование этого руководства для установки последней версии KVM (виртуальная машина на основе ядра) на Debian 11 Bullseye. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт KVM .


Предварительная установка

Для запуска KVM, необходимо процессор поддерживающий аппаратную виртуализацию. Intel и AMD и разработали расширения для своих процессоров, считаются соответственно Intel VT-х (кодовое название Vanderpool) и AMD-V (кодовое название Pacifica). Чтобы узнать поддерживает ваш процессор данную опцию, выполните:

По умолчанию, если вы загрузились в XEN ядро не будет отображаться SVM или флаг VMX с помощью команды GREP. Чтобы увидеть включены ли данные флаги от Xen, введите:

Вы должны увидеть HVM флаги.

Кроме того, вы можете выполнить:

Если получите следующий вывод, то у вас все хорошо и у вас имеется поддержка:

Если получите следующий вывод, то у вас нет поддержки и будет работать гораздо медленнее без этих расширений KVM:

Используйте 64 битное ядро (если это возможно)

Запуск на 64 битном ядре рекомендуется, но не требуется.

Чтобы обеспечить поддержку более 2 Гб оперативной памяти для виртуальных машин, необходимо использовать 64-битное ядро. На 32-битном ядре будут ограничено использование РАМ до 2 Гб.

Кроме того, 64-разрядная система может содержать как 32-разрядные, так и 64-разрядные ОС, а 32-битная система может вместить только 32-разрядные ОС ваших виртуальных машин. Чтобы проверить, какой розрядности ваш процессор, вы можете запустить эту команду:

  • Если вы имеете 0, то это означает что ваш процессор не 64-битный.
  • Если вы имеете 1 и выше, то это говорит что имеет поддержку.

Чтобы посмотреть архитектуру вашего сервера, используйте:

x86_64 указывает работу c 64-разрядным ядром. Если вы используете i386, i486, i586 или i686, вы работаете в 32-битным ядром.

Установка гипервизора KVM на Debian/Ubuntu

Для минимальной установки, потребуется лишь следующий пакет virtinst который можно установить:

Следующие пакеты необходимы если вам необходимо включить KVM на уже установленной ОС, я установлю и их:

Для того, тобы использовать графический интерфейс установите:

Моя первая виртуальная машина будет установлена именно через графический интерфейс т.к он очень простой.

Добавляем своего пользователя в группы:

После установки, вы должны войти снова, чтобы ваш пользователь становится действительным членом KVM и libvirtd групп пользователей. Члены этой группы могут запускать виртуальные машины.

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

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

Если у вас имееться сетевой интерфейс eth0, то его нужно заменить на br0 с добавляем следующих строк:

Я буду использовать следующий пример с DHCP

Это создаст виртуальный интерфейс br0.

Теперь перезагрузите сеть:

Замените f4:6d:04:08:f1:5f с аппаратным адресом физического Ethernet адаптер, который всегда будет частью моста.

Проверка установки KVM

Если получите вывод:

Файл sock должен иметь права, аналогичные как:

Так же, /dev/kvm должен иметь правильные группы. Если ты видишь:

Вы можете столкнуться с проблемами при создании виртуальной машины. Изменить группу устройства для kvm/libvirtd:

Теперь вам нужно либо войти снова или перезагрузить модули ядра:

Читайте также: