web-dev-qa-db-ja.com

ISOイメージファイルはそれ自体がファイルシステムですか?

xxx.isoファイルとブロックデバイスの他の側面との関係を理解し​​ようとしています。パーティションとファイルシステム。

「ISOのマウント」として.isoへのアクセスまたは使用を説明することはよくあります。

つまり、別の言い方をすると、私またはソフトウェアの一部がxxx.isoファイルをUSBデバイスに「マウント」したい場合、既存のパーティションにファイルシステム(例:FAT xまたはext [〜#〜] x [〜#〜])または.isoファイル-一度「マウントされた」状態-下位レベルファイルシステム(またはパーティション)と同じまたは同様の役割を実行する構成体?

45
the_velour_fog

ISOファイルis n'tファイルシステム。 含むファイルシステム。使用の観点から見ると、これはハードディスク、USBデバイス、DVDと同じように機能します。マウントポイント、つまりコンテンツを取得するためにマウントできるファイルシステム内の場所が必要です。

64
Jenny D

ここには3つの異なる概念があります。

  • ブロックデバイス。これは、一連の同じサイズのデータ​​ブロックを表す物理デバイスまたは仮想デバイスです。 HDDはブロックデバイスです。データCDも同様です。
  • filesystemは、一連のファイルとディレクトリ、およびその他のファイルシステム情報を表すブロックデバイスにデータを格納する方法を定義します。 ISO9660と同様に、ext3はファイルシステムです。
  • イメージファイルは、(別のファイルシステム上の)ファイル形式のブロックデバイス上のデータのコピーです。画像ファイルには任意の拡張子を付けることができます。 .imgが一般的です。

.isoファイルは、通常ISO9660ファイルシステムを含むブロックデバイスイメージファイルです。 CDに保存されているデータの正確な表現が含まれています。同様に、イメージファイルブロックデバイスを含む.imgファイル(必要に応じて.ext3と呼びます)を含めることができます- ext3ファイルシステム。これは、起動可能なUSBまたはフロッピーイメージを配布する一般的な方法です。名前は任意です。.isoは、ISO9660ファイルシステム(または、より最新のUDFファイルシステム)を含む画像ファイルと呼ばれるものです。

イメージファイルはブロックデバイスではなく、ブロックデバイス内のデータのコピーであるため、直接マウントすることはできません。ただし、Linuxおよび他のOSには、イメージファイルにブロックデバイスとしてアクセスできるようにするloop devicesという機能があります。 ISOファイルをマウントするには、最初に、ISOファイルと同じ内容の仮想ブロックデバイスを表すループデバイスを作成します。次に、物理CDと同じようにマウントするか、ext3ファイルシステムを含むUSBドライブなどをマウントします。 mountコマンドはこれを自動的に実行しますが、内部的には個別のステップです。

パーティションは、ブロックデバイスを複数の小さな論理ブロックデバイスに分割する方法です。パーティションはオプションです。 CDは、この点でパーティション化されていないUSBドライブまたはフロッピーディスクに似ています。CDは、ファイルシステムがパーティションテーブルなしでデバイス全体に格納されているものです。したがって、ISOファイルにはパーティションテーブルが含まれていません。しかし、HDDパーティションにISO9660ファイルシステムを作成することを妨げるものは何もありません。 doにパーティションがある場合、イメージファイルは単一のパーティションまたはパーティションテーブルを含む物理デバイス全体の可能性がありますが、CDはパーティション化されていないため、ISOイメージとは区別されません。

含まれているファイルにアクセスするために、デバイス(またはイメージファイル)をマウントするhaveは行いません。一部のアプリケーションとライブラリには、オペレーティングシステムを介さずにデータに直接アクセスする機能があります。彼らは単にファイルシステムを直接理解し、ファイルシステム内のファイルにアクセスしたときのOSの動作を模倣するコードを持っています。これが、実際にOS経由でISOファイルをマウントせずにISOファイルの内容を表示できるツールが存在する理由です。マウントはオペレーティングシステムの概念ですが、ブロックデバイス上のデータにアクセスする唯一の方法ではありません。一部の人々は、この「マウント」をある方法で行うという単なる行動を考えるかもしれません。

デバイス(またはループバックデバイスを介したISOファイル)を何にマウントするかは関係ありません。これは、パス階層の中でOSにデバイスのコンテンツを表示するように要求する場所です。 Linuxでは、通常、すでにマウントされているファイルシステム上のディレクトリを選択します。しかし、CDからブートしてカーネルにルートファイルシステムとしてマウントするように要求することを妨げるものは何もありません。もちろん、ISOファイルはまあまあのファイルなので、そもそもファイルシステムに存在しているはずです。ISOにアクセスするには、どこかにマウントしておく必要があります。

42
marcan

いいえ、ISOイメージファイル自体はファイルシステムではありません。パーティションのようにcontainファイルシステムですが、ファイルシステムではありませんが、ISOイメージファイルにはファイルシステムが含まれていますが、ファイルシステムではありません。

ただし、次の2つのためのファイルシステムが必要です。

  • .isoファイルを保存する場所(光沢のあるシルバーディスクでない場合)
  • マウントするディレクトリ。 /mnt/isotmp

その後、パスが/mnt/isotmpの下の何かに解決されると、ISOイメージファイルシステムのコードが解決、オープンなどを行います。

11
Anthon