2007年11月05日

UDF1.02 2-1 ボリューム認識列

ボリューム認識列 (Volume Recognition Sequence) は、 いくつかのボリューム構造記述子で構成され、 ボリュームのフォーマットの種類や そのボリュームからコンピュータを起動するための場所を示します。 ここは ISO9660 のボリューム記述子群に相当し、 各ボリューム構造記述子の先頭 7 バイトは、ISO9660 のボリューム記述子と同じ構造です。

ボリューム認識列は、そのボリュームの先頭から 32767 バイトより後の最初のセクタから始まり、 数セクタ続きます。 1セクタが 2048 バイトならば、16セクタ目から始まります。

記述子はセクタの先頭から記述し、セクタ内の余ったバイトは 0 で埋めます。

各ボリューム構造記述子は、次のようになっています。

Generic Volume Structure Descriptor format
BP大きさ名称内容
01unsigned charStructure Typeボリューム記述子の種類
1〜55char[5]Standard Identifier規格識別子
61unsigned charStructure Versionバージョン
7〜20472041-Structure Data記述子の内容


ECMA167 では、次の種類を使います。

Volume Structure Descriptor interpretation
規格識別子内容
"BEA01"拡張領域先頭記述子
"BOOT2"ブート記述子
"CD001"ISO9660 用
"CDW02" 
"NSR02"NSR記述子 ECMA-167/2
"NSR03"NSR記述子 ECMA-167/3
"TEA01"拡張領域終端記述子


読み取る際には、まず規格識別子を調べ、次にボリューム記述子の種類を読んで区別します。

記述子を記録する順序は、ISO9660 など CD-ROM 用のシステムがある場合、 それらを先に記録します。 ISO9660 では、最低 PVD + TD の2セクタ、 joliet を含む場合 PVD + SVD + TD の 3 セクタを使います。
その後、UDF のボリューム認識列を記述していきます。 先頭に BEA01 (拡張領域先頭記述子) を記録し、 中身である NSR02 や NSR03、BOOT2 を記録した後、 TEA01 (拡張領域終端記述子) を最後に記録して終わります。

よくある UDF Bridge DVD-ROM の一例を挙げておきます。
sectorStandard IdentifierStructure Type備考
16CD0011ISO9660 PVD
17CD0012joliet SVD
18CD001255ISO9660 TD
19BEA010拡張領域の先頭
20NSR020ECMA-167/2 が使われていることを示す
21TEA010拡張領域の終端


ディスクにアクセスする時は、 まず、このボリューム認識列を調べます。 そこに「CD001」があれば、ISO9660 (あるいは joliet) フォーマット、 「NSR02」か「NSR03」があれば、ECMA167 フォーマットのディスクと解釈して 読み取りを開始します。

posted by 七癖 at 10:13| Comment(0) | TrackBack(0) | ファイルシステム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック