Linuxで/ procがオーバーレイfsになることができないのはなぜですか?

Linuxで/ procがオーバーレイfsになることができないのはなぜですか?

Linuxで次のコマンドを実行すると(4.4.59および4.9.8でテスト済み)、失敗します。

mkdir -p /tmp/proc
mount -t overlay overlay -o lowerdir=/proc:/tmp/proc /tmp/proc

エラーメッセージがありますdmesg

overlayfs: maximum fs stacking depth exceeded

/procファイルシステムを覆うレイヤーにできないのはなぜですか?に
交換するか、問題なくインストールすると、次のようになります。/proc/dev/sys/proc

PSユースケースは、より安全なchroot環境を作成することですが、これを/dev実行しようとしています。既知の解決策は2つあります。/sys/procchroot

  1. 読み取り専用バインドマウント。制限は必須コマンドではなく、2 つのコマンドです。
  2. 読み取り専用特殊マウント:mount -t proc -o ro none /tmp/proc制限は、サブマウントが自動的にマップされないことです。

/devとにかく、なぜオーバーレイが/sys正しく機能するのかはまだ疑問に思っていますが、うまく/procいきません。

問題が移行されました。スタックオーバーフローで

ベストアンサー1

https://github.com/torvalds/linux/commit/e54ad7f1ee263ffa5a2de9c609d58dfa27b21cd9

    /*
     * procfs isn't actually a stacking filesystem; however, there is
     * too much magic going on inside it to permit stacking things on
     * top of it
     */
s->s_stack_depth = FILESYSTEM_MAX_STACK_DEPTH;

これは有益な答えではないかもしれませんが、カーネル開発者は特にサポートしていません。

おすすめ記事