Гид по технологиям

Как установить виртуальную машину на Linux с QEMU/KVM

9 min read Virtualization Обновлено 23 Dec 2025
Установка ВМ на Linux с QEMU/KVM
Установка ВМ на Linux с QEMU/KVM

Рабочий стол виртуальной машины QEMU/KVM

Виртуальная машина (ВМ) позволяет запускать и тестировать операционные системы без изменения разделов жёсткого диска. QEMU и KVM — распространённый тандем для нативной виртуализации в Linux: QEMU эмулирует аппаратную платформу и обеспечивает гибкость, а KVM даёт аппаратное ускорение через ядро Linux.

В этом руководстве показано, как настроить виртуальную машину на Ubuntu (Debian‑based) с использованием QEMU/KVM и установить в ней Manjaro Linux как пример гостевой ОС. Подход применим и к другим дистрибутивам и гостям (включая Windows).

О чём эта статья

  • Пошаговая установка QEMU/KVM на Ubuntu
  • Проверка поддержки виртуализации и загрузка модулей
  • Создание виртуального диска с qemu-img
  • Установка гостевой ОС из ISO через QEMU/KVM
  • Настройка сети: NAT, мост (bridged) и рекомендации
  • Резервные копии, снимки (snapshots) и миграция дисков
  • Советы по безопасности и производительности
  • Чек‑листы для админа, разработчика и тестировщика
  • Критерии приёмки и примеры команд

Что такое QEMU и KVM

QEMU — это эмулятор и «hosted» виртуальный монитор машин, способный эмулировать архитектуру CPU. Без KVM QEMU работает полностью в программной эмуляции, что медленнее.

KVM (Kernel Virtual Machine) — модуль ядра Linux, который превращает Linux в гипервизор типа 1. KVM использует аппаратные расширения процессора (Intel VT‑x или AMD‑V) для ускорения гостевых систем.

Примеры ключевых компонентов и терминов (одной строкой):

  • QEMU: эмуляция устройств и образов дисков.
  • KVM: аппаратное ускорение через модуль ядра.
  • libvirt: API/демон для управления виртуальными машинами (virsh, virt‑manager).
  • qemu-img: утилита для создания и конвертации образов дисков.

Требования и подготовка

  1. Совместимый CPU: Intel (vmx) или AMD (svm). Проводим быструю проверку:
egrep -c '(vmx|svm)' /proc/cpuinfo

Результат > 0 означает наличие аппаратной поддержки виртуализации.

  1. Права администратора (sudo).
  2. Доступ в интернет для загрузки пакетов и ISO.
  3. Рекомендуем минимум 8 ГБ свободного места для образов и 4 ГБ RAM для гостя (зависит от задачи).

Важно: если на хосте включены функции безопасности (SELinux, AppArmor), проверьте совместимость с libvirt и QEMU; в Ubuntu обычно используется AppArmor с профилями для libvirt.

Установка QEMU/KVM и зависимостей (Ubuntu/Debian)

Обновите индексы пакетов:

sudo apt update

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

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

Пояснения:

  • qemu-kvm — сам QEMU с поддержкой KVM.
  • libvirt-daemon-system и libvirt-clients — демон и клиенты для управления ВМ.
  • bridge-utils — инструменты для настройки сетевых мостов.
  • virt-manager — графический менеджер виртуальных машин (альтернатива командной строке).

После установки загрузите модуль KVM для вашей архитектуры:

Для Intel:

sudo modprobe kvm-intel

Для AMD:

sudo modprobe kvm-amd

Проверьте, что модуль загружен:

lsmod | grep kvm

Добавьте вашего пользователя в группы libvirt и kvm, чтобы запускать ВМ без sudo:

sudo usermod -aG libvirt,kvm $(whoami)

Выйдите и снова войдите в сессию (или выполните newgrp), чтобы изменения групп вступили в силу.

Запустите и проверьте демон libvirt:

systemctl enable --now libvirtd
sudo virsh list --all

Если virsh отвечает, libvirt работает корректно.

Создание каталога для ВМ и виртуального диска

