Virt-Installationsfehler: Ignition-Datei kann nicht geladen werden

Virt-Installationsfehler: Ignition-Datei kann nicht geladen werden

Ich versuche, Fedora CoreOS mit virt-install zu installieren, wie hier beschrieben: https://docs.fedoraproject.org/en-US/fedora-coreos/getting-started/

Der genaue Befehl, den ich ausführe:virt-install --connect qemu:///system -n fcos -r 2048 --os-variant=fedora31 --import --graphics=none --disk size=10,backing_store=fedora-coreos-31.20200310.3.0-qemu.x86_64.qcow2 --qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=/home/test/Downloads/example.ign"

gibt diesen Fehler zurück:

Allocating 'fcos.qcow2'                                                                                              |  10 GB  00:00:00     
ERROR    internal error: qemu unexpectedly closed the monitor: 2020-04-05T14:52:47.919380Z qemu-system-x86_64: -fw_cfg name=opt/com.coreos/config,file=/home/test/Downloads/example.ign: can't load /home/test/Downloads/example.ign
Removing disk 'fcos.qcow2'                                                                                           |    0 B  00:00:00     
Domain installation does not appear to have been successful.

Ich führe diesen Befehl als Root aus. Die Ignition-Datei funktioniert, da ich sie erfolgreich zum Bereitstellen dieser VM aus einer ISO-Datei verwendet habe.

Antwort1

Ich hatte das gleiche Problem. Laut dem Tipp für die ersten Schritte müssen Sie möglicherweise den Befehl chcon ausführen.

Wenn Sie mit aktiviertem SELinux arbeiten, müssen Sie möglicherweise die Bezeichnung der Ignition-Datei ändern, um den Zugriff zu ermöglichen: chcon -t svirt_home_t Pfad/zu/example.ign

Antwort2

Höchstwahrscheinlich handelt es sich um ein AppArmor-Problem. Ich bin auf dasselbe Problem gestoßen und habe alle möglichen Workarounds für Dateiberechtigungen wie setfacl -m u:libvirt-qemu:rxund ausprobiert chcon -t, aber letztendlich stellte sich heraus, dass es sich um eine Einschränkung des AppArmor-Profils handelte:

Um das Problem zu beheben, ändern Sie es so, /etc/apparmor.d/libvirt/TEMPLATE.qemudass der Pfad zu den Zündkonfigurationen miteinbezogen wird:

#
# This profile is for the domain whose UUID matches this file.
#

#include <tunables/global>

profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
  #include <abstractions/libvirt-qemu>
  /home/test/Downloads/example.ign rk,
  /etc/ignition/**.ign rk,
}

Beachten Sie, dass ich /etc/ignition/**.ignGlob als Beispiel hinzugefügt habe, falls Sie in Zukunft alle Ignition-Konfigurationen für Ihre VMs organisieren möchten.

Auf diese Weise können Sie eine CoreOS-VM erstellen virt-install.

Optional können Sie AppArmor für Qemu durch die Einstellung deaktivieren, security_driver = "none"aber /etc/libvirt/qemu.confich würde sagen, davon wird dringend abgeraten.

Antwort3

Unabhängig davon, ob Sie als Root ausführen , verwendet virt-installdie von libvirt gestartete VM wahrscheinlich den Benutzer. Dieser Benutzer hat wahrscheinlich keinen Such- und Lesezugriff auf /home/test. Das Verschieben der Datei dorthin würde das Problem beheben oder die Berechtigungen für den gesamten Dateipfad öffnen.qemu:///systemqemuqemu/tmp/home/test

Antwort4

Durch den Einsatz neuerer Versionen vonvirtueller Manager(6.5) undlibvirt(3.0) können Sie nun

virt-install \
    --sysinfo type=fwcfg,entry0.name=opt/com.coreos/config,entry0.file=${IGNITION_CONFIG} \
    ...

Dadurch wird sichergestellt, dass die Beschriftungen in der Zünddatei richtig festgelegt werden.

verwandte Informationen