Установка KVM и создание виртуальной машины на Arch Linux

О чем эта статья
Кратко: пошаговая инструкция по проверке аппаратной виртуализации, установке пакетов KVM/QEMU, настройке службы libvirtd и созданию виртуальной машины двумя способами — через графический virt-manager и через командную строку qemu. Также — советы по производительности, безопасности, типам дисков и сети, список распространённых ошибок и решения.
Важно: перед началом сделайте резервные копии важных данных и убедитесь, что в BIOS/UEFI включена виртуализация (Intel VT-x или AMD-V).
Что такое KVM и QEMU
KVM — модуль ядра Linux, который превращает ядро в гипервизор. QEMU — эмулятор/виртуализатор, часто используется вместе с KVM для запуска гостевых ОС с высокой производительностью. virt-manager — графический интерфейс для управления виртуальными машинами через libvirt.
Шаг 1. Проверка поддержки виртуализации
Откройте терминал и выполните:
grep -Ec '(vmx|svm)' /proc/cpuinfoЕсли вывод больше 0 — виртуализация поддерживается. Если 0 — включите Intel VT-x или AMD-V в настройках BIOS/UEFI.
Примечание: некоторые ноутбуки имеют параметр «Virtualization Technology» или «SVM Mode».
Шаг 2. Установка необходимых пакетов
Сначала обновите систему:
sudo pacman -SyyuЗатем установите полный набор пакетов для удобной работы с KVM:
sudo pacman -S qemu-full virt-manager virt-viewer dnsmasq bridge-utils libguestfs ebtables vde2 openbsd-netcatПодтвердите установку, введя Y, когда будет предложено.
Шаг 3. Настройка службы libvirtd
Запуск и включение службы:
sudo systemctl start libvirtd.service
sudo systemctl enable libvirtd.service
sudo systemctl status libvirtd.serviceЕсли статус показывает active (running), можно продолжать. Если inactive (dead) — повторите start и проверьте журналы:
sudo journalctl -u libvirtd.service -b --no-pagerОткройте конфигурацию libvirt:
sudo vim /etc/libvirt/libvirtd.confНайдите и раскомментируйте (уберите #) две строки:
unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"Добавьте своего пользователя в группу libvirt и перезапустите службу:
sudo usermod -aG libvirt $USER
sudo systemctl restart libvirtd.serviceВыйдите из сессии и войдите снова, чтобы изменения групп вступили в силу.
Важно: если вы используете Wayland/GUI, иногда требуется перезапустить сеанс графической среды.
Подготовка ISO и выбор способа установки
Скачайте ISO-образ гостевой ОС (например, Manjaro, Ubuntu, Windows и т.д.) и разместите его в удобной папке.
Два основных подхода для создания ВМ:
- Графический: virt-manager — удобно для начинающих.
- CLI: qemu/qemu-system — гибко и подходит для автоматизации.
Создание виртуальной машины через virt-manager
virt-manager предлагает интерфейс, похожий на VirtualBox/VMware.
- Запустите virt-manager (в меню как “Virtual Machine Manager” или командой
virt-manager). - Нажмите «Create a new virtual machine».
- Выберите “Local media install (ISO image or CDROM)” и нажмите “Forward”.
- Нажмите Browse > Browse Local и выберите скачанный ISO.
Если появится предупреждение про разрешения доступа — подтвердите (Yes).
- Установите объём памяти и число ядер CPU. Рекомендация: выделяйте 25–50% оперативной памяти хоста для одной ВМ, но не менее 2 ГБ для современных дистрибутивов.
- Задайте размер виртуального диска (25–50 ГБ для десктопа). Выберите тип хранилища (qcow2 рекомендуется для снапшотов и экономии места).
- Проверьте информацию и нажмите Finish. Если появится сообщение “Virtual Network is not active” — разрешите старт сети.
После завершения появится окно консоли новой ВМ — можно начать установку гостевой ОС.
Создание виртуальной машины через QEMU CLI
CLI-подход даёт больше контроля и подходит для сценариев автоматизации.
- Создайте каталог для ВМ и переместите туда ISO:
mkdir kvm
mv /path/to/linux-distro.iso ./kvm/
cd kvm- Создайте образ диска (qcow2, 20G):
qemu-img create -f qcow2 Image.img 20G- Запустите ВМ и установите ОС:
qemu-system-x86_64 -enable-kvm -cdrom linux-distro.iso -boot menu=on -drive file=Image.img,format=qcow2 -m 4G -cpu host -vga virtio -display sdl,gl=onЗамените linux-distro.iso на имя вашего файла. Флаг -m задаёт объём памяти, -cpu host позволяет гостю использовать те же инструкции, что и у хоста.
После установки удалите -cdrom при запуске, чтобы загружаться с дискового образа:
qemu-system-x86_64 -enable-kvm -boot menu=on -drive file=Image.img,format=qcow2 -m 4G -cpu host -vga virtio -display sdl,gl=onСовет: создайте alias в ~/.bashrc или ~/.zshrc, чтобы запускать ВМ одной командой.
Типы сетей и их применение
- NAT (по умолчанию с libvirt): просто и безопасно — гость имеет доступ в интернет, но не виден извне.
- Bridge: гость становится видимым в вашей локальной сети, полезно для серверов и тестирования сетей.
- Isolated/Internal: для тестирования сетевых сценариев между гостями.
Настройка моста требует bridge-utils и прав администратора. Пример создания бриджа для systemd-networkd/NetworkManager выходит за рамки этой инструкции, но ключевые шаги: создать мост br0, добавить физический интерфейс и включить forwarding.
QCOW2 vs RAW — что выбрать
- qcow2: поддерживает снапшоты, экономит место (copy-on-write). Немного медленнее на некоторых нагрузках.
- raw: максимально быстро и прост, требует полного пространства заранее.
Выбор зависит от задачи: 개발/тестирование — qcow2; критичные I/O нагрузки — raw.
Оптимизация производительности
- Используйте virtio-драйверы для диска и сети (лучше производительность инизкая задержка).
- Для интенсивного I/O рассмотрите использование raw-разделов или LVM томов вместо файлов.
- Включите Hugepages, если запускаете ресурсоёмкие гостевые ОС.
- CPU:
-cpu hostи passthrough отдельных устройств (IOMMU) для максимальной производительности.
Безопасность и права доступа
- Запускайте libvirtd как отдельную службу, не давайте root-доступ невостребованным приложениям.
- Контролируйте сетевые правила (ebtables/iptables) для ограничения доступа гостей.
- Устанавливайте обновления гостевых ОС и гипервизора.
Распространённые ошибки и как их исправить
- Ошибка: “KVM not found” — проверьте вывод
lsmod | grep kvmиdmesgна предмет загрузки модулей kvm_intel/kvm_amd. - Ошибка: libvirtd не стартует — смотрите
sudo journalctl -u libvirtd.service. - Проблемы с разрешениями сокетов — убедитесь, что вы добавлены в группу libvirt и строки в /etc/libvirt/libvirtd.conf раскомментированы.
Чеклист перед созданием ВМ
- Включена виртуализация в BIOS/UEFI
- Система обновлена (pacman -Syyu)
- Установлены qemu, libvirt, virt-manager
- Пользователь в группе libvirt
- ISO проверен и доступен
- Решение по дисковому формату (qcow2/raw)
Резервное копирование и снапшоты
- qcow2 поддерживает снапшоты через
virsh snapshot-create-asили GUI. - Регулярно экспортируйте важные образы и конфигурации с помощью
virsh dumpxmlи копированием образов.
Мини-методология: быстрая валидация ВМ
- Создайте образ 8–20 ГБ, 2–4 ГБ RAM, 1–2 CPU.
- Установите минимальную ОС и проверьте загрузку.
- Тестируйте сеть: ping внешнего хоста, доступ к портам.
- Снимите базовый снапшот.
Decision flowchart
flowchart TD
A[Есть ли аппаратная виртуализация?] -->|Да| B{Хотите GUI?}
A -->|Нет| Z[Включите VT-x/SVM в BIOS]
B -->|Да| C[Использовать virt-manager]
B -->|Нет| D[Использовать qemu CLI]
C --> E[Создать ВМ через GUI]
D --> F[Создать каталог, образ и запустить qemu]
E --> G[Установить ОС и настроить сеть]
F --> G
G --> H[Тестировать, создавать снапшоты, оптимизировать]Ролевые чеклисты
- Системный администратор:
- Убедиться, что libvirtd правильно настроен и автозапуск включён.
- Настроить бридж и firewall правила.
- Внедрить политику снапшотов и бэкапов.
- Пользователь рабочего стола:
- Установить virt-manager.
- Проверить права в группе libvirt.
- Создать ВМ с qcow2 для удобного тестирования.
- Разработчик/тестировщик:
- Автоматизировать создание ВМ через qemu команду или cloud-init.
- Использовать base image и быстрые клоны (qcow2 backing files).
Тестовые сценарии (acceptance)
- ВМ загружается с ISO и успешно проходит установку ОС.
- После установки образ загружается без
-cdrom. - Сеть: гостевая ОС может пинговать внешние адреса.
- Снапшоты создаются и откатываются без ошибок.
Шпаргалка команд
- Создать qcow2 образ:
qemu-img create -f qcow2 vm.img 20G- Запустить ВМ с ISO:
qemu-system-x86_64 -enable-kvm -cdrom os.iso -drive file=vm.img,format=qcow2 -m 4G -cpu host -vga virtio- Перечень ВМ libvirt:
virsh list --all- Снимок через virsh:
virsh snapshot-create-as vm-name snap1 "Baseline" --disk-onlyКраткий глоссарий
- libvirt — демон и API для управления гипервизорами.
- virt-manager — графический менеджер виртуальных машин.
- qcow2 — формат дискового образа с поддержкой снапшотов.
- bridge — сетевой мост для прямого доступа гостя к сети.
Когда KVM не лучше VirtualBox
- Нужна простая переносимость между разными ОС без установки дополнительных драйверов — VirtualBox иногда удобнее для новичков.
- Нужен простой GUI для однократной быстрой установки без тонкой настройки — но virt-manager обеспечивает похожую простоту.
Итог и рекомендации
KVM + QEMU — мощное и гибкое решение виртуализации на Arch Linux. Для десктопа и тестирования — используйте virt-manager. Для автоматизации, контроля и интеграции в CI/CD — выбирайте qemu CLI и образа qcow2 с backing files.
Важно: следите за безопасностью, делайте бэкапы и тестируйте сеть/производительность перед использованием в проде.
Похожие материалы
Защита паролей Chrome с Windows Hello
Установка сторонних приложений на Mac
Очистка кэша и истории поиска Instagram
Отключение фоновых процессов Windows и ускорение ПК
ThisIsWin11 — настройка и деблоут Windows 11