マウントするとき、ループデバイスはいつ使用する必要がありますか?


18

次の質問によると:
マウント時の「ループデバイス」とは何ですか?
ループデバイスは、ブロックベースのデバイスとして機能するファイルです。概念的には理解できますが、これは他のファイルのマウントとどう違うのですか?たとえば、ext2ファイルシステムのddイメージを取得してマウントする場合、ループオプションを使用する必要はありませんmount -t ext2 file.dd /mnt/mount-point。成功します。

ループオプションを使用するタイミングと、ループオプションを使用したマウントとループオプションを使用しないマウントの違いは何ですか?

回答:


8

通常のファイルをマウントするためにループオプションを使用する必要がない場合、これはこれmountを検出して自動的にアクティブにするためです。以前は手動で指定する必要がありました。


私はまだしています。マウントが暗黙的にこれを行うことができることに気づいたことはありません。
バナンイン

@ user1129682カーネルの異なるバージョンまたは異なるディストリビューションがこの機能を持っているか持っていないのだろうか?
スチピ

22

技術的には、ループデバイスは、ハードウェアではなく、ファイルに書き込むブロックデバイスです。そのため、ファイルをマウントするときは常にループバックデバイスを使用する必要があります。

直接の答えはこれで終わりです。たぶんこれは説明として役立つ:

カーネルは、さまざまなハードウェアを同じ方法で処理できるように、抽象化のいくつかの層を実装します。コントローラーのブランドごとにext2ドライバーを再構築しなければならないと想像してください。誰もそれを望んでいませんが、すべてのハードディスクを同じように扱いたいです。それが抽象化レイヤーを作成する理由です。

ブロックデバイスはそのような抽象化です。ブロックデバイスには特定の属性があり、他のソフトウェアで使用できる特定の機能を公開します。ATA HDD、SCSI HDD、テープドライブのどれでも構いません。常にまったく同じ構造と機能を使用して対話します。その場合、ブロックデバイスがアクセスされたときに正しいことを行うのは、カーネルのタスクであり、その抽象化レイヤーのより明示的なものです。ブロックデバイスインターフェイスの場合の正しいことは、正しいデバイスドライバーとの間で呼び出しとデータをやり取りすることです。そのデバイスドライバーは、たとえばSCSIサブシステムまたはループデバイスのドライバーです。

ループデバイスドライバーは、関連付けられたブロックデバイスの操作をファイル(システム)操作に変換します。これが、データ/パーティションがファイルになる方法です。

私はおそらく、使用されている用語と関連する抽象化レイヤーの名前と数がひどく間違っているでしょう。基本的な概念をスケッチしたかったので、ループデバイスは何かをするファイルではなく、ファイルを使用するものであることが明らかになります。ファイルは、実行に使用されるものと何も変わりません。

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