ここで説明されているように、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 として実行しています。Ignition ファイルは、iso ファイルからこの VM を展開するために正常に使用したため、機能しています。
答え1
私も同じ問題を抱えていました。Getting Started のヒントに基づくと、chcon コマンドを実行する必要があるかもしれません。
SELinux を有効にして実行している場合は、アクセスを許可するために Ignition ファイルのラベルを変更する必要がある場合があります: chcon -t svirt_home_t path/to/example.ign
答え2
おそらく、これは AppArmor の問題です。同じ問題に遭遇し、次のようなすべてのファイル権限の回避策を試しましたがsetfacl -m u:libvirt-qemu:rx
、chcon -t
結局は AppArmor プロファイルの制限であることが判明しました。
この問題を解決するには、/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
将来的に VM のすべての Ignition 構成を整理することにした場合に備えて、例として globを追加したことに注意してください。
この方法では、 を使用して CoreOS VM を作成できるようになりますvirt-install
。
オプションとして、設定することで Qemu の AppArmor を無効にすることができますsecurity_driver = "none"
が/etc/libvirt/qemu.conf
、これは強くお勧めしません。
答え3
ルートとして実行しているかどうかに関係なくvirt-install
、libvirtによって起動されたVMはユーザーqemu:///system
を使用している可能性がありますqemu
。そのqemu
ユーザーは、たとえば/home/testへの検索+読み取りアクセス権を持っていない可能性があります。ファイルを移動すると修正されるか、ファイルパス/tmp
全体の権限が開きます。/home/test