Como importo uma imagem de disco para a libvirt?

12

Alguém pode postar a sintaxe adequada? Eu tentei usar o comando chmod, mas estou fazendo algo incorretamente. Estou apenas tentando mover um arquivo iso centos para / images para configurar um teste vm

Fmoov
fonte
Você pode postar os comandos que você está tentando executar? E qual é a mensagem de erro?
Eric Carvalho

Respostas:

16

Você não deve "fazer" dessa maneira, pois a libvirt cuida de seus próprios pools de volumes. Usar:

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

Isso criará um volume virsh chamado centosno pool padrão com o conteúdo de centos.iso.

Dessa forma, libvirt cuida de todas as permissões necessárias e a propriedade em si.

Robie Basak
fonte
1
Primeira vez que usei o fórum. Excelentes conselhos.
Fmoov 24/05
2

Eu assumo duas coisas: /var/lib/libvirt/images/é de propriedade de roote você não é root. Tudo bem, mas você precisa respeitar esse é o problema.

Provavelmente faria mais sentido copiar o arquivo como root , usando sudo:

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

Como alternativa, você pode assumir /var/lib/libvirt/images/:

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

Ou (menos bom), você pode simplesmente torná-lo gravável globalmente:

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

Eu seguiria a lógica de que é raiz por um motivo, mas se você estiver apenas brincando e isso nunca for uma máquina de produção, provavelmente não precisará ser tão cuidadoso.

Oli
fonte
Provavelmente eu vou com o último comando, pois entendo este e é um ambiente de teste.
Fmoov
1

Você pode tentar fazê-lo no nautilus, basta digitar

sudo -i nautilus

e depois copie o arquivo como faria normalmente.

Mihai
fonte
Presumo que o nautilus esteja carregado?
Fmoov
nautilus é o gerenciador de arquivos padrão do Ubuntu. Eu não acho que realmente entendi sua pergunta.
Mihai
2
@ Rat2000 FYI
Oli
1
Oli sim, você está certo O gksudo não é instalado por padrão, então mudei o comando para sudo -i, que deve fazer o trabalho.
Mihai
1

Sei que é um post antigo, mas queria compartilhar o que fiz.

No meu caso, eu precisava importar uma imagem qcow2 em um volume. Eu usei jq, qemu-img e 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)

Liste os pools e selecione o que você deseja:

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

# export IMGPOOL=default

Crie o volume:

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

E faça o upload da imagem:

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

Não sei se você pode canalizar o qemu-img para o virsh, como 'qemu-img dd ... | virsh vol-upload ... 'mas isso seria conveniente :-)

Obrigado @Robie Basak por seu post, usei-o para escrever as informações acima.

tuxillo
fonte