Не удалось запустить образ KVM с помощью virsh, разрешение запрещено

12

Мой хост ОС Ubuntu Server 11.04 (natty)

Следуя инструкциям, подробно изложенным в справке Ubuntu , я создал один образ KVM, используя

sudo ubuntu-vm-builder kvm hardy --libvirt qemu:///system

Файл изображения был создан как

-rw-r--r-- 1 root root 438M 2011-06-17 14:39 ubuntu-kvm/tmpK9hbU5.qcow2

Я могу перечислить его с помощью virsh с помощью sudo virsh -c qemu: /// system "list --all"

Id   Name                 State
----------------------------------
  - ubuntu               shut off  

Бух, когда я звоню

sudo virsh -c qemu:///system "start ubuntu"

Ошибка была выдана:

error: Failed to start domain ubuntu
error: internal error process exited while connecting to monitor: kvm: -drive file=/home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2: Permission denied

Пользователь "myuser" был добавлен в группу libvirt.

Я зашел так далеко, что изменил файл образа и его каталог на 777, но ошибка все еще есть.

RedGrittyBrick
источник

Ответы:

9

Изображения KVM ограничены selinux. Поместить их в / var / lib / libvirt / images должно быть достаточно.

http://libvirt.org/drvqemu.html#securityselinux более подробно.

Ричард Кеттвелл
источник
Мужчина!! Это сработало для меня. Большое спасибо, мужчина. Очевидно, каталог $ HOME вашей учетной записи защищен, в котором virsh любит устанавливать вещи по умолчанию. После установки моего vms я запустил mv $ HOME / vmfolder / var / lib / libvirt / images. Затем я запустил virsh edit vmname и соответственно изменил местоположение файла изображения.
Antwan W. A-Dubb
Мне также пришлось сменить владельца одного из моих vms. Он принадлежал root, что привело к отказу в доступе. sudo chown -R libvirt-qemu: kvm dbos / ubuntu-kvm /. Вы можете запустить ls -l для / your / vm / dir / и / its / subdirs /, чтобы проверить разрешения на каждом уровне. Убедитесь, что ни один из них не принадлежит к корневой группе и пользователю.
Antwan W. A-Dubb
Я обнаружил, что самый простой и безопасный способ создания ваших виртуальных машин - убедиться, что вы переходите в этот каталог / var / lib / libvirt / images и запускаете установку оттуда. Таким образом, вам не придется беспокоиться о разрешениях на уровне папок. Они просто по умолчанию для текущего пользователя, а не root.
Антван В. А-Дубб
4

простое решение - отредактировать файл /etc/libvirt/qemu.conf и раскомментировать следующие строки:

User = "root"
group = "root"

Не забудьте перезапустить libvirtd

Tman
источник
4
Это может позволить вам запустить его, но каковы последствия для безопасности?
cpast
1
Вероятно, лучше добавить себя в kvmгруппу, соответственно настроить права доступа к файлу изображения и установить user="<yourname>"в qemu.conf.
23 марта
1

В Arch Linux:

sudo usermod -a -G kvm username

установить разрешения для процессов QEMU в /etc/libvirt/qemu.conf

user = "username"
group = "kvm"

обновить членство в группе в том же терминале:

su - username

Добавьте псевдоним к вашему ~/.bashrc

alias virsh='EDITOR=nano sudo virsh && cd /etc/libvirt/qemu'

наконец-то

source ~/.bashrc
virsh
list --all
start mydomain
Стюарт Кардалл
источник
0

Кажется, эта ошибка разрешения также может быть связана с поврежденными наложениями / снимками qcow2!

В имел эту настройку:

Baseimage> Overlay1>Overlay2

Оверлеи были созданы с помощью cmd virsh snapshot-create ...и Overlay1использовались более новые (виртуальная машина не запущена) перед созданием Overlay2(созданным для тестирования).

Не очень вероятный вариант использования IRL, но, тем не менее, он получил эту ошибку и сводил меня с ума, пока я не понял, связано ли это с цепочкой оверлеев, а не с правами доступа к файловой системе.

MrCalvin
источник