FreeBSD 11.3を実行しているFreeNASサーバーで、一部の11.3 Base Jailを11.4にアップグレードしようとしています。私は以下を使用しました:
iocage upgrade -r 11.4-RELEASE my-jail-name
一部の刑務所はetcupdate failed! Rolling back snapshot
メッセージのために失敗します。etcupdate
刑務所の内外で手動で実行しようとすると、iocage exec
次の追加メッセージが表示されます。Failed to build new tree.
何が間違っていますか?
ベストアンサー1
/usr/local/sbin/etcupdate
スクリプトが失敗する理由は、システム不変フラグを設定して特定のファイルが削除されるのを防ぐためであることがわかりましたchflags schg
。スクリプトの213行を参照してください。
chflags -R noschg $1 >&3 2>&1 || return 1
残念ながら、フラグは消去されず、265〜266行でエラーが発生しますOperation not permitted
。
chflags -R noschg $1 >&3 2>&1
rm -rf $1 >&3 2>&1
刑務所に必要なallow_chflags
設定があるにもかかわらず、設定を許可するのがsecurelevel
デフォルトです。2
schg
いいえそうすることを許す設定されていません。
この問題を解決するには、刑務所をsecurelevel
一時的に変更し、オンになっていることを0
確認してから操作する必要がありました。アップグレードしたら、より安全なデフォルトに戻ります。allow_chflags
iocage upgrade
securelevel
2
もし他の方々に役立つかと思ってここに文を載せます。