ln -sとmount --rbindの違いは何ですか?


8

違いは何ですか:

ln -s /mnt/extra/home /

そして

mkdir /home
mount --rbind /mnt/extra/home /home

1
lnリンクを作成します。特に、ln -sシンボリックリンクを作成します。mountファイルシステムをディレクトリにマウントします。彼らには共通点はありません。
AlexP 2017年

しかしmount --rbind /mnt/extra/home、すでにマウントされたディレクトリです
NerdOfLinux '16

それを答えにして、この質問を解決済みとしてマークします:)
NerdOfLinux '16

回答:


13

mount --rbind再帰的なバインドマウントを作成します。つまり、マウントされているファイルシステム階層/mnt/extra/homeにもからアクセスできます/home

実際には、ln -sソリューションとソリューションの主な違いmount --rbindは、with ln -s /homeはシンボリックリンクであり、with はmount --rbindディレクトリです。このようなツールは、影響を与えfinddftest/ [など

また、存在ln -sする場合は失敗し、/home存在mount --rbindしない場合、または空のディレクトリでない場合は失敗します。

以下のマークのコメントも重要ln -sです。シンボリックリンクを作成するための書き込み可能なファイルシステムが必要です。


7
大きな違いはln -s、ファイルシステムは変更されますが、変更されmount --rbindないことです。つまり、読み取り専用ルート(例:ブートCD)にホームディレクトリをマウントできますが、そこにシンボリックリンクを作成することはできません。
マーク・

3
--bindそして、--rbindinaccessableそれらを残して、そこにあるものは何でもファイルの私のターゲットディレクトリが空の場合、彼らは単に「上」マウント気に表示されていない
Xen2050

7

この場合、バインドマウントとシンボリックリンクの両方がほとんどの目的で同様に機能しますが、重要な違いがあります。

シンボリックリンクは少し軽量です。何百または何千ものシンボリックリンクを使用できますが、管理上の問題はそれほどありません。彼らは特別なシステムレベルのセットアップを必要とするのではなく、ファイルシステムに座っています。

シンボリックリンクは、cpやrsyncなどのツールで正しくバックアップおよびコピーできます。つまり、ツールはシンボリックリンクを認識してコピーできるので、復元時に他の場所にリンクが復元され、正しい宛先をポイントするようになります。デフォルトではすべて「正しく」機能します。対照的に、バインドマウントをバックアップまたはコピーする場合、マウントは透過的に処理され、ファイル自体がコピーされます。これにより、同じファイルを他の場所にも取得すると重複が発生し、必要に応じて追加の作業が必要になる場合があります。宛先でバインドマウントを複製します。

シンボリックリンクは、リンクへのアクセス権を持つすべてのユーザーが変更または削除できるため、スーパーユーザーのみにしたり、特定のユーザーに公開したりするのは簡単です。バインドマウントは、スーパーユーザーのみがセットアップまたは変更できます。

これがシンボリックリンクの熱烈な支持のように聞こえる場合、それはそうです。これらは、ファイルとディレクトリをリンクするより簡単な方法です。バインドマウントは、シンボリックリンクが機能しない状況でのみ使用します。これは、考えているよりも状況が少ない場合があります。バックアップツールや同期ツールを含むほとんどのツールには、シンボリックリンクの適切なデフォルトの動作があり、シンボリックリンクの処理は構成可能です。バインドマウントはこのようなツールに対して透過的であるため、柔軟性が失われ、賢明な動作が失われる可能性があります(たとえば、上記のように、バックアップ内のディレクトリの複製)。


0

もう1つの違いは、シンボリックリンクがシンボリックであることです。つまり、パスは文字列であり、ターゲットパスでサブディレクトリ/ファイルを開くたびに逆参照されます。対照的に、mount --rbindパスは逆参照ごとに再評価されないハードリンクのように動作します。

これにより、などの一部のシナリオで違いが生じchrootます。たとえば chrootログインするFTPユーザーアカウントのホームディレクトリにvsftpdを入力します。そのため、そのディレクトリにシンボリックリンクを配置するvsftpdと、それを逆参照できなくなり、FTP経由でターゲットにアクセスできなくなります。あなたが代わりに行う場合はmount --rbind、その後、vsftpdそれは同様にあなたがそこにハードリンクされたファイルをいただきたいときなど、本当にあったかのようにだけアクセスサブツリーことでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.