Тестовый стенд не обязательно покупать: почти любой современный процессор 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 позволяют свободно экспериментировать, зная, что вернуть прежнее состояние — одна команда. Освоив этот минимум, вы получаете рабочий стенд для проверки обновлений, изолированной разработки и запуска старых программ без риска для основной системы.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте