Образ CoreOS не может загрузить файл зажигания через libvirt (в разрешении отказано)

Я тестирую новую сетевую конфигурацию с использованием виртуальных машин и установил libvirt и qemu в моей системе. Следуйте документации по Fedora CoreOS, чтобы начать работу.

Предпринятые шаги

  • Я обновил свой пользователю быть членом КМК и Libvirt групп
    > groups
    [ .. ] video kvm fuse libvirt
    
  • Создал Ignition YAML и экспортировал в файл JSON .ign
    {"ignition":{"version":"3.1.0"},"passwd":{"users":[{ ...
    
  • Выполнение команды kvm напрямую с использованием документации работает должным образом. Я могу подключиться к системе по ssh
  • libvirt может генерировать XML, используя шаги, указанные в исходной документации CoreOS (https://coreos.com/os/docs/latest/booting-with-libvirt.html#virtual-machine-startup) с прилагаемыми командами qemu
    ...
    <qemu:commandline xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0">
      <qemu:arg value="-fw_cfg"/>
      <qemu:arg value="name=opt/com.coreos/config,file=/var/lib/libvirt/machine/main.ign"/>
    </qemu:commandline>
    
  • Пытался установить права доступа к файлу зажигания на "kvm" и "libvirt" без изменений. В настоящее время все файлы, использующие libvirt:
    $ ls -l /var/lib/libvirt/machine/
    total 8
    -rw-r--r-- 1 root libvirt 2242 Sep 20 17:16 domain.xml
    -rwxr-xr-x 1 root libvirt  658 Sep 20 17:15 main.ign
    
  • Машина загружена и отображается в virt-manager
    $ virsh list --all
    Id   Name      State
    -----------------------------
    -    machine   shut off
    

Единственная проблема в том, что машина не будет работать из virt-manager или virsh:

$ virsh start machine
error: Failed to start domain machine
error: internal error: qemu unexpectedly closed the monitor: 2020-09-21T00:34:59.972390Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48FH).vmx-exit-load-perf-global-ctrl [bit 12]
2020-09-21T00:34:59.972427Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(490H).vmx-entry-load-perf-global-ctrl [bit 13]
2020-09-21T00:34:59.973278Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(48FH).vmx-exit-load-perf-global-ctrl [bit 12]
2020-09-21T00:34:59.973287Z qemu-system-x86_64: warning: host doesn't support requested feature: MSR(490H).vmx-entry-load-perf-global-ctrl [bit 13]
2020-09-21T00:34:59.980931Z qemu-system-x86_64: -fw_cfg name=opt/com.coreos/config,file=/var/lib/libvirt/machine/main.ign: can't load /var/lib/libvirt/machine/main.ign: Failed to open file “/var/lib/libvirt/machine/main.ign”: Permission denied

Теперь нет идей, что делать. У кого-то есть идея?

3 ответа

Измените следующую строку в /etc/libvirt/qemu.conf

      security_driver = "none"

Параметр

      security_driver = "none"

в /etc/libvirt/qemu.conf и перезапустите libvirtd, чтобы решить аналогичную проблему. (Debian 11, ни AppArmor, ни SELinux не активированы/не используются вообще). Ошибка здесь выглядела так:

      Error: error creating libvirt domain: internal error: process exited while connecting to monitor: ...

а также

      Could not open '/var/lib/libvirt/images/d1test4-centos7.qcow2': Permission denied

Попробуйте вместо этого

# mv main.ign /var/lib/libvirt/images/
# restorecon /var/lib/libvirt/images/main.ign

/var/lib/libvirt/images правильно разрешен и selinux помечен для доступа виртуальных машин. /var/lib/libvirt/machinesне является стандартным каталогом libvirt, поэтому в зависимости от того, как вы его создали, процесс qemu может не иметь доступа. Также в Fedora процесс qemu запускается от имени пользователя qemu, а не kvm или libvirt, так что это тоже может быть связано с этим, но если файл находится в / var / lib / libvirt / images и глобальные разрешения на чтение тогда я думаю этого должно быть достаточно

Другие вопросы по тегам