Come importare un'immagine del disco in libvirt?


12

Qualcuno può pubblicare la sintassi corretta? Ho provato a usare il comando chmod, ma sto facendo qualcosa di sbagliato. Sto solo cercando di spostare un file iso di centos in / images per impostare un test vm


Puoi pubblicare i comandi che stai cercando di eseguire? E qual è il messaggio di errore?
Eric Carvalho,

Risposte:


16

Non sei davvero "supposto" di farlo in questo modo, dal momento che libvirt si occupa dei propri pool di volumi. Uso:

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

Questo creerà un volume virsh chiamato centosnel pool predefinito con il contenuto di centos.iso.

In questo modo, libvirt si occupa di tutte le autorizzazioni necessarie e la proprietà stessa.


1
La prima volta che ho usato il forum. Ottimo consiglio
Fmoov,

2

Presumo due cose: /var/lib/libvirt/images/è di proprietà roote non lo sei root. Va bene, ma devi rispettare questo è il problema.

Probabilmente avrebbe molto senso copiare il file come root , usando sudo:

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

In alternativa, puoi assumere /var/lib/libvirt/images/:

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

O (il meno bene) potresti renderlo scrivibile a livello globale:

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

Seguirei la logica che è root per un motivo, ma se stai solo giocando e questo non sarà mai una macchina di produzione, probabilmente non dovrai essere così attento.


Probabilmente vado con l'ultimo comando come ho capito questo ed è un ambiente di test.
Fmoov,

1

Puoi provare a farlo in nautilus semplicemente digitando

sudo -i nautilus

e successivamente copia il file come faresti normalmente.


Suppongo che nautilus sia caricato?
Fmoov,

nautilus è il file manager predefinito per Ubuntu. Non credo di capire davvero la tua domanda.
Mihai,

2
@ Rat2000 FYI
Oli

1
Oli sì, hai ragione gksudo non è installato di default, quindi ho cambiato il comando in sudo -i, che dovrebbe fare il lavoro.
Mihai,

1

So che è un vecchio post, ma volevo condividere quello che ho fatto.

Nel mio caso, dovevo importare un'immagine qcow2 in un volume. Ho usato jq, qemu-img e e 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)

Elenca i pool e seleziona quello che desideri:

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

# export IMGPOOL=default

Crea il volume:

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

E carica l'immagine:

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

Non so se puoi reindirizzare qemu-img in virsh, un po 'come' qemu-img dd ... | virsh vol-upload ... 'ma sarebbe conveniente :-)

Grazie @Robie Basak per il suo post, l'ho usato per scrivere le informazioni sopra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.