既存のディレクトリでマウントが発生するのはなぜですか?

既存のディレクトリでマウントが発生するのはなぜですか?

次の既存のディレクトリが必要です。マウントポイント

$ ls
$ sudo mount /dev/sdb2 ./datadisk
mount: mount point ./datadisk does not exist
$ mkdir datadisk
$ sudo mount /dev/sdb2 ./datadisk
$

ディレクトリの既存の内容を上書きするので混乱します。マウントポイントディレクトリには2つの可能な内容があり、誤って切り替えることができます(マウントを実行していないユーザーの場合)。

mount新しく作成されたディレクトリではなぜこれが起こらないのですか?これは、グラフィックオペレーティングシステムがリムーバブルメディアを表示する方法です。ディレクトリがマウントされているか(存在するのか)、マウントされていないのか(存在しないのか)明らかです。これには妥当な理由があると確信していますが、まだ発見されていません。

ベストアンサー1

実装内容が流出した事例です。

UNIXシステムでは、各ディレクトリにマップされた名前のリストが含まれています。インデックスノード数字。 inodeには、ファイル、ディレクトリ、特殊デバイス、名前付きパイプなど、認知システムに通知するメタデータが含まれています。ファイルまたはディレクトリの場合、ディスク上のファイルまたはディレクトリの内容が見つかる場所もシステムに通知します。ほとんどのinodeはファイルまたはディレクトリです。オプションはinode番号をリストします-ils

ファイルシステムをマウントするには、ディレクトリinodeが必要で、「実際にこのディレクトリの内容を見つけるときに別のファイルシステムを見てください」というフラグをカーネルのメモリコピーに設定します(スライド10を参照)。このプレゼンテーション)。これは単一のデータ項目を変更するので比較的簡単です。

新しいinodeを指すディレクトリエントリを生成しないのはなぜですか?これを達成する方法は2つありますが、どちらの方法にも欠点があります。一つは、新しいディレクトリをファイルシステムに物理的に書き込むことです。ただし、ファイルシステムが読み取り専用の場合、この操作は失敗します!別のアプローチは、実際に存在しない「追加」エントリのリストを各ディレクトリリストプロセスに追加することです。これは退屈な操作であり、各ファイル操作のパフォーマンスに多少の影響を与える可能性があります。

動的に作成されたマウントポイントが必要な場合は、システムがこれを行うことがautomountできます。特殊なビディスクファイルシステムは、などprocのディレクトリを勝手に生成することもできますsysdevfs

編集:答えも参照してくださいコンテンツを含む既存のフォルダを「マウント」するとどうなりますか?

おすすめ記事