Jak zaimportować obraz dysku do libvirt?

12

Czy ktoś może opublikować odpowiednią składnię? Próbowałem użyć polecenia chmod, ale robię coś niepoprawnie. Właśnie próbuję przenieść plik ISO Centos do / images, aby skonfigurować testową maszynę wirtualną

Fmoov
źródło
Czy możesz opublikować polecenia, które próbujesz uruchomić? A jaki jest komunikat o błędzie?
Eric Carvalho

Odpowiedzi:

16

Tak naprawdę nie należy tak robić, ponieważ libvirt dba o własne pule woluminów. Posługiwać się:

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

Spowoduje to utworzenie woluminu virsh wywoływanego centosw domyślnej puli z zawartością centos.iso.

W ten sposób libvirt sam dba o wszystkie wymagane uprawnienia i własność.

Robie Basak
źródło
1
Pierwszy raz korzystałem z forum. Doskonała rada.
Fmoov
2

Zakładam dwie rzeczy: /var/lib/libvirt/images/należy do rootciebie, a ty nie root. W porządku, ale musisz uszanować, na tym polega problem.

Prawdopodobnie najbardziej sensowne byłoby po prostu skopiowanie pliku jako root , używając sudo:

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

Alternatywnie możesz przejąć /var/lib/libvirt/images/:

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

Lub (co najmniej dobre), możesz po prostu uczynić go globalnie zapisywalnym:

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

Kierowałbym się logiką, że to z jakiegoś powodu root, ale jeśli po prostu się bawisz i to nigdy nie będzie maszyną produkcyjną, prawdopodobnie nie musisz być tak ostrożny.

Oli
źródło
Prawdopodobnie używam ostatniego polecenia, ponieważ rozumiem to i jest to środowisko testowe.
Fmoov
2

Wiem, że to stary post, ale chciałem podzielić się tym, co zrobiłem.

W moim przypadku musiałem zaimportować obraz qcow2 do woluminu. Użyłem jq, qemu-img i 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)

Wymień pule i wybierz ten, który chcesz:

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

# export IMGPOOL=default

Utwórz wolumin:

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

I prześlij obraz:

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

Nie wiem, czy możesz potokować qemu-img do virsh, coś w stylu „qemu-img dd ... | virsh vol-upload ... ”, ale byłoby to wygodne :-)

Dzięki @Robie Basak za jego post, użyłem go do napisania powyższych informacji.

tuxillo
źródło
1

Możesz spróbować zrobić to nautilus, po prostu wpisz

sudo -i nautilus

a następnie skopiuj plik, jak zwykle.

Mihai
źródło
Czy zakładam, że nautilus jest załadowany?
Fmoov
nautilus jest domyślnym menedżerem plików dla Ubuntu. Nie sądzę, że naprawdę rozumiem twoje pytanie.
Mihai
2
@ Rat2000 FYI
Oli
1
Oli tak, masz rację gksudo nie jest instalowane domyślnie, więc zmieniłem polecenie na sudo -i, które powinno wykonać zadanie.
Mihai