libvirt "Отказано в доступе" после создания backingfile - PullRequest
0 голосов
/ 06 июня 2018

Я создал виртуальную машину с wirt-менеджером, установил Win10 с iso при запуске.Пара перезагрузок, Установленные программы.Все хорошо.создание наложения, начиная с наложения.все хорошо.Создание второго наложения сверху.«Отказано в доступе» для базового образа (W_64_10_v1.img).Другие машины с меньшим количеством оверлеев и теми же правами работают нормально.

Почему я не могу запустить машину?/ Какому процессу не хватает его прав?

Изображения и обратная цепь могут быть правильными, потому что я могу запустить изображения с sudo qemu-system ....

virsh # start W_64_10_v1

error: Failed to start domain W_64_10_v1
error: internal error: process exited while connecting to monitor:
2018-06-06T12:55:42.062395Z qemu-system-x86_64: 
-drive file=/media/img/SharedImages/qemu18/W_64_10_v1_daemon.ovl,
format=qcow2,if=none,id=drive-ide0-1-0: 
Could not open backing file: Could not open backing file: 
Could not open '/media/img/SharedImages/qemu18/W_64_10_v1.img': 
Permission denied

версия virsh

Compiled against library: libvirt 4.0.0
Using library: libvirt 4.0.0
Using API: QEMU 4.0.0
Running hypervisor: QEMU 2.11.1

/ etc / libvirt / qemu.conf (выдержка)

dynamic_ownership = 1
user = "root"
group = "root"

Filepermissiones: (добавление каждого права на файл ... не работает)

-rwxrwxrwx 1 root root 193K Jun  6 14:41 W_64_10_v1_daemon.ovl
-rwxrwxrwx 1 root root 193K Jun  6 14:41 W_64_10_v1_daemon.ovl.backup
-rwxrwxrwx 1 root root 135M Jun  6 14:41 W_64_10_v1_F.ovl
-rwxrwxrwx 1 root root  51G Jun  6 14:41 W_64_10_v1.img

1 Ответ

0 голосов
/ 07 июня 2018

Причина: неправильно создан backingfile / overlay.во время создания я не использовал ключ -F.

Base.img        (ok - Win 10 Installation starting)
FirstFloor.ovl  (ok - Win 10 Installation starting)
SecondFloor.ovl (permission denied -> Base.img) => assumed Bug
Roof.ovl        (permission denied -> Base.img) => assumed Bug

создать как (Как создать ошибку)

me@VM:/storage$ qemu-img create -f qcow2 Base.img 50G
me@VM:/storage$ qemu-img create -f qcow2 -b Base.img FirstFloor.ovl
me@VM:/storage$ qemu-img create -f qcow2 -b FirstFloor.ovl SecondFloor.ovl
me@VM:/storage$ qemu-img create -f qcow2 -b SecondFloor.ovl Roof.ovl

Это работает, потому что RAWпредполагается, что приводит к ошибке.

Как ВЫ должны это сделать:

qemu-img create -f qcow2 Base.img 50G
qemu-img create -f qcow2 -F qcow2 -b Base.img FirstFloor.ovl
qemu-img create -f qcow2 -F qcow2 -b FirstFloor.ovl SecondFloor.ovl
qemu-img create -f qcow2 -F qcow2 -b SecondFloor.ovl Roof.ovl

Как вы решаете уже существующие проблемы

qemu-img rebase -f qcow2 -b Base.img -F qcow2 FirstFloor.ovl
qemu-img rebase -f qcow2 -b FirstFloor.ovl -F qcow2 SecondFloor.ovl
qemu-img rebase -f qcow2 -b SecondFloor.ovl -F qcow2 Roof.ovl

спасибо за поддержку: запрос исправления, связанный с Питером Кремпой (redhat): https://bugzilla.redhat.com/show_bug.cgi?id=1588373

...