Рекомендуем хранить образы в отдельной папке: ~/KVM

cd ~
mkdir -p KVM
cd KVM

Создайте файл диска QCOW2 (экономит место, поддерживает снимки):

qemu-img create -f qcow2 manjaro_disk.img 12G

Пояснение опций:

  • -f qcow2 — формат QCOW2 (экономия пространства, copy‑on‑write).
  • 12G — начальный максимально выделяемый размер. QCOW2 резервирует только используемое пространство.

Альтернативы форматов: raw (быстрее, но занимает место), vmdk/ vdi (совместимость с другими гипервизорами).

Подготовка ISO гостевой системы

Скачайте ISO гостевой ОС (в нашем примере Manjaro XFCE). Поместите ISO, например, в ~/Downloads.

Проверьте хеш ISO (опционально) для уверенности в целостности:

sha256sum ~/Downloads/manjaro-xfce-*.iso

Установка гостевой ОС через QEMU/KVM (CLI)

Для инициализации установки вы можете использовать команду kvm (в некоторых системах это бинарник‑алиас) или qemu-system-x86_64 с включением KVM:

qemu-system-x86_64 -enable-kvm -m 2048 -cdrom ~/Downloads/manjaro-xfce-20.2.1-210103-linux59.iso -boot d ~/KVM/manjaro_disk.img

Пояснения:

  • -enable-kvm — включает аппаратное ускорение.
  • -m 2048 — выделяет 2048 МБ RAM для установки (подберите под вашу машину).
  • -cdrom — путь к ISO как к виртуальному CD.
  • -boot d — загрузка с виртуального CDROM.

Если используется более старая команда «kvm», допускается её использование так же, как в примере выше.

Примечание: даже без физического CDROM опция -cdrom остаётся валидной и необходимой для установки.

Пример установки: шаги в инсталляторе

  1. При первом запуске появится меню загрузки Manjaro — выберите «Boot with open source drivers» и нажмите Enter.
  2. Войдя в live‑режим, нажмите “Launch installer”.
  3. Выберите язык, локацию и раскладку клавиатуры.
  4. Разметьте виртуальный диск — выберите «Erase disk» (это безопасно для виртуального диска).
  5. При желании включите шифрование образа (рекомендуется для переносимых образов с конфиденциальными данными).
  6. Установите пользователя и пароль; можно использовать один и тот же пароль для администратора.
  7. Дождитесь завершения установки и нажмите “Done”.

Manjar o Linux boot screen

manjaro linux installer screenshot

Manjaro Linux language selection screen

Manjaro Linux location selection

Manjaro Linux keyboard layout selection

Manjaro Linux select installation partition

Manjaro Linux user setup

Manjaro Linux office suite selection

Manjaro Linux installation progress

Manjaro Linux installation finalized

Запуск установленной виртуальной машины

После установки запустите ВМ с диска:

qemu-system-x86_64 -enable-kvm -m 2048 ~/KVM/manjaro_disk.img

Или, в сокращённом виде (иногда доступно как kvm):

kvm -m 2048 ~/KVM/manjaro_disk.img

Если хотите графический интерфейс управления — используйте virt‑manager: запустите “virt-manager” из меню или через терминал, подключитесь к локальной сессии libvirt и импортируйте созданный диск.

Сетевые схемы: NAT vs мост (bridged)

  • NAT (по умолчанию через libvirt): гостевая система выходит в сеть через адрес хоста. Это простая и безопасная схема для большинства задач (интернет‑доступ имеется, входящие подключения извне — нет).

  • Bridged (мост): гость получает IP в той же подсети, что и хост. Подходит, если нужен прямой доступ к ВМ из сети (серверы, тестирование сетевых сервисов).

Создание мостового интерфейса можно выполнить через NetworkManager/netplan/systemd‑networkd в зависимости от дистрибутива. Пример с bridge-utils (классический способ):

sudo ip link add name br0 type bridge
sudo ip link set dev br0 up
sudo ip addr flush dev eth0
sudo ip link set dev eth0 master br0
sudo dhclient br0

Затем в команде qemu укажите сетевую карту:

