Bagaimana cara mengimpor gambar disk ke libvirt?


12

Bisakah seseorang memposting sintaks yang tepat? Saya telah mencoba menggunakan perintah chmod, tetapi saya melakukan sesuatu yang salah. Saya hanya mencoba untuk memindahkan file cento iso ke / gambar untuk mengatur vm pengujian


Bisakah Anda memposting perintah yang Anda coba jalankan? Dan apa pesan kesalahannya?
Eric Carvalho

Jawaban:


16

Anda tidak benar-benar "seharusnya" melakukannya dengan cara itu, karena libvirt menangani kumpulan volumenya sendiri. Menggunakan:

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

Ini akan membuat volume virsh yang disebut centosdalam kumpulan default dengan isi centos.iso.

Dengan cara ini, libvirt menangani semua izin dan kepemilikan yang diperlukan itu sendiri.


1
Pertama kali saya menggunakan forum. Saran yang sangat baik.
Fmoov

2

Saya berasumsi dua hal: /var/lib/libvirt/images/dimiliki oleh rootdan Anda tidak root. Tidak apa-apa, tetapi Anda harus menghargai bahwa itulah masalahnya.

Mungkin paling masuk akal untuk hanya menyalin file sebagai root , menggunakan sudo:

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

Atau, Anda dapat mengambil alih /var/lib/libvirt/images/:

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

Atau (paling tidak bagus) Anda bisa membuatnya bisa ditulis secara global:

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

Saya akan mengikuti logika bahwa itu root karena suatu alasan tetapi jika Anda hanya bermain-main dan ini tidak akan pernah menjadi mesin produksi, Anda mungkin tidak perlu berhati-hati.


Saya mungkin pergi dengan perintah terakhir karena saya mengerti yang ini dan itu adalah lingkungan pengujian.
Fmoov

1

Anda dapat mencoba melakukannya di ketik nautilus saja

sudo -i nautilus

dan setelah itu salin file seperti biasa.


Apakah saya berasumsi bahwa nautilus dimuat?
Fmoov

nautilus adalah manajer file default untuk Ubuntu. Saya rasa saya tidak mengerti pertanyaan Anda.
Mihai

2
@ Rat2000 FYI
Oli

1
Oli ya, Anda benar gksudo tidak diinstal secara default, jadi saya mengubah perintah untuk sudo -i, yang seharusnya melakukan pekerjaan.
Mihai

1

Saya tahu ini adalah pos lama tetapi saya ingin membagikan apa yang saya lakukan.

Dalam kasus saya, saya perlu mengimpor gambar qcow2 ke volume. Saya telah menggunakan jq, qemu-img dan dan 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)

Buat daftar kolam dan pilih yang Anda inginkan:

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

# export IMGPOOL=default

Buat volume:

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

Dan unggah gambar:

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

Saya tidak tahu apakah Anda dapat mem-pipe qemu-img ke virsh, semacam seperti 'qemu-img dd ... | virsh vol-unggah ... 'tapi itu akan nyaman :-)

Terima kasih @Robie Basak untuk postingnya, saya telah menggunakannya untuk menulis informasi di atas.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.