以下の説明に従って、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 -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
後で仮想マシンのすべてのIgnition構成を構成することにした場合は、例としてglobを追加します。
だからあなたはそれを使用することができますvirt-install
。
オプションで設定すると、QemuのAppArmorを無効にできますが、そうしないことをお勧めしsecurity_driver = "none"
ます/etc/libvirt/qemu.conf
。
答え3
virt-install
libvirtによって起動された仮想マシンは、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} \
...
これにより、イグニッションファイルのタグが正しく設定されます。