Comment importer une image disque dans libvirt?


12

Quelqu'un peut-il publier la syntaxe appropriée? J'ai essayé d'utiliser la commande chmod, mais je fais quelque chose de mal. J'essaye juste de déplacer un fichier iso centos vers / images pour configurer un test vm


Pouvez-vous publier les commandes que vous essayez d'exécuter? Et quel est le message d'erreur?
Eric Carvalho

Réponses:


16

Vous n'êtes pas vraiment "censé" le faire de cette façon, puisque libvirt s'occupe de ses propres pools de volumes. Utilisation:

size=$(stat -Lc%s centos.iso)
virsh vol-create-as default centos $size --format raw
virsh vol-upload --pool default centos centos.iso

Cela créera un volume virsh appelé centosdans le pool par défaut avec le contenu de centos.iso.

De cette façon, libvirt prend soin de toutes les autorisations et propriétés nécessaires.


1
J'ai première fois utilisé le forum. Excellent conseil.
Fmoov

2

Je suppose deux choses: /var/lib/libvirt/images/est appartenant à rootet vous n'êtes pas root. C'est bien , mais vous devez respecter c'est ce que le problème est.

Il serait sans doute plus judicieux de simplement copier le fichier sur en tant que root , en utilisant sudo:

sudo cp my-image /var/lib/libvirt/images/

Vous pouvez également prendre en charge /var/lib/libvirt/images/:

sudo chown $USER /var/lib/libvirt/images/

Ou (moins bien) vous pouvez simplement le rendre globalement inscriptibles:

sudo chmod 755 $USER /var/lib/libvirt/images/

Je suivrais la logique selon laquelle c'est racine pour une raison, mais si vous ne faites que jouer et que cela ne sera jamais une machine de production, vous n'avez probablement pas besoin d'être aussi prudent.


Je vais probablement avec la dernière commande si je comprends bien celle-ci et c'est un environnement de test.
Fmoov

1

Vous pouvez essayer de le faire dans Nautilus, tapez simplement

sudo -i nautilus

puis copiez le fichier comme vous le feriez normalement.


Dois-je supposer que nautilus est chargé?
Fmoov

nautilus est le gestionnaire de fichiers par défaut pour Ubuntu. Je ne pense pas que je comprends vraiment votre question.
Mihai

2
@ Rat2000 FYI
Oli

1
Oli oui, vous avez raison gksudo n'est pas installé par défaut, j'ai donc changé la commande en sudo -i, qui devrait faire le travail.
Mihai

1

Je sais que c'est un vieux post mais je voulais partager ce que j'ai fait.

Dans mon cas, j'avais besoin d'importer une image qcow2 dans un volume. J'ai utilisé jq, qemu-img et et 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)

Listez les pools et sélectionnez celui que vous souhaitez:

# virsh pool-list --all
 Name                 State      Autostart
-------------------------------------------
 default              active     yes

# export IMGPOOL=default

Créez le volume:

# virsh vol-create-as $IMGPOOL myvolume $IMGSIZE --format $IMGFMT
Vol myvolume created

Et téléchargez l'image:

# virsh vol-upload --pool $IMGPOOL myvolume /data/myfile.qcow2

Je ne sais pas si vous pouvez diriger qemu-img vers virsh, un peu comme 'qemu-img dd ... | virsh vol-upload ... 'mais ce serait pratique :-)

Merci @Robie Basak pour son message, je l'ai utilisé pour écrire les informations ci-dessus.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.