Установка и запуск виртуальной машины QEMU/KVM на Linux
Что такое QEMU и KVM
QEMU — это эмулятор машины и монитор виртуальных машин, который может эмулировать архитектуру CPU и периферийные устройства. KVM — это модуль ядра Linux, обеспечивающий аппаратное ускорение виртуализации (Kernel Virtual Machine). Вместе они работают как полноценный гипервизор с аппаратной поддержкой и обычно называются QEMU/KVM.
Ключевой термин: виртуализация — запуск одной или нескольких гостевых систем (ВМ) поверх хоста, где гипервизор обеспечивает изоляцию и виртуальные устройства.
Важно: KVM требует поддержки виртуализации на уровне CPU (Intel VT-x или AMD-V). Проверяйте совместимость перед установкой.
Преимущества использования виртуальной машины
- Изоляция гостевой ОС от хоста.
- Быстрая проверка дистрибутивов и конфигураций без изменения физических разделов.
- Снимки состояния, бэкапы и быстрый откат.
- Возможность тестировать сетевые и серверные конфигурации в безопасной среде.
Проверка поддержки виртуализации на хосте
Выполните одну из команд, чтобы убедиться, что CPU поддерживает виртуализацию:
egrep -c '(vmx|svm)' /proc/cpuinfoЕсли вывод больше нуля, CPU имеет аппаратную поддержку виртуализации. Также можно просмотреть поле Virtualization в выводе lscpu:
lscpu | grep VirtualizationЕсли поддержка есть, можно продолжать. Если нет — KVM работать не будет.
Установка QEMU/KVM на Ubuntu/Debian
Ниже приведён рекомендуемый набор пакетов для рабочего окружения с libvirt и графической утилитой virt-manager. Откройте терминал и обновите источники:
sudo apt updateУстановите пакеты:
sudo apt install qemu-kvm bridge-utils libvirt-clients libvirt-daemon-system virt-managerОбъяснение пакетов:
- qemu-kvm — бинарные файлы QEMU с поддержкой KVM.
- bridge-utils — инструменты для настройки Ethernet-мостов (нужны для мостовой сети).
- libvirt-clients и libvirt-daemon-system — служба и клиентская библиотека для управления ВМ через libvirt.
- virt-manager — графический интерфейс для libvirt/QEMU.
После установки загрузите модуль KVM, соответствующий вашему CPU:
# Intel
sudo modprobe kvm-intel
# AMD
sudo modprobe kvm-amdДобавьте вашего пользователя в группу libvirt и kvm, чтобы запускать ВМ без sudo:
sudo adduser $(whoami) libvirt
sudo adduser $(whoami) kvmПерезапустите сессию пользователя (выйдите и войдите вновь) или перезагрузите систему, чтобы применить изменения группы.
Проверьте статус сервиса libvirt:
systemctl status libvirtdЕсли нужно, включите автозапуск и запустите службу:
sudo systemctl enable --now libvirtdВажно: если вы планируете мостовую сеть (bridge) для ВМ, настройте мост на хосте заранее или используйте NetworkManager/libvirt network.
Создание папки для виртуальных машин и виртуального диска
Создайте каталог в домашней директории для образов и конфигураций:
cd ~
mkdir -p KVM
cd KVMСоздайте виртуальный диск формата qcow2 (динамический рост):
qemu-img create manjaro_disk.img -f qcow2 12GПояснение форматов:
- qcow2 — компактный формат с динамическим выделением, поддерживает снапшоты, более удобен для десктопа и тестов.
- raw — образ без метаданных, быстрее в некоторых сценариях, проще делать перенаправления и бэкапы.
Преимущества qcow2: экономия места на хосте и встроенные снапшоты. Недостаток: небольшая производительность по сравнению с raw, но в большинстве случаев разница неощутима.
Конвертация между форматами:
qemu-img convert -O raw manjaro_disk.img manjaro_disk.rawИзменение размера диска (qcow2 поддерживает изменение):
qemu-img resize manjaro_disk.img +10GЗамечание: увеличение размера виртуального диска не увеличит автоматически раздел в госте, нужно расширить раздел/файловую систему внутри гостя.
Скачивание ISO гостевой системы
В примере используется Manjaro XFCE. Загрузите ISO с официального сайта и поместите его в ~/Downloads (или другую папку). Пример пути:
~/Downloads/manjaro-xfce-20.2.1-210103-linux59.iso
Запуск установки гостевой ОС через kvm (терминал)
Пример команды, аналогичной использованной в руководстве:
kvm -m 1024 -cdrom ~/Downloads/manjaro-xfce-20.2.1-210103-linux59.iso -boot d manjaro_disk.imgОбъяснение опций:
- -m 1024 — выделить 1024 МБ оперативной памяти для ВМ на время установки.
- -cdrom — путь до ISO, выступающего как виртуальный привод.
- -boot d — загрузка с CD/ISO.
- manjaro_disk.img — файл виртуального диска.
Альтернатива: явное использование qemu-system-x86_64 и включение аппаратной виртуализации:
qemu-system-x86_64 -enable-kvm -m 2048 -cdrom ~/Downloads/manjaro-xfce-20.2.1-210103-linux59.iso -hda ~/KVM/manjaro_disk.img -boot d -net nic -net user- -enable-kvm — гарантирует использование KVM и аппаратного ускорения.
- -net nic -net user — упрощённая NAT-сеть, интернет из гостя будет работать без дополнительной настройки.
Важно: даже если на хосте нет физического CDROM, указывайте -cdrom с ISO.
Установка через virt-install (без GUI)
Если вы предпочитаете libvirt и wants автоматизируемую установку, можно использовать virt-install:
virt-install --name manjaro --vcpus 2 --ram 2048 --disk path=~/KVM/manjaro_disk.img,format=qcow2 --cdrom ~/Downloads/manjaro-xfce-20.2.1-210103-linux59.iso --os-type linux --network network=default --graphics spicevirt-install создаст и зарегистрирует ВМ в libvirt, после чего её можно управлять через virt-manager или virsh.
Интерфейс установки Manjaro (что будете видеть)
После загрузки ISO Manjaro покажет экран загрузки — выберите “Boot with open source drivers” или аналогичный пункт, затем нажмите Enter. Вы попадёте в live-режим, откуда можете запустить установщик (Launch installer).


