¿Cómo importo una imagen de disco en libvirt?

12

¿Alguien puede publicar la sintaxis adecuada? He intentado usar el comando chmod, pero estoy haciendo algo incorrectamente. Solo estoy tratando de mover un archivo iso centos a / images para configurar un vm de prueba

Fmoov
fuente
¿Puedes publicar los comandos que estás intentando ejecutar? ¿Y cuál es el mensaje de error?
Eric Carvalho

Respuestas:

16

Realmente no se "supone" que lo haga de esa manera, ya que libvirt se encarga de sus propios grupos de volúmenes. Utilizar:

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

Esto creará un volumen virsh llamado centosen el grupo predeterminado con el contenido de centos.iso.

De esta manera, libvirt se encarga de todos los permisos y la propiedad necesarios.

Robie Basak
fuente
1
Primera vez que uso el foro. Excelente consejo
Fmoov
2

Asumo dos cosas: /var/lib/libvirt/images/es propiedad de rootusted y usted no root. Eso está bien, pero tienes que respetar, ese es el problema.

Probablemente tendría más sentido copiar el archivo como root , usando sudo:

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

Alternativamente, puede hacerse cargo de /var/lib/libvirt/images/:

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

O (menos bueno) podría hacerlo globalmente escribible:

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

Seguiría la lógica de que es raíz por una razón, pero si solo estás jugando y esto nunca será una máquina de producción, probablemente no necesites ser tan cuidadoso.

Oli
fuente
Probablemente vaya con el último comando, ya que entiendo este y es un entorno de prueba.
Fmoov
1

Puedes intentar hacerlo en nautilus solo escribe

sudo -i nautilus

y después de eso, copie el archivo como lo haría normalmente.

Mihai
fuente
¿Asumo que el nautilus está cargado?
Fmoov
nautilus es el administrador de archivos predeterminado para Ubuntu. No creo que realmente entienda tu pregunta.
Mihai
2
@ Rat2000 FYI
Oli
1
Oli sí, tienes razón, gksudo no está instalado por defecto, así que cambié el comando a sudo -i, eso debería hacer el trabajo.
Mihai
1

Sé que es una publicación antigua, pero quería compartir lo que hice.

En mi caso, necesitaba importar una imagen qcow2 en un volumen. He usado jq, qemu-img y and 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)

Enumere los grupos y seleccione el que desee:

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

# export IMGPOOL=default

Crea el volumen:

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

Y sube la imagen:

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

No sé si puedes canalizar qemu-img a virsh, algo así como 'qemu-img dd ... | virsh vol-upload ... 'pero eso sería conveniente :-)

Gracias @Robie Basak por su publicación, la he usado para escribir la información anterior.

esmoquin
fuente