-netdev bridge,id=hn0,br=br0 -device virtio-net-pci,netdev=hn0

Примечание: современные версии QEMU рекомендуют использовать параметр -netdev вместо устаревших -net.

Снимки, бэкап и конвертация дисков

  • Создание снимка (snapshot) QCOW2 можно выполнять через qemu-img или через libvirt (virsh snapshot).
  • Резервное копирование образа: скопируйте QCOW2 файл либо используйте qemu-img convert для создания raw‑образа.

Пример конвертации в raw:

qemu-img convert -O raw manjaro_disk.img manjaro_disk.raw

Создание экспортируемого образа для переноса на другой хост:

qemu-img convert -O qcow2 manjaro_disk.img /path/to/target/manjaro_export.img

Копирование активного QCOW2 с минимальным простоем можно сделать через qemu‑img convert, но для консистентности рекомендуется остановить ВМ или использовать live‑snapshot инструменты.

Производительность и рекомендации

  • Используйте virtio‑драйверы для сетевого и дискового ввода/вывода (паравиртуализация) — это значительно повышает производительность.
  • Для быстрого дискового ввода/вывода предпочтителен raw‑формат на быстрых дисках; QCOW2 удобен для экономии пространства и снимков.
  • Для графики используйте опции -vga virtio или SPICE/VNC для удалённого доступа.
  • Для максимальной производительности включите в QEMU/VM опции CPU passthrough или задайте модель CPU host:
-cpu host

Это позволит гостю использовать те же инструкции, что и хост (с учётом безопасности и совместимости).

Безопасность и шифрование

  • Шифруйте образы, если переносите их или храните на носителях без защиты. Manjaro и большинство дистрибутивов поддерживают LUKS при установке.
  • Ограничьте доступ к сокетам libvirt (обычно /var/run/libvirt/libvirt-sock) и следите за правами групп.
  • Если доступ к ВМ возможен извне (bridged), используйте брандмауэр и вопросы безопасных паролей.
  • AppArmor/SELinux: проверьте сообщения в журнале при проблемах запуска — профили могут блокировать доступ к файлам образов.

Отладка — частые ошибки и решения

  1. «KVM not available» — проверьте /proc/cpuinfo на vmx/svm, убедитесь, что модуль kvm‑intel/kvm‑amd загружен.
  2. Проблемы с правами: убедитесь, что пользователь в группе libvirt и kvm.
  3. Сеть не работает в госте: проверьте настройки NAT/bridge, iptables/ufw на хосте.
  4. Медленная работа диска: проверьте тип образа (qcow2 vs raw) и драйвер virtio в госте.
  5. Ошибки AppArmor: временно отключите профиль или добавьте исключение для каталогов с образами.

Альтернативные подходы

  • virt‑manager — удобная GUI‑альтернатива для создания/настройки ВМ.
  • Cockpit + cockpit‑machines — веб‑ интерфейс для управления виртуализацией.
  • LXC/LXD — легковесная контейнеризация вместо полной виртуализации, если нужен изолированный Linux без полного эмулятора аппаратуры.
  • VirtualBox / VMware — удобны на десктопах, если нужна кросс‑платформенность или специфичные гостевые интеграции.

Миграция и совместимость

  • Для переноса на другой хост используйте qemu-img convert и затем импорт в libvirt/virt‑manager.
  • При переносе между машинами с разными CPU используйте -cpu host или конвертацию при помощи опции compat=0 в qemu-img (сложно — тестируйте).
  • Проверьте версии QEMU/KVM на целевых хостах, чтобы избежать несовместимости форматов.

Чек‑лист: Быстрый справочник по командам

  • Проверка аппаратной поддержки:

    egrep -c '(vmx|svm)' /proc/cpuinfo
  • Установка пакетов (Ubuntu):

    sudo apt update
    sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
  • Загрузка модуля KVM:

    sudo modprobe kvm-intel   # или kvm-amd
  • Создание QCOW2 диска:

    qemu-img create -f qcow2 manjaro_disk.img 12G
  • Установка гостя:

    qemu-system-x86_64 -enable-kvm -m 2048 -cdrom ~/Downloads/manjaro.iso -boot d ~/KVM/manjaro_disk.img
  • Запуск установленного гостя:

    qemu-system-x86_64 -enable-kvm -m 2048 ~/KVM/manjaro_disk.img
  • Конвертация в raw:

    qemu-img convert -O raw manjaro_disk.img manjaro_disk.raw
  • Список виртуальных машин libvirt:

    virsh list --all

