Kann jemand die richtige Syntax posten? Ich habe versucht, den Befehl chmod zu verwenden, aber ich mache etwas falsch. Ich versuche nur, eine Centos-ISO-Datei nach / images zu verschieben, um eine Test-VM einzurichten
Kann jemand die richtige Syntax posten? Ich habe versucht, den Befehl chmod zu verwenden, aber ich mache etwas falsch. Ich versuche nur, eine Centos-ISO-Datei nach / images zu verschieben, um eine Test-VM einzurichten
Antworten:
Sie sollten das eigentlich nicht so "tun", da libvirt sich um seine eigenen Volume-Pools kümmert. Verwenden:
size=$(stat -Lc%s centos.iso)
virsh vol-create-as default centos $size --format raw
virsh vol-upload --pool default centos centos.iso
Dadurch wird ein Virsh-Volume erstellt, das centos
im Standardpool mit dem Inhalt von aufgerufen wird centos.iso
.
Auf diese Weise kümmert sich libvirt selbst um alle erforderlichen Berechtigungen und Eigentumsrechte.
Ich nehme zwei Dinge an: /var/lib/libvirt/images/
gehört root
und du bist es nicht root
. Das ist in Ordnung, aber man muss respektieren, dass das das Problem ist.
Es wäre wahrscheinlich am sinnvollsten, die Datei einfach als root zu kopieren , indem Sie verwenden sudo
:
sudo cp my-image /var/lib/libvirt/images/
Alternativ können Sie übernehmen /var/lib/libvirt/images/
:
sudo chown $USER /var/lib/libvirt/images/
Oder (am wenigsten gut) Sie könnten es einfach global beschreibbar machen:
sudo chmod 755 $USER /var/lib/libvirt/images/
Ich würde der Logik folgen, dass es aus einem bestimmten Grund eine Wurzel ist, aber wenn Sie nur herumspielen und dies niemals eine Produktionsmaschine sein wird, müssen Sie wahrscheinlich nicht so vorsichtig sein.
Sie können versuchen, es in Nautilus zu tun, geben Sie einfach
sudo -i nautilus
und kopieren Sie danach die Datei wie gewohnt.
Ich weiß, dass es ein alter Beitrag ist, aber ich wollte mitteilen, was ich getan habe.
In meinem Fall musste ich ein qcow2-Image in ein Volume importieren. Ich habe jq, qemu-img und und bash verwendet:
# 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)
Listen Sie die Pools auf und wählen Sie den gewünschten aus:
# virsh pool-list --all
Name State Autostart
-------------------------------------------
default active yes
# export IMGPOOL=default
Erstellen Sie das Volume:
# virsh vol-create-as $IMGPOOL myvolume $IMGSIZE --format $IMGFMT
Vol myvolume created
Und lade das Bild hoch:
# virsh vol-upload --pool $IMGPOOL myvolume /data/myfile.qcow2
Ich weiß nicht, ob Sie qemu-img an virsh weiterleiten können, ähnlich wie 'qemu-img dd ... | virsh vol-upload ... 'aber das wäre praktisch :-)
Vielen Dank an @Robie Basak für seinen Beitrag. Ich habe ihn verwendet, um die obigen Informationen zu schreiben.