45 Kiwiのトラブルシューティング #
Kiwiを使用して、Edge Image Builderで使用される、更新されたSUSE Linux Microイメージを生成します。
SL Microバージョンの不一致: 構築ホストのオペレーティングシステムのバージョンは、構築されるオペレーティングシステムのバージョンと一致する必要があります(SL Micro 6.0ホスト → SL Micro 6.0イメージ)。
SELinuxをEnforcing状態にする: 特定の制限のため、Kiwiを使用してイメージを構築できるように、現在はSELinuxを一時的に無効にする必要があります。
getenforce
でSElinuxステータスを確認し、setenforce 0
を使用して構築プロセスを実行する前にSElinuxを無効にしてください。構築ホストが登録されていない: 構築プロセスでは、SUSE SCCからパッケージをプルできるように、構築ホストサブスクリプションを使用します。ホストが登録されていない場合は失敗します。
ループデバイステスト失敗: 初めてKiwi構築プロセスが実行されると、 開始直後に失敗し、「ERROR: Early loop device test failed, please retry the container run. (エラー: ループデバイスの早期テストが失敗しました。もう一度コンテナの実行を試してください)」というエラーメッセージが表示されます。これは、基になるホストシステム上に作成されるループデバイスがすぐにはコンテナイメージ内に表示されないことを示す症状です。Kiwi構築プロセスを再実行すれば、問題なく続行されるはずです。
許可がない: 構築プロセスはルートユーザとして(またはsudoを介して)実行されることが想定されています。
間違った権限: 構築プロセスは、コンテナを実行する際には
--privileged
フラグが指定されていることが想定されています。このフラグが指定されていることを再度確認してください。
構築コンテナのログ: 構築コンテナのログを確認します。ログはアーティファクトの保存に使用されたディレクトリに生成されます。必要な情報については、dockerログまたはpodmanログも確認してください。
一時構築ディレクトリ: Kiwiは、構築プロセス中に一時ディレクトリを作成します。メイン出力が不十分な場合は、これらのディレクトリに中間ログやアーティファクトがないか確認します。
build-image
出力の確認: コンソール出力のエラーメッセージは通常、非常にわかりやすいものです。構築環境の確認: Kiwiを実行しているマシンでKiwi自体のすべての前提条件( docker/podman、SElinux, 十分なディスク容量など)が満たされていることを確認します。
構築コンテナログの検査: 失敗したコンテナのログで詳細なエラーについて確認します(上記参照)。
定義ファイルの確認: カスタムKiwiイメージ定義ファイルを使用している場合、タイポや構文についてファイルを再確認します。