问题描述: 在 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
重现步骤:
- 通过 SLES_12 上的 virt-manager 配置虚拟机
- 删除使用 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/