Роль‑ориентированные чек‑листы

Администратор:

  • Проверить аппаратную поддержку и загрузку модулей.
  • Настроить libvirt и права доступа.
  • Настроить резервное копирование образов.
  • Настроить мониторинг и бэкап конфигураций сети.

Разработчик:

  • Создать быстрый шаблон ВМ (образ + cloud-init или preseed).
  • Включить shared folders или 9p/virtiofs для обмена данными.
  • Версионировать образы и скрипты сборки.

Тестировщик:

  • Использовать снимки для возврата в чистое состояние.
  • Автоматизировать развёртывания с помощью Terraform/Ansible (libvirt провайдеры доступны).
  • Проверять сетевые сценарии (NAT, bridge, VLAN).

Офицер по безопасности:

  • Шифровать образы при необходимости.
  • Ограничить доступ к libvirt сокету.
  • Регулярно обновлять пакетный стек QEMU/KVM/libvirt.

Критерии приёмки

  • ВМ успешно запускается и достигает загрузочного экрана гостевой ОС.
  • Гость получает сетевой доступ в соответствии с выбранной схемой (NAT или bridge).
  • Доступ в гостевую ОС возможен по консоли (VNC/Spice) или через GUI (virt‑manager).
  • Образы дисков сохранены в каталоге ~/KVM и существуют резервные копии/снимки.
  • Пользователь может управлять ВМ без sudo (входит в группы libvirt/kvm).

Частые случаи, когда этот подход не подходит

  • Требуется полностью нативный доступ к аппаратуре GPU/PCIe для задач высокой производительности — тогда рассматривайте прямую передачу устройств (PCI passthrough) или bare‑metal установку.
  • Если нужно лёгкое изолированное Linux‑окружение с минимальными накладными расходами — лучше использовать контейнеры (LXC/LXD, Docker).

Небольшая памятка (cheat sheet)

  • Быстрая остановка ВМ из терминала: Ctrl+C в окне qemu или virsh shutdown .
  • Форсированное завершение: virsh destroy (экстренно).
  • Снимок через virsh: virsh snapshot-create-as snap1 “Описание” –disk-only –atomic

Короткий глоссарий

  • Гость — ОС, запущенная внутри виртуальной машины.
  • Хост — физическая машина, на которой работает гипервизор.
  • QCOW2 — формат образа диска с поддержкой копирования‑при‑записи и снимков.
  • virtio — набор паравиртуальных драйверов для повышения производительности.

Заключение

QEMU/KVM — надёжный и гибкий стек виртуализации для Linux. Он подходит как для локальной разработки и тестирования, так и для продакшн‑развёртываний при правильной конфигурации сети, безопасности и резервного копирования. В этом руководстве вы получили пошаговые команды, практические советы по сети и безопасности, варианты для альтернативных сценариев и чек‑листы для разных ролей.

Если нужно, могу подготовить краткую автоматизированную инструкцию для Ansible/Cloud‑Init, конфигурационный файл libvirt XML или пример настройки мостового интерфейса под конкретный дистрибутив.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Установка WordPress на Linux локально
WordPress

Установка WordPress на Linux локально

Именованные функции в Google Таблицах
Google Таблицы

Именованные функции в Google Таблицах

Как распечатать PowerPoint с заметками
Презентации

Как распечатать PowerPoint с заметками

Защита от GitHub реподжекинга
Безопасность

Защита от GitHub реподжекинга

Memoji в FaceTime на iPhone и iPad
Руководство

Memoji в FaceTime на iPhone и iPad

KDE Connect: управление телефоном и ПК
Software

KDE Connect: управление телефоном и ПК