如何将磁盘映像导入libvirt?


12

有人可以发布正确的语法吗?我尝试使用chmod命令,但是做错了什么。我只是想将centos iso文件移动到/ images以设置测试虚拟机


您可以发布您要运行的命令吗?错误消息是什么?
埃里克·卡瓦略

Answers:


16

您并不是真的“应该”那样做,因为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会自行处理所有必需的权限和所有权。


1
第一次使用论坛。极好的建议。
Fmoov

2

我假设有两件事:/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/

我会遵循其根源的逻辑,但这是有原因的,但是如果您只是在玩耍,而这永远不会成为生产机器,那么您可能不需要那么小心。


据我所知,我可能会使用最后一个命令,它是一个测试环境。
Fmoov

1

您可以尝试在nautilus中执行此操作,只需键入

sudo -i nautilus

然后像往常一样复制文件。


我是否认为鹦鹉螺已加载?
Fmoov

nautilus是Ubuntu的默认文件管理器。我不认为我真正理解您的问题。
Mihai

2
@ Rat2000 FYI
Oli

1
Oli是的,您是对的,默认情况下未安装gksudo,所以我将命令更改为sudo -i,这应该可以完成工作。
Mihai

1

我知道这是一篇过时的文章,但我想分享自己的所作所为。

就我而言,我需要将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的帖子,我用它来写上面的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.