有人能发布正确的语法吗?我尝试使用 chmod 命令,但我做错了。我只是想将 centos iso 文件移动到 /images 以设置测试虚拟机
答案1
您实际上“不应该”这样做,因为 libvirt 会管理自己的卷池。使用:
size=$(stat -Lc%s centos.iso)
virsh vol-create-as default centos $size --format raw
virsh vol-upload --pool default centos centos.iso
这将在默认池中创建一个名为 virsh 卷,centos
其内容为centos.iso
。
这样,libvirt 会自行处理所有所需的权限和所有权。
答案2
我知道这是一篇旧帖子但我想分享我所做的事情。
在我的例子中,我需要将 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 的帖子,我用它来写下上述信息。
答案3
我假设有两点:/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/
我会遵循这样的逻辑,即它是有原因的,但如果你只是在玩,而且这永远不会成为一台生产机器,你可能不需要那么小心。
答案4
您可以尝试在 nautilus 中执行此操作,只需输入
sudo -i nautilus
然后像平常一样复制文件。