Answers:
您并不是真的“应该”那样做,因为libvirt会照顾自己的卷池。用:
size=$(stat -Lc%s centos.iso)
virsh vol-create-as default centos $size --format raw
virsh vol-upload --pool default centos centos.iso
这将centos
在默认池中创建内容为的virsh卷centos.iso
。
这样,libvirt会自行处理所有必需的权限和所有权。
我假设有两件事:/var/lib/libvirt/images/
归所有者所有,root
而您不属于root
。很好,但是您必须尊重问题所在。
使用以下命令将文件复制为root可能是最有意义的sudo
:
sudo cp my-image /var/lib/libvirt/images/
或者,您可以接管/var/lib/libvirt/images/
:
sudo chown $USER /var/lib/libvirt/images/
或者(最差),您可以将其设置为全局可写:
sudo chmod 755 $USER /var/lib/libvirt/images/
我会遵循其根源的逻辑,但这是有原因的,但是如果您只是在玩耍,而这永远不会成为生产机器,那么您可能不需要那么小心。
我知道这是一篇过时的文章,但我想分享自己的所作所为。
就我而言,我需要将qcow2映像导入到卷中。我用过jq,qemu-img和bash:
# export IMGSIZE=$(qemu-img info --output json /data/myfile.qcow2 | jq -r .[\"virtual-size\"])
# export IMGFMT=$(qemu-img info --output json /data/myfile.qcow2 | jq -r .format)
列出池并选择所需的池:
# virsh pool-list --all
Name State Autostart
-------------------------------------------
default active yes
# export IMGPOOL=default
创建卷:
# virsh vol-create-as $IMGPOOL myvolume $IMGSIZE --format $IMGFMT
Vol myvolume created
并上传图片:
# virsh vol-upload --pool $IMGPOOL myvolume /data/myfile.qcow2
我不知道您是否可以将qemu-img通过管道发送到virsh,有点像'qemu-img dd ... | virsh vol-upload ...',但这很方便:-)
感谢@Robie Basak的帖子,我用它来写上面的信息。