libvirt - SLES12-Libvirt : virsh vol-delete fails when deleting disk image: cannot unlink file 'XXX' : Permission denied

标签 libvirt

问题描述: 在 SLES-12 机器上,如果我们尝试立即通过 virsh vol-delete 命令删除通过 virt-manager 配置的虚拟机的磁盘镜像,得到

cannot unlink file 'XXX': Permission denied" error.

此错误仅发生在配置虚拟机时创建的磁盘上。 如果我们通过 virt-manager 删除同一个磁盘,那么它会被正确删除。

如果我们通过 virt-manager 创建另一个磁盘并使用上面的 virsh 命令删除,它会被正确删除。

总而言之,问题仅在于删除作为配置虚拟机的一部分创建的磁盘。

版本-所选组件的发布号(如果适用):

操作系统:SUSE Linux Enterprise Server 12 SP1 (x86_64)

Libvirt 版本: cv-hj-kvmlib01-am02:/var/lib/libvirt/images # virsh 版本 针对库编译:libvirt 1.3.1 使用库:libvirt 1.3.1 使用API​​:QEMU 1.3.1 运行管理程序:QEMU 2.3.1

重现步骤:

  1. 通过 SLES_12 上的 virt-manager 配置虚拟机
  2. 删除使用 virsh 命令行配置虚拟机时创建的磁盘镜像:

virsh # vol-delete /var/lib/libvirt/images/.qcow2

error: Failed to delete vol /var/lib/libvirt/images/.qcow2

error: cannot unlink file '/var/lib/libvirt/images/.qcow2': Permission denied

最佳答案

我认为这可能与您提出的问题类似here .

假设这是一个已从虚拟机正确分离的卷,您可能只需要一次池刷新即可让 virsh 知道该卷不再使用:

# virsh pool-refresh 默认值

(假设您使用“默认”池)

然后再次尝试删除。如果您仍然遇到权限错误,我建议您查看图像文件的权限以及以下两个配置的内容:

/etc/libvirt/qemu.conf

/etc/libvirt/libvirtd.conf

关于libvirt - SLES12-Libvirt : virsh vol-delete fails when deleting disk image: cannot unlink file 'XXX' : Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35337011/

相关文章:

vagrant - 如何更改 Vagrant 默认网络范围?

xml - 如何使用 virt-install 将 VLAN 信息添加到 VM xml 文件?

java - 如何使用 java 在 libvirt 中使用 Activity 域填充组合框

virtualization - 我可以使用带有 QEMU 后端的 libvirt Python 模块注册事件回调吗?

python - 使用 Libvirt 制作的 KVM 在主机重启后不会持续存在

openstack - libvirtError : internal error Cannot find suitable CPU model for given data

python - 使用 libvirt 和 qemu 监控 VM 迁移时出错

java - 如何使用 libvirt java 绑定(bind)构建项目

libvirt 的 KVM/QEMU 网络 TAP 问题

python - virsh (libvirt) 的替代品