LINUX.ORG.RU

Как обновить libvirt?

 ,


1

1

Всем привет.

Использую Opennebula, но это не суть - от этого можно абстрагироваться.

В Opennebula в шаблон виртуалки добавляю

<os  firmware='efi'>
    <type>hvm</type>
    <loader secure='no'/>
</os>

чтобы в неё добавлялся загрузчик UEFI.

Так вот. При создании ВМ получаю ошибку:

error: internal error: process exited while connecting to monitor: 2021-08-01T12:31:34.230725Z qemu-kvm-one: -blockdev {"driver":"file","filename":"/var/lib/libvirt/qemu/nvram/one-15_VARS.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}: Could not open '/var/lib/libvirt/qemu/nvram/one-15_VARS.fd': Permission denied

Суть ясна - Permission denied. Это баг QEMU и есть ISSUE этой проблемы с описанием как это исправить https://gitlab.com/libvirt/libvirt/-/issues/159

Месяц назад в этом же ISSUE закоммитили это обновление, но я не могу понять как теперь обновить QEMU с этим исправлением. Гугл выдаёт ссылки на просто установку QEMU+KVM.



Последнее исправление: yatakoi (всего исправлений: 2)

qemu не надо обновлять, надо обновить libvirt (в твоем случае скомпилировать самому, т.к. известный ппа либвирта для фоссы не обвлялся с год), т.к. баг был в нем.

ЗЫ Может проще руками создать файл и выставить нужные права?

s-o
()

Через libastral же!

anonymous
()
Ответ на: комментарий от s-o

Да, так проще, но при создании новой машины создаётся файл one-id_VARS.fd, где id идентификатор, который каждый раз меняется.

Компилировать все же не вариант. Какие тогда возможны варианты юзеру oneadmin стать рутом при том, что файл one-id_VARS.fd при создании имеет такие права:

[root@opennebula one]# ll /var/lib/libvirt/qemu/nvram/
total 528
-rw------- 1 root root 540672 Aug  2 06:44 one-34_VARS.fd
yatakoi
() автор топика

Отбой.

Делаем вот так:

cd /var/lib/libvirt/qemu
dd if=/dev/zero of=/var/lib/libvirt/qemu/nvram.img bs=100M count=2
chown root. /var/lib/libvirt/qemu/nvram.img && chmod 0600 /var/lib/libvirt/qemu/nvram.img
losetup -fP /var/lib/libvirt/qemu/nvram.img && losetup -a
mkfs.vfat /dev/loop0
losetup -d /dev/loop0
chown oneadmin. /var/lib/libvirt/qemu/nvram
echo "/- /etc/auto.qemu-nvram" > /etc/auto.master.d/nvram.autofs
echo "/var/lib/libvirt/qemu/nvram -fstype=vfat,uid=oneadmin,gid=oneadmin,umask=0077 :/var/lib/libvirt/qemu/nvram.img" > /etc/auto.qemu-nvram
systemctl restart autofs

И файл будет создаваться с правами oneadmin.

yatakoi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.