取り付けの概念を理解するのが難しい


13

両方を読んだことLinuxにデバイスをマウントするとはどういう意味ですか?OSの概念として「マウント」理解すると、次のように記載されている問題があります。

アクセス可能なすべてのストレージには、この単一のディレクトリツリー内の関連付けられた場所が必要です。これは(ファイルパスの最も一般的な構文で)ストレージコンポーネント(ドライブ)ごとに1つのディレクトリツリーがあるWindowsとは異なります。マウントとは、ストレージデバイスをディレクトリツリーの特定の場所に関連付けることです。

ただし、/ dev / cdromの下にあるcdromドライブなどのアクセス可能な場所は、すでにディレクトリ階層にあります。では、なぜ/ media / cdromの下に別の「マウントポイント」を作成する必要があるのでしょうか。/ dev / cdromから直接アクセスできないのはなぜですか?デバイスノードファイルは普通のファイルと同じだと聞きました。そして、それらへの読み書きは普通のファイルとまったく同じです。これは、/ dev / cdromからアクセスすると、cdromのファイルシステムが利用できないことを意味します。そして、ファイルシステム階層(cdrom内)は、「マウント」すると「生き生き」しますか?

回答:


11

/ dev / cdromの読み取りまたは書き込みは(たとえば、ddまたはを使用してcat)行うことができますが、その場合、デバイスのrawバイトの読み取りまたは書き込みのみを行います。これはさまざまな状況(パーティションのクローン作成など)で役立ちますが、通常は、デバイスに保存されているディレクトリとファイルを確認する必要があります。

デバイスをマウントすると、基本的には、カーネルにソフトウェアの層(ファイルシステムドライバー)を使用してそれらの生のバイトを実際のファイルシステムに変換するように指示します。したがって、デバイスをマウントすると、そのデバイス上のファイルシステムがディレクトリ階層に関連付けられます。


8

これについては、次のように考えmountます。一部のファイルの内容をディレクトリツリーとして解釈するようシステムに指示するツールです。

  • ファイルシステムにはディレクトリとファイルがあり、各ファイルはバイト文字列のラベルです。
  • /dev/cdrom ファイルであり、CDに保存されているバイトの文字列を表します。
  • この非常に長い文字列を直接読み取ることができますが、これは特別な目的(フルディスクイメージの作成など)を除き、あまり実用的ではありません。
  • この長い文字列には追加の内部構造があります。ファイルシステムが含まれており、このディレクトリには、どのディレクトリとファイルが保存され、この非常に長い文字列のどこにあるかに関する情報があります。
  • を使用しmount -t iso9660 /dev/cdrom /media/cdromて、システムに次のように指示します。「この非常に長いバイトの文字列を取得/dev/cdromし、iso9660形式のディレクトリツリーとして解釈し、その場所でアクセスできるようにします/media/cdrom」。
  • 実際、これは通常のファイルでも機能します。ディスクイメージを含む通常のファイルを作成し、それを使用mountしてアクセスできます。これを試して:
dd if = / dev / zero of = fs-image bs = 1M count = 50
mke2fs fs-image
sudo mount fs-image / some / mount / point

(最初の2つのコマンドは、イメージファイルを準備するときに初めて必要になります。)


なぜ必要なのmke2fsですか?
ADTC

画像ファイル内に空のext2ファイルシステムを作成します。空のファイルシステムはすべてゼロではありません-空のWordまたはLibreOfficeドキュメントがゼロ以外のサイズを持ち、デフォルトのフォントやページのサイズなどの情報を含むように、メタデータと固定構造があります。
クシシュトフコシスキ

ああ、それは潜在的に破壊的な行動です。このコマンドは初回の初期化のみに使用することをお勧めします。:)
ADTC

5

/dev/cdromデバイスファイルを指します。これは、光学ドライブに挿入したいディスクの内容ではなく、それを示すために呼び出すことができるハードウェア(およびおそらくソフトウェアドライバー)の一部への参照です。あなたはときにmount /dev/cdrom、あなたのツリー内のいくつかのパスに、あなたはその添付内容を自分のにファイルシステム

事は-私はそれを行う別の方法を本当に考えることはできません。Windowsでさえ- それほど明白ではありませんが -のファイルシステム抽象化がまだあります\\?\volumename\。それがどのように見えたかを思い出すのに1分かかりました、そして私はこれがグーグルであるとわかりまし

...ボリューム名は、通常の形式の実際のボリュームデバイスを指すシンボリックリンクです\Device\HarddiskVolume23。ドライブ文字であるMS-DOSデバイスの別の例があります。ボリュームのドライブ文字がC:の場合\\?\C\Device\HarddiskVolumeXX形式の実際のボリュームを指す:というシンボリックリンクがあります。

そして、多分それはそれほど違いはありません-私はそれほど複雑ではないと主張するでしょうが-それはただ明白であると思います。それらは同一のシステムではありませんが、根本的に異なるわけでもありません。

おそらく最も重要な違いの間/dev/device/path/to/its/mount後者のパス、ファイル・システムであることである-ソフトウェアのいくつかのビットは、組織的な方法でデータを処理することを目的とは-かつての内容を解釈しています。ディスクを読むことはできません-誰かがあなたにそれを読まなければなりません。ファイルシステムはデバイスの内容を解釈します。


これはやや誤解を招く恐れがあります。/dev/cdrom16進エディタで開くと、実際にはCD-ROMの未加工の内容が含まれています。使用mountすることにより、OSにこれらのコンテンツをディレクトリツリーとして解釈するように指示するだけです。
クシシュトフコシスキ

0

上記の項目に加えて、ドライバーまたは他のプログラムはデバイスからのデータをキャッシュできます。ハードディスクやサムドライブなどの読み取り/書き込みデバイスでは、デバイスに書き込まれたデータがまだ書き込まれていない場合があります。ジャーナリングファイルシステムでは、デバイスが表示されなくなる前にジャーナルをフラッシュする必要があります。次に、他のファイルシステム(cryptfsなど)をオーバーレイするファイルシステムがあります。これらのファイルシステムは、基になるファイルシステムが使用できなくなったときを知る必要があります。

確かに、読み取り専用デバイスの場合、これはあまり意味がありませんが、それでも適用されます。

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