/と/自体の他のディレクトリをマージする統合を作成するには?

/と/自体の他のディレクトリをマージする統合を作成するには?

/たとえば、最初は次のようになります。

/bin/foo
/usr/bin/bar
/usr/lib/libfoo.so

/stuffたとえば、次のコンテンツを含む別のディレクトリがあります。

usr/lib/mystuff/mystuff.so
etc/foo/qux/buzz
bin/stuff

次のような結果を得るためにとの間/に統合を作成する方法はありますか?/stuff

/bin/foo
/bin/stuff
/usr/bin/bar
/usr/lib/libfoo.so
/usr/lib/mystuff/mystuff.so
/etc/foo/qux/buzz

(そしてそこにあるすべては/stuffそこには表示されません。)

この同盟は次のようになります。一時的なcp(ファイルシステムのマウントと同様)そうでなければ、mvまたはを使用することもできますrsync

どうすればいいですか?

この質問に対する答えは簡単に見つけることができると予想されます。実際には、2つのディレクトリ間に統合を作成し、それらを別の場所にマウントすることに言及するオンラインリソースがたくさんありますが、マウントディレクトリ「上記」という特別なケースを実際に扱う場所はありません/

答え1

継続的なリアルタイム展開を例にしてみてください。

すべての統合マウント方法がルートディレクトリで動作するわけではありません。これには、Unionfs、aufs、overlayfs が含まれます。 Overlayfsは、最新のLinuxシステムで使用されている方法です。

存在するファイルシステムの上書き、子ファイルシステムと親ファイルシステムが結合され、親ファイルシステムが優先的に書き込みを受け取ります。書き込み可能な共用体を取得するには作業ディレクトリを指定する必要があります。overlayfsでメタデータを保存するために使用されます。これは、親ディレクトリと同じファイルシステム上の空のディレクトリである必要があります。

mkdir /stuff/.overlayfs.work
mount -t overlay -o lowerdir=/,upperdir=/stuff,workdir=/stuff/.overlayfs.work overlay /

関連情報