Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

Как добавить существующую виртуальную машину KVM в только что установленный KVM/QEMU

Как добавить существующую виртуальную машину KVM в только что установленный KVM/QEMU

 

 

 

Если у вас есть готовая виртуальная машина (ВМ) KVM — например, образ диска в формате qcow2 и XML-файл с описанием ВМ — и вы только что установили KVM/QEMU на Linux, эта статья поможет вам правильно добавить и запустить эту ВМ через libvirt. Предполагается, что установка KVM и libvirt уже выполнена, и вы работаете от имени обычного пользователя, который имеет права на выполнение sudo для административных задач.


Что нам понадобится

  • Образ диска виртуальной машины (например, vm-image.qcow2)
  • XML-файл с описанием ВМ (например, vm.xml)
  • Доступ к терминалу с возможностью выполнять sudo
  • Установленные пакеты: qemu-kvm, libvirt-daemon, libvirt-clients, virt-manager (графический менеджер опционально)

Шаг 1. Подготовка файлов

Копирование образа диска

Обычно образы дисков хранятся в /var/lib/libvirt/images/. Для этого нужно права администратора.

sudo cp /путь/к/vm-image.qcow2 /var/lib/libvirt/images/
sudo chown libvirt-qemu:kvm /var/lib/libvirt/images/vm-image.qcow2
sudo chmod 640 /var/lib/libvirt/images/vm-image.qcow2
  • sudo — требуется, так как /var/lib/libvirt/images/ — системная директория.
  • Меняем владельца на libvirt-qemu:kvm, чтобы процесс libvirt имел доступ.

Если вы хотите хранить образы в другом месте, убедитесь, что права доступа позволяют libvirt читать и писать файлы.

Помещение XML-файла

XML-файлы виртуальных машин обычно хранятся в /etc/libvirt/qemu/, доступ к которой также требует прав администратора.

sudo cp /путь/к/vm.xml /etc/libvirt/qemu/

Шаг 2. Проверка и корректировка XML

Откройте XML-файл для редактирования (можно с помощью nano или vim):

sudo nano /etc/libvirt/qemu/vm.xml

Убедитесь, что в разделе <disk> путь к файлу образа совпадает с реальным расположением, например:

<source file='/var/lib/libvirt/images/vm-image.qcow2'/>

Если вы храните образ в другом месте, исправьте путь.

Проверьте другие параметры, например, имя ВМ (<name>), UUID (при необходимости можно сгенерировать новый), настройки сети и т.д.


Шаг 3. Импорт (определение) виртуальной машины в libvirt

Теперь, когда файлы на месте, нужно зарегистрировать ВМ в libvirt.

Выполните от имени обычного пользователя с правами sudo:

sudo virsh define /etc/libvirt/qemu/vm.xml

Если вы хотите, чтобы обычный пользователь мог управлять ВМ через virsh без sudo, нужно добавить его в группу libvirt:

sudo usermod -aG libvirt $(whoami)

После этого выйдите из сессии и войдите заново, чтобы обновились группы.


Шаг 4. Запуск виртуальной машины

Теперь можно запустить ВМ:

virsh start vm-name

где vm-name — имя, указанное в XML в теге <name>.

Если команда выдаёт ошибку о недостатке прав, попробуйте с sudo:

sudo virsh start vm-name

Шаг 5. Проверка состояния виртуальных машин

Чтобы увидеть список всех ВМ (запущенных и выключенных), выполните:

virsh list --all

Дополнительно: графический менеджер

Если вы предпочитаете графический интерфейс, установите virt-manager:

sudo apt install virt-manager   # для Debian/Ubuntu
sudo dnf install virt-manager   # для Fedora

Запускайте его от имени обычного пользователя:

virt-manager

Он автоматически подключится к локальному демону libvirt и покажет список виртуальных машин.


Частые проблемы и советы

  • Права доступа: libvirt/qemu должен иметь доступ к файлам образа и XML. Если ВМ не запускается, проверьте владельца и права.
  • SELinux/AppArmor: если включены, они могут блокировать доступ. Временно отключите или настройте правила.
  • Логи: если ВМ не запускается, смотрите логи /var/log/libvirt/qemu/vm-name.log и системный журнал (journalctl -xe).
  • Обновление групп: после добавления пользователя в группу libvirt обязательно перезайдите в систему.

Резюме команд

ДействиеКомандаОт имени
Копирование образаsudo cp ... /var/lib/libvirt/images/root (через sudo)
Изменение прав образаsudo chown libvirt-qemu:kvm ...root (через sudo)
Копирование XML-файлаsudo cp ... /etc/libvirt/qemu/root (через sudo)
Редактирование XMLsudo nano /etc/libvirt/qemu/vm.xmlroot (через sudo)
Определение ВМ в libvirtsudo virsh define /etc/libvirt/qemu/vm.xmlroot (через sudo)
Добавление пользователя в группуsudo usermod -aG libvirt $(whoami)root (через sudo)
Запуск ВМvirsh start vm-nameобычный пользователь (если в группе libvirt) или с sudo
Просмотр списка ВМvirsh list --allобычный пользователь

 

23 июня 2025, 18:01    Александр Linux 0    0 0

 

 

 

 



Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.