仮想インストールエラー:イグニッションファイルを読み込めませんでした。

仮想インストールエラー:イグニッションファイルを読み込めませんでした。

以下の説明に従って、virt-installを使用してFedora CoreOSをインストールしようとしています。 https://docs.fedoraproject.org/en-US/fedora-coreos/getting-started/

私が実行している正確なコマンドは次のとおりです。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"

次のエラーが返されます。

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.

このコマンドをrootとして実行しています。 isoファイルからこの仮想マシンを展開するために正常に使用されたため、イグニッションファイルは機能しています。

答え1

私も同じ問題があり、始めるためのヒントによれば、chconコマンドを実行する必要があるかもしれません。

SELinuxが有効になっている場合は、アクセスを許可するためにIgnitionファイルのラベルを変更する必要があるかもしれません:chcon -t svirt_home_t path/to/example.ign

答え2

AppArmorの問題である可能性が高いです。同じ問題が発生し、次のすべての可能なファイル権限の回避策を試しましたが、setfacl -m u:libvirt-qemu:rx最終的にchcon -tAppArmorプロファイルの制限が発生しました。

この問題を解決するには、/etc/apparmor.d/libvirt/TEMPLATE.qemuイグニッション構成を含めるようにパスを変更します。

#
# 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,
}

/etc/ignition/**.ign後で仮想マシンのすべてのIgnition構成を構成することにした場合は、例としてglobを追加します。

だからあなたはそれを使用することができますvirt-install

オプションで設定すると、QemuのAppArmorを無効にできますが、そうしないことをお勧めしsecurity_driver = "none"ます/etc/libvirt/qemu.conf

答え3

virt-installlibvirtによって起動された仮想マシンは、rootとして実行されているかどうかにかかわらず、qemu:///systemこのqemuユーザーを使用できます。たとえば、qemuユーザーに/home/testへの検索+読み取りアクセス権がない可能性があります。ファイルを/tmp変更できる場所に移動するか、ファイル全体の/home/testパスに対する権限を開いてください。

答え4

最新バージョンを使用してください仮想管理者(6.5)とライブラリ仮想マシン(3.0)、今すぐ利用可能

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

これにより、イグニッションファイルのタグが正しく設定されます。

関連情報