回答:
もちろん。を実行すると、特定のファイルシステムオブジェクトを指すiノードln -s
であるシンボリックリンクを作成します。このため、シンボリックリンクはファイルシステムを横断でき、ハードリンクはできません。ハードリンクには独自のiノードがありません。
でファイルシステムをマウントする場合、デバイスまたはファイルシステムの--bind
2番目のマウントポイントを作成します。
シンボリックリンクをリダイレクトとして想定している場合、--bind
マウントされたファイルシステムがデータへの別のゲートウェイを作成していると想定します。
シンボリックリンクとバインドマウントは、まったく異なるボールゲームです。
--bind
マウントは私には少しより堅牢なようだし、それはおそらく、少し速くシンボリックリンクでの作業よりもです。一方、パフォーマンスヒットは小さいため(存在する場合)、シンボリックリンクを使用しても重大な欠点はありません。
編集:私はこれについて考えてきました、そして、パフォーマンスのヒットは私が当初考えていたより少し大きいかもしれません。多数の異なるファイルを読み取るアプリケーションがある場合、新しいファイルを開くたびに余分な読み取りが必要になります。ここでのいくつかの研究は、私の仮定が正しいことを示唆しています。そこで、IOが重いアプリケーションをそこで実行している--bind
場合、symlinkソリューションの上にマウントするオプションを検討してください。
一般的ではない理由は、おそらく、シンボリックリンクがで表示されるのls
に対し、バインドマウントは/ proc / mountsまたは/ etc / mtabを見るときにのみ表示されるという事実です(mountコマンドは、パラメータなしで実行されます)。それ以外は、問題はないと思います。しかし、もしあれば興味があります。
追加:別の問題ln -s
は、一部のアプリケーションでは、パスが間接参照されると、特定のアイテムが特定の場所にあると「予想」されるとアプリケーションが動かなくなる可能性があることです。
mount
引数なしで呼び出された場合、内容印刷/etc/mtab
よりわずかに異なる情報を有します/proc/mounts
。(特に、/proc/mounts
(へのシンボリックリンク/proc/self/mounts
)は、それを読み込んでいるプロセスから見えるマウントポイントを常に表示します。)
ln -s
とバインドマウントの大きな違いの1つは、バインドマウントを使用して読み取り専用ファイルシステムを「変更」できることです。たとえば、にCDがマウントされ/mnt/application
ていて/mnt/application/badconfigfile.conf
、正しいバージョンに置き換える場合は、次のようにします。
mount -o bind /path/to/correct/file.conf /mnt/application/badconfigfile.conf
ターゲットファイルシステムを変更できないため、シンボリックリンクを使用して同じ変更に影響を与えることはできません。
これは、NFS(または何らかのクラスターファイルシステム)を介して共通のソフトウェアスイートを配布し、1つのシステムでホスト固有の変更を行いたい場合にも有効に使用できます。必要に応じて、ターゲットシステムでバインドマウントを使用して、ファイルまたはディレクトリをオーバーライドできます。