私が読んでいる設置の概念を理解しにくいそして次の説明が見つかりました。
を使用すると、
mount -t iso9660 /dev/cdrom /media/cdrom
システムは「この長いバイト文字列をからインポートし、/dev/cdrom
それを形式のディレクトリツリーとして解釈iso9660
し、その場所からアクセスできるようにします/media/cdrom
」と言います。
と他の同様の答え。これは意味があり、このロジックを介してインストールが本質的にカップルカーネルが既存のファイルシステム階層に配置できるようにデバイスの内容を解釈するデバイスのファイルシステム。
これが本当なら、リングマウントが必要なのはなぜですか?
aの目的mount -o loop
は、技術的にmount
作業(ファイルを読み取ってファイルシステムのコンテキストでその内容を解釈する作業)と同じなので、特別なデバイスを作成せずにマウント操作を一般化できないのはなぜですか?
編集する:私が知っている限り、ループデバイスはファイル用のブロックデバイスAPIを提供します。しかし、私の質問はより一般的です。通常のファイル(iso
または同様のディスクイメージ形式)から読み取るのは、特別なファイルから読み取るものとどう違いますか?もし同じデータが含まれていますか?
どのように動作するかについての私の精神モデルはmount
次のとおりです。ファイルによって公開された任意のバイトセットがファイル/dev/device
システムドライバによって解釈される場合(ext4
たとえば)、mount
コマンドはそれをルート階層に関連付けてエンドユーザー。
ただし、この任意のバイトセットはどこにでも表示できます。ファイルシステムドライバによって解釈されると、有効なファイルシステムとして認識されるはずです。ファイルシステムドライバの読み取りを制限するただ通常のファイルの代わりに特別なファイルから?
ベストアンサー1
ブロックデバイスは通常のファイルではありません。これにより、マウントなどのプログラムが正しく機能するために必要な特別な機能を実行できます。
ループデバイスは、ブロックファイル呼び出しを特定のファイルに対する通常のファイルシステム呼び出しに変換する変換デバイスです。これを使用して、losetup
ファイルとしてサポートされている完全なループバックデバイス(通常の/dev/loopX
ブロックデバイスとしてマークされ処理されている)を作成するか、-o loop
マウントに渡してブロックデバイスを透過的に生成するように指示することもできます。また、これを使用losetup
してループバックを調べることもできます。デバイスデバイスと対応するコンテンツがサポートされています。
最新のインストールでは、通常のファイルを検出し、自動的にループバックデバイスを作成しようとします。だからあなたはしないでください。必要オプションを渡してくださいloop
。
また技術的にバインドマウントディレクトリが新しい場所に再マウントされる場所です(したがって2回マウントされます)。これはインストールするフラグを介して行うことができます--bind
。どういう意味なのかわかりますが、言葉が混乱することがあります。製本設置面で特別な意味があります。
編集する:あなたの精神モデルは実際には正確ですが、ループデバイスをファイルシステムやネイティブブロックの読み取り/書き込みについて何も知らなくても、ブロックデバイスであるかのようにマウントがすべてのファイルと通信できるようにする抽象化レイヤーと考えることができます。 - カーネルがこれらすべてを処理します。マウントで知っておくべきことは、カーネルにループデバイスを設定してからブロックデバイスとして処理するように要求する方法です。これにより、低レベルのコードがより簡単になり、ブロックデバイスと通信できるすべての項目がなくてもファイルと通信できます。加減。