Как импортировать образ диска в libvirt?


12

Может кто-нибудь опубликовать правильный синтаксис? Я пытался использовать команду chmod, но я делаю что-то неправильно. Я просто пытаюсь переместить файл Centos ISO в / images, чтобы настроить тест VM


Можете ли вы опубликовать команды, которые вы пытаетесь запустить? А что за сообщение об ошибке?
Эрик Карвалью,

Ответы:


16

Вы не «должны» делать это таким образом, поскольку libvirt заботится о своих собственных пулах томов. Использование:

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

Это создаст том virsh, называемый centosв пуле по умолчанию с содержимым centos.iso.

Таким образом, libvirt позаботится обо всех необходимых разрешениях и собственниках.


1
Впервые пользуюсь форумом. Отличный совет.
Fmoov

2

Я предполагаю две вещи: /var/lib/libvirt/images/принадлежит, rootа вы нет root. Это хорошо, но вы должны уважать, в чем проблема.

Вероятнее всего, имеет смысл просто скопировать файл с правами root , используя sudo:

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

Кроме того, вы можете взять на себя /var/lib/libvirt/images/:

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

Или (наименее хороший) вы можете просто сделать его доступным для записи:

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

Я бы следовал логике, что это корень по какой-то причине, но если вы просто играете, и это никогда не будет производственной машиной, вам, вероятно, не нужно быть таким осторожным.


Я, вероятно, пойду с последней командой, так как понимаю, что это тестовая среда.
Fmoov

1

Вы можете попробовать сделать это в nautilus просто введите

sudo -i nautilus

и после этого скопируйте файл, как обычно.


Я предполагаю, что nautilus загружен?
Fmoov

nautilus - файловый менеджер по умолчанию для Ubuntu. Я не думаю, что я действительно понимаю ваш вопрос.
Михай

2
@ Rat2000 FYI
Оли

1
Оли да, вы правы. Gksudo не установлен по умолчанию, поэтому я изменил команду на sudo -i, которая должна выполнять эту работу.
Михай

1

Я знаю, что это старый пост, но я хотел поделиться тем, что я сделал.

В моем случае мне нужно было импортировать изображение qcow2 в том. Я использовал jq, qemu-img и и 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)

Перечислите пулы и выберите тот, который вы хотите:

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

# export IMGPOOL=default

Создать том:

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

И загрузите изображение:

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

Я не знаю, можете ли вы передать qemu-img virsh, вроде как 'qemu-img dd ... | virsh vol-upload ... 'но это было бы удобно :-)

Спасибо @Robie Basak за его пост, я использовал его, чтобы написать информацию выше.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.