【问题标题】:libvirt "Permission denied" after creating backingfile创建后备文件后libvirt“权限被拒绝”
【发布时间】:2018-11-16 04:26:35
【问题描述】:

我用 wirt-manager 创建了一个虚拟机,在启动时安装了带有 iso 的 Win10。几次重新启动,安装的软件。 一切都好。从叠加层开始创建叠加层。一切都好。 在顶部创建第二个叠加层。基础映像 (W_64_10_v1.img) 上的“权限被拒绝”。其他覆盖较少且权限相同的机器工作正常。

为什么我不能启动机器? / 哪个进程缺少它的权利?

图像和后备链可能是正确的,因为我可以用sudo qemu-system ... 开始图像。

virsh # 启动 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"

文件权限:(将所有权限添加到文件中...不起作用)

-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

【问题讨论】:

    标签: qemu kvm libvirt


    【解决方案1】:

    原因:错误地创建了 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
    

    创建类似(如何创建错误)

    qemu-img create -f qcow2 Base.img 50G
    qemu-img create -f qcow2 -b Base.img FirstFloor.ovl
    qemu-img create -f qcow2 -b FirstFloor.ovl SecondFloor.ovl
    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
    

    感谢支持:Peter Krempa (redhat) 相关bugrequest:https://bugzilla.redhat.com/show_bug.cgi?id=1588373

    【讨论】:

    • 请删除第二个代码部分中的“me@VM:/storage$”以获得更好的可读性
    • 感谢您的提示!
    猜你喜欢
    • 2011-10-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2018-02-10
    • 2012-08-18
    • 2016-01-01
    相关资源
    最近更新 更多