テクノロジー · 実用ガイド
systemd の status=226/NAMESPACE?強化を無効にする前に失敗した名前空間操作を証明する
最初の詳細な journal エラーを保存し、各名前空間設定を実資源へ対応付け、証明された境界だけを直します。

status=226/NAMESPACE は、systemd が mount、UTS、IPC 名前空間を準備する段階で失敗したことを示します。サービス本体は通常実行を始めていないため、アプリの引数やログから始めるのは層が違います。
統合後 unit、最初の詳細な journal errno、設定と資源の対応表、ホストまたはコンテナ境界という四つの証拠を結びます。最初に切れた接続だけを修正し、無関係な sandbox は残します。
有効 unit と最初の失敗を固定する
systemctl cat と systemctl show を保存し、drop-in、systemd と kernel の版、manager の種類、container の有無を記録します。
失敗した起動の先頭から journal を読み、「Failed to set up … namespacing」の原文、パス、errno を 226 の要約より先に保存します。
設定を名前空間操作へ対応付ける
PrivateTmp、ProtectHome、ProtectSystem、path list、bind mount、一時 filesystem、root directory/image、PrivateIPC、ProtectHostname を列挙します。
各設定について source、destination、期待する型、symlink、供給 mount、任意の「-」prefix を記録し、直近の一行だけに絞りません。
ポリシーを弱めず資源を検証する
manager の host view で全 source と destination の存在と型を確認し、findmnt と path 解決で typo、node type、missing mount、permission を分けます。
EACCES/EPERM は親 directory、mount flag、MAC denial を調べ、EINVAL は対象と環境を保存してから変更します。
host と container の制約を分ける
Docker、LXC、user manager、user namespace は必要な所有権や capability を持たない場合があります。production を privileged にせず、検証環境で最小 unit を比較します。
user namespace、kernel support、container policy、AppArmor/SELinux 証拠を記録します。拒否ログがないことは全操作可能の証明ではありません。
一つの限定修復で閉じる
証明した typo、path、mount order、node type、policy、環境制約だけを直します。sandbox を緩めるなら、より狭い bind path や writable path を優先します。
daemon-reload と再起動後、元の行と 226 が消え、他の強化が有効なままか確認し、前後の証拠を保存します。
