これは次のように似ています シンボリックリンクを介してバインドマウントを行うにはどうすればよいですか?
しかし、ここで問題となるのは、シンボリックリンクからマウントバインドを行う方法です。
/linux-4.13.0とそれを指すシンボリックリンクlinuxがあります:/ linux-> /linux-4.13.0
いいえ、mount --bind/linux/currentを実行するのは好きですが、実際にはターゲット/linux-4.13.0をマウントし、シンボリックリンクはマウントしません。つまり、後でシンボリックリンクを変更しても、マウントには影響しなくなります。それを変更する方法はありますか?
残念ながら、マウントの基本原則のために、あなたが望むことはできません。
「mountAB」を呼び出すと、ディレクトリ「A」が取得され、「B」の代わりにカーネル内のディレクトリ階層にアタッチされます。 「A」がファイルシステムを含むブロックデバイスである一般的なケースでは、このFSは「B」にアタッチされます。バインドマウントは単に「A」ディレクトリを取得するだけです。(移動マウントは基本的にバインドマウントと同じですが、元の場所から「A」を追加で切り離すだけです。)
したがって、「A」および「B」として指定したパスはすべて、最初にすべてのシンボリックリンクと関連コンポーネントを調べて2つの実際のディレクトリを取得することによって解決されます。カーネルには、元のパスがありません。 (これが、一部のシステムがファイル(/ etc/mtab)を使用して、「mount」コマンドが正確に何で呼び出されたかを記憶している理由でもあります。)
これはすべて、非ディレクトリ(通常のファイルなど)を別の非ディレクトリにマウントする場合にも当てはまります。ディレクトリを非ディレクトリにマウントすることはできません。その逆も同様です。