Далее выбирается язык, регион и раскладка клавиатуры.



Разметка виртуального диска и шифрование
При установке выберите “Erase disk” для виртуального диска — это не затронет ваши физические разделы, только образ manjaro_disk.img будет отформатирован. Можно включить полное шифрование диска — полезно для ноутбуков и переносных устройств, если вы храните критичные данные.

Выбор файловой системы: установщик по умолчанию использует ext4 для простоты, но вы можете выбрать btrfs, если хотите функциональность снепшотов и дедупликации.
Создание пользователя и варианты приложений
Установщик предложит создать пользователя и при желании использовать тот же пароль для администратора. Также предложит установить офисный пакет (LibreOffice или FreeOffice) или пропустить этот шаг.


Процесс установки покажет прогресс. По окончании нажмите “Done”, закройте окно QEMU или завершите процесс установщика в терминале комбинацией CTRL+C.


Запуск готовой виртуальной машины
Для старта установленной ВМ используйте команду (пример):
kvm -m 2024 ~/KVM/manjaro_disk.imgИли с явным указанием ускорения и графики:
qemu-system-x86_64 -enable-kvm -m 2048 -hda ~/KVM/manjaro_disk.img -vga virtio -display sdlЕсли ВМ зарегистрирована в libvirt, удобнее запускать через virsh или virt-manager:
virsh start manjaro
virt-managerСети: NAT, мост (bridge) и virtio
- NAT (по умолчанию) — простая конфигурация, гостевая система получает доступ в интернет через NAT-хост.
- Мост (bridge) — позволяет гостю иметь собственный адрес в локальной сети, требует настройки bridge-utils или NetworkManager и libvirt bridge.
- virtio-net — высокопроизводительный сетевой драйвер для гостя, требуется соответствующая поддержка в гостевой системе.
Пример для NAT с qemu:
-netdev user,id=net0 -device virtio-net-pci,netdev=net0Пример мостовой сети через libvirt: укажите network=default или настройте собственный мост в /etc/network/interfaces или в NetworkManager.
Важно: для некоторых корпоративных сетей запрещено использовать bridged-модели без IT-поддержки.
Снимки, бэкапы и откат
qcow2 поддерживает внутренние снимки:
qemu-img snapshot -c snapshot_name manjaro_disk.img
qemu-img snapshot -l manjaro_disk.img
qemu-img snapshot -d snapshot_name manjaro_disk.imgЧерез libvirt/virsh:
virsh snapshot-create-as manjaro snap1 "Перед обновлением" --disk-only --atomic
virsh snapshot-list manjaro
virsh snapshot-revert manjaro snap1Для бэкапа копируйте файл qcow2 (при выключенной ВМ или используя live-методы):
cp ~/KVM/manjaro_disk.img ~/backups/manjaro_disk.img.bakДля минимизации риска делайте бэкап перед крупными изменениями.
Производительность и оптимизация
Рекомендации:
- Используйте virtio-драйверы (virtio-net, virtio-blk) для сетевого и дискового ввода-вывода. В командной строке добавьте соответствующие device-параметры или используйте virt-install с –disk и –network, указывающими virtio.
- Выделяйте достаточный объём памяти и vCPU, но не больше, чем оставляет хост для своих задач.
- Для GUI-гостя используйте SPICE или VNC вместе с qxl/vga-virtio для лучшей графики.
- При высоких нагрузках рассмотрите raw-образ или размещение образа на диске с низкой задержкой (SSD).
Пример использования virtio для диска и сети:
qemu-system-x86_64 -enable-kvm -m 4096 -hda ~/KVM/manjaro_disk.img -device virtio-blk-pci,drive=d0 -drive file=~/KVM/manjaro_disk.img,if=none,id=d0,format=qcow2 -device virtio-net-pci,netdev=net0 -netdev user,id=net0Аппаратная передача GPU (GPU passthrough)
GPU passthrough позволяет гостю работать с физическим GPU хоста. Это мощная, но сложная функция: требуется поддержка IOMMU, отдельные драйверы, отключение GPU от хоста и корректная конфигурация VFIO. Для production-решений рекомендуется отдельное детальное руководство; будьте внимательны — неправильные шаги могут сделать систему нестабильной.
Устранение неполадок
- ВМ не видит ISO при использовании -cdrom: проверьте путь до файла и права доступа.
- НЕТ доступа в интернет: проверьте параметры сети (NAT vs bridge), проверьте настройки firewall на хосте.
- Ошибка KVM: проверьте, загружен ли модуль kvm-intel или kvm-amd и поддерживает ли CPU виртуализацию.
- Низкая производительность диска: рассмотрите переход на raw или использование virtio.
- Не работает графический доступ через virt-manager: убедитесь, что libvirtd запущен и у пользователя есть права в группе libvirt.
Критерии приёмки
- ВМ успешно загружается в установленную ОС без ошибок в логах.
- Гость получает сетевой доступ (ping до внешнего хоста или DNS разрешение).
- Доступ по удалённому протоколу (SPICE/VNC/SSH) работает корректно.
- Снимки и восстановление из снимков проходят без потери целостности данных.
Чек-листы по ролям
Администратор:
- Проверить поддержку виртуализации на хосте.
- Установить и настроить libvirt и bridge (если нужен).
- Настроить права доступа для команды.
- Обеспечить бэкапы образов.
Разработчик:
- Создать ВМ с параметрами, соответствующими тестовой среде.
- Установить инструменты разработки и проверить доступы.
- Делать снапшоты перед экспериментами.
Тестировщик:
- Проверить сеть и доступность необходимых портов.
- Выполнить сценарии восстановления из снапшота.
- Отметить производительность при нагрузке.
Сравнение и альтернативы
- VirtualBox — проще для десктопа, но медленнее и менее интегрирован в Linux-ядро.
- VMware Workstation/Fusion — платные решения с богатым функционалом и поддержкой на разных платформах.
- Xen — гипервизор с иным стеком, используется в дата-центрах.
QEMU/KVM — стандарт для Linux‑хостов благодаря интеграции в ядро, гибкости и поддержке libvirt.
Тестовые случаи и критерии приёмки
- Установка ОС из ISO выполняется полностью и гостевая ОС загружается.
- После установки гостевая ОС получает IP-адрес и может выполнить ping в интернет.
- Созданный снимок можно успешно восстановить и ВМ загружается в этом состоянии.
- Увеличение размера диска отображается и доступно внутри гостя после расширения раздела.
Краткая справка (глоссарий)
- KVM: модуль ядра Linux для аппаратной виртуализации.
- QEMU: эмулятор машины и процессорный эмулятор.
- libvirt: менеджер виртуализации с унифицированным API.
- virt-manager: графический интерфейс для управления libvirt.
- qcow2: формат образа с поддержкой снапшотов и динамического роста.
Безопасность и приватность
- Шифруйте гостевые диски, если в них конфиденциальные данные.
- Следите за обновлениями гостя и хоста, чтобы закрывать уязвимости.
- Не передавайте хостовые устройства гостю без проверки (USB/GPU) — это повышает риск компрометации.
Советы по миграции и совместимости
- При переносе образа между хостами проверяйте совместимость версий QEMU/KVM и libvirt.
- Для кросс‑хостовой миграции используйте raw-формат или qemu-img convert с указанием формата.
- Для миграции с VirtualBox конвертируйте VDI в QCOW2/RAW через qemu-img.
Заключение
QEMU/KVM — надёжный и гибкий инструмент виртуализации на Linux. Он подходит как для простых тестов дистрибутивов, так и для сложных серверных развёртываний. В руководстве показаны базовые шаги: проверка поддержки виртуализации, установка пакетов, создание qcow2-образа, установка Manjaro из ISO, запуск ВМ и ключевые рекомендации по оптимизации и безопасности.
Важно: тестируйте конфигурации на непроизводственных средах перед развёртыванием в продакшн.
Резюме:
- Установите qemu-kvm, libvirt и virt-manager.
- Создайте qcow2-образ и загрузите ISO гостевой ОС.
- Запустите установку через kvm/qemu или virt-install.
- Используйте virtio, снапшоты и регулярные бэкапы для надёжной работы.
Похожие материалы
Убрать раздражающие функции Facebook — руководство
Приложения по умолчанию на Android — настройка и управление
Установить REMnux в VirtualBox — руководство
Список выполненного: мотивация и шаблоны
Как сохранить веб‑страницу для офлайн‑чтения