Тестовый стенд не обязательно покупать: почти любой современный процессор Intel с флагом VT-x или AMD с AMD-V умеет выполнять виртуальные машины, а встроенный в ядро модуль KVM превращает Linux в гипервизор. За полчаса можно пройти путь от проверки железа до работающей гостевой системы с мостовой сетью и точкой возврата. Разберём конкретный сценарий: виртуальная машина нужна, чтобы проверить дистрибутив или запустить изолированный эксперимент, не трогая рабочую систему.
Проверяем поддержку виртуализации
Сначала убеждаемся, что процессор объявляет нужные флаги, а модуль KVM уже загружен в ядро:
egrep -c '(vmx|svm)' /proc/cpuinfo
lsmod | grep kvm
virt-host-validate
Ненулевой результат первой команды означает наличие аппаратной виртуализации, строки kvm_intel или kvm_amd во второй — что ядро готово работать. Если флагов нет, загляните в настройки BIOS или UEFI: чаще всего виртуализация просто отключена, и без неё останется только медленная эмуляция. Команда virt-host-validate из пакета libvirt дополнительно проверит права, наличие устройства /dev/kvm и возможности эмулятора QEMU, а kvm-ok из пакета cpu-checker даёт краткий вердикт по железу.
Устанавливаем компоненты. В Debian и Linux Mint:
sudo apt install qemu-kvm libvirt-daemon-system virt-manager bridge-utils
sudo adduser $USER libvirt
sudo systemctl enable --now libvirtd
В Fedora и AlmaLinux вместо apt используется dnf, а имена пакетов отличаются: qemu-kvm libvirt virt-manager bridge-utils. После добавления пользователя в группу libvirt обязательно перелогиньтесь, иначе virt-manager не сможет подключиться к системному демону и вы увидите ошибку доступа к гипервизору. Полезно также включить автозапуск: sudo systemctl enable libvirtd, чтобы после перезагрузки виртуальные машины поднимались вместе с системой. Если в выводе virt-host-validate есть предупреждения про cgroup или iptables, их стоит исправить до создания машин: проблемы с ограничением ресурсов обычно проявятся позже, в самый неподходящий момент.
Что именно стоит проверить перед установкой:
- флаги виртуализации в выводе
egrepпо /proc/cpuinfo; - наличие модулей kvm_intel или kvm_amd в
lsmod; - доступность устройства /dev/kvm и права на него;
- достаточный объём свободного места под образы дисков.
Сеть: мост вместо встроенного NAT
По умолчанию libvirt поднимает виртуальную сеть default с адресацией 192.168.122.0/24 и переводом адресов: этого достаточно для выхода гостя в интернет, но не для прямых подключений к нему извне. Проверить состояние и поднять сеть можно так:
virsh net-list --all
virsh net-start default
virsh net-autostart default
Если нужен доступ к гостю как к равноправному устройству домашней сети, создайте мост br0 поверх физического интерфейса и укажите его при создании машины параметром --network bridge=br0. В NetworkManager это делается командой nmcli: создаётся bridge-подключение, к нему привязывается ethernet-порт, а IP-адрес переходит с физической карты на мост. После этого гость получает адрес от вашего DHCP-роутера и виден в сети по имени. Проверить, что всё поднялось, поможет bridge link и обычный пинг гостя с хоста. Если после перехода на мост пропал доступ к самой рабочей станции, не паникуйте: вернуть NM-подключение можно перезапуском NetworkManager или через консоль, подключившись к машине по IP в сети 192.168.122.0/24.
- default — готовая сеть libvirt с NAT, работает сразу после установки;
- br0 — мост на физической карте для прямого доступа к гостю;
- изолированная сеть — только гости между собой, без выхода наружу.
Создаём машину: интерфейс и virt-install
В графическом virt-manager процесс выглядит так: кнопка «Создать виртуальную машину», выбор ISO-образа, выделение памяти и ядер, создание диска qcow2 и запуск мастера. Для воспроизводимости удобнее описать машину одной командой:
virt-install --name debian-test --memory 2048 --vcpus 2 --disk size=20,path=/var/lib/libvirt/images/debian-test.qcow2 --cdrom /home/user/iso/debian-12-netinst.iso --network bridge=br0 --os-variant debian12
Ключ --os-variant подбирает оптимальные для гостя настройки эмуляции, узнать доступные значения можно командой osinfo query os. Если образ дистрибутива лежит на внешнем диске, укажите полный путь — virt-install не ищет ISO по каталогам. После завершения установки список машин и их состояние смотрятся через virsh list --all, а консоль гостя открывается командой virsh console debian-test — она незаменима, когда гость ещё не поднял графику или сетевой стек. Диск в формате qcow2 растёт по мере необходимости, поэтому реального места он занимает меньше выделенного лимита, а его можно перенести на другой раздел одной командой qemu-img convert.
Снапшоты и типичные проблемы
Снапшот — быстрая точка возврата перед опасным экспериментом, работает он и для состояния машины, и для диска:
virsh snapshot-create-as debian-test clean
virsh snapshot-list debian-test
virsh snapshot-revert debian-test clean
Из проблем чаще всего встречаются три. Ошибка «permission denied» на /dev/kvm означает, что вы не в группе libvirt или права на устройство сбились после обновления ядра. Машина стартует, но установщик не видит сеть — гостевому драйверу нужна модель virtio-net вместо устаревшего e1000, а для диска — virtio вместо IDE. Наконец, установщик может отказываться загружаться при включённом Secure Boot: в этом случае выберите прошивку UEFI с OVMF или отключите безопасную загрузку для тестовой машины. Диагностику состояния демона удобно вести командой journalctl -u libvirtd, а потребление ресурсов гостем — через virsh domstats debian-test.
Ежедневная работа с машиной
Когда стенд готов, повседневное управление сводится к нескольким командам. Запуск, остановка и статус:
virsh start debian-test
virsh shutdown debian-test
virsh dominfo debian-test
Ключ virsh autostart debian-test включает поднятие машины вместе с хостом — удобно для постоянно работающих сервисов. Если гость завис в графике, virsh reset выполняет жёсткую перезагрузку без сохранения состояния. Добавить второй диск после создания проще всего через qemu-img create -f qcow2 /var/lib/libvirt/images/data.qcow2 50G и подключить его в virt-manager на вкладке «Диски». Для переноса стenda на другой компьютер достаточно скопировать файл образа и переопределить машину командой virsh define.
Итог
KVM и virt-manager дают полноценную виртуализацию без сторонних решений: проверка флагов процессора и валидация хоста занимают пару минут, мостовая сеть превращает гостя в равного участника домашней сети, а virt-install делает создание машины воспроизводимым описанием. Снапшоты через virsh позволяют свободно экспериментировать, зная, что вернуть прежнее состояние — одна команда. Освоив этот минимум, вы получаете рабочий стенд для проверки обновлений, изолированной разработки и запуска старых программ без риска для основной системы.