Если у вас есть готовая виртуальная машина (ВМ) KVM — например, образ диска в формате qcow2 и XML-файл с описанием ВМ — и вы только что установили KVM/QEMU на Linux, эта статья поможет вам правильно добавить и запустить эту ВМ через libvirt. Предполагается, что установка KVM и libvirt уже выполнена, и вы работаете от имени обычного пользователя, который имеет права на выполнение sudo для административных задач.
vm-image.qcow2)vm.xml)sudoqemu-kvm, libvirt-daemon, libvirt-clients, virt-manager (графический менеджер опционально)Обычно образы дисков хранятся в /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-файлы виртуальных машин обычно хранятся в /etc/libvirt/qemu/, доступ к которой также требует прав администратора.
sudo cp /путь/к/vm.xml /etc/libvirt/qemu/
Откройте XML-файл для редактирования (можно с помощью nano или vim):
sudo nano /etc/libvirt/qemu/vm.xml
Убедитесь, что в разделе <disk> путь к файлу образа совпадает с реальным расположением, например:
<source file='/var/lib/libvirt/images/vm-image.qcow2'/>
Если вы храните образ в другом месте, исправьте путь.
Проверьте другие параметры, например, имя ВМ (<name>), UUID (при необходимости можно сгенерировать новый), настройки сети и т.д.
Теперь, когда файлы на месте, нужно зарегистрировать ВМ в libvirt.
Выполните от имени обычного пользователя с правами sudo:
sudo virsh define /etc/libvirt/qemu/vm.xml
Если вы хотите, чтобы обычный пользователь мог управлять ВМ через virsh без sudo, нужно добавить его в группу libvirt:
sudo usermod -aG libvirt $(whoami)
После этого выйдите из сессии и войдите заново, чтобы обновились группы.
Теперь можно запустить ВМ:
virsh start vm-name
где vm-name — имя, указанное в XML в теге <name>.
Если команда выдаёт ошибку о недостатке прав, попробуйте с sudo:
sudo virsh start vm-name
Чтобы увидеть список всех ВМ (запущенных и выключенных), выполните:
virsh list --all
Если вы предпочитаете графический интерфейс, установите virt-manager:
sudo apt install virt-manager # для Debian/Ubuntu
sudo dnf install virt-manager # для Fedora
Запускайте его от имени обычного пользователя:
virt-manager
Он автоматически подключится к локальному демону libvirt и покажет список виртуальных машин.
/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) |
| Редактирование XML | sudo nano /etc/libvirt/qemu/vm.xml | root (через sudo) |
| Определение ВМ в libvirt | sudo virsh define /etc/libvirt/qemu/vm.xml | root (через sudo) |
| Добавление пользователя в группу | sudo usermod -aG libvirt $(whoami) | root (через sudo) |
| Запуск ВМ | virsh start vm-name | обычный пользователь (если в группе libvirt) или с sudo |
| Просмотр списка ВМ | virsh list --all | обычный пользователь |
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()