# ISO 9660

| ISO 9660 |
| --- |
| 導入 |
1988年 () |
| 構造 |
| ディレクトリ |
テーブル |
| 領域管理 |
エクステント |
| 限度 |
| 最大ファイル サイズ |
4GiB（シングルエクステント） 8TiB（マルチエクステント） |
| 最大ファイル名長 |
8.3形式 (Level 1) 31文字 (Level 2/3) 207文字 (9660:1999) |
| ファイル名の文字 |
d1文字（[A-Z]、[0-9]、“\_”、“.”） |
| 特徴 |
| タイムスタンプ |
作成、更新、失効、発効 |
| 日付範囲 |
1900年1月1日 - 2155年12月31日 |
| 日付分解能 |
1秒 |
| フォーク |
可能 |
| 属性 |
可視、読み取り、実行、保護 |
| パーミッション |
POSIX |
| 透過的圧縮 |
なし |
| 透過的暗号化 |
なし |
| 重複排除 |
可能 |

**ISO 9660:1988**は、1988年にISOで標準化されたCD-ROMのファイルシステムである。Ecma Internationalの**ECMA-119**に対応する。JISでは**JIS X 0606**に対応する。ISO 9660に準拠することで、様々なオペレーティングシステム (OS) で同じCD-ROMを読み込むことができる。

ファイル名に制限が多かったため、後に様々な拡張フォーマットが登場した。

もともとはCD-ROM用であるが、DVDやBDでも用いられることがある。

## 歴史

→詳細は「w:ISO 9660 § History」を参照
1985年にAppleやマイクロソフト、ディジタル・イクイップメント・コーポレーション、3M、日立製作所などによって提案された「ハイシエラフォーマット」(High Sierra Format, HSF) が元になっている。

## 水準

ファイル名やディレクトリ名に使える文字は数字、英大文字、“\_”（アンダースコア）の37種類（規格ではこの文字群を d文字 または d1文字 と呼ぶ）

* ファイル名は以下の規則を持つ。
	+ 「0文字以上 + “.” + 0文字以上 + “;” + 1から32767までのバージョン番号」で表される
	+ 「0文字以上 + “.” + 0文字以上」は合わせて31文字まで
	+ “.”の前後どちらかは1文字以上なければならない
* ディレクトリ名は31文字まで
* ディレクトリは8階層まで
* 「ファイル名の文字数 + そのファイルに関連するルートディレクトリまでの各親ディレクトリ名の文字数の総和 + 同親ディレクトリの数（ディレクトリ区切り）」は255まで

制限の厳しいシステムとのやり取りの為3つのレベルが規定され、上記に加えて制限がかかる。

* ISO 9660 Level 1:
	+ ファイル名は「8文字以下 + “.” + 3文字以下 + “;” + 1から32767までのバージョン番号」まで
	+ ディレクトリ名は8文字まで
	+ ファイルデータは単一のエクステントしか持てない
* ISO 9660 Level 2:
	+ ファイルデータは単一のエクステントしか持てない
* ISO 9660 Level 3:
	+ 追加の制約は課さない

## ISO 9660:1988/Amd.1:2013

**ISO 9660:1988/Amd.1:2013**は、ISO 9660規格の最新の追補である。JISでは、ISOより先にJIS X 0606:1998として取り入れられている。

次のような特徴がある。

* ファイル名、ディレクトリ名は207文字まで
* 拡張子の必要性が無い（ファイル名に “.” を含める必要が無い）
* バージョン番号の必要性が無い
* 8階層までというディレクトリの階層の制限を取り払って無制限になった

また、Joliet拡張（後述）と本規格の差異に関する情報がAnnex B.2に追加されている。

## 拡張規格

### El Torito

**El Torito**は、1995年にIBMとフェニックス・テクノロジーズが提唱した規格である。CD-ROM上からのブートがサポートされている。

El Toritoの名は、日本でもつくば市・東京都などで展開しているココス系列のメキシカンレストランエルトリートから取られている。

### Rock Ridge

**Rock Ridge**（ロックリッジ）は、IEEEによって**IEEE P1282**として制定されたISO 9660の拡張規格である。おもにUnix系OSで利用される。

次の機能をサポートしている。

* UNIX式のアクセス権の設定（ISO 9660でも拡張属性レコードにPOSIXパーミッションがあるが、レコードは列挙に対し非効率的に配置される）
* シンボリックリンク
* デバイスファイル
* 大文字・小文字の区別
* 最大255文字のファイル名
* 8階層（ISO 9660の仕様）を超えるディレクトリの作成（ISO 9660上ではルート直下にRR\_MOVEDまたは.rr\_movedディレクトリとして配置される）

ISO 9660と上位互換であり、Rock Ridgeを利用できないシステムでもISO 9660 Level 1として読み込めるようになっている。

### Joliet

**Joliet**（ジョリエット）は、マイクロソフトが設計したISO 9660の拡張規格である。

次の機能をサポートしている。

* UCS-2の利用
* 最大64文字までのファイル名
* 8階層（ISO 9660の仕様）を超えるディレクトリの作成

ISO 9660と上位互換であり、Jolietを利用できないシステムでもISO 9660 Level 1として読み込めるようになっている。Windows 95から現在に至るまでのWindowsやその他のOSでもサポートされている。UCS-2の利用により、仮名や漢字、アラビア文字なども使用することができる。

### Apple ISO 9660 Extensions

Apple ISO 9660 Extensionsは、AppleがISO 9660を拡張するために設計されたいくつかの規格である。CD-ROM上でのHFS (HFS+) を利用出来るように設計されてあるものもあり、HFSのメリットを利用することができる。

ほぼClassic Mac OSおよびmacOS専用の拡張規格であり、利用できないシステムではISO 9660 Level 2として読み込めるようになっている。

### Romeo

**Romeo**は、アダプテックが設計したISO 9660の拡張規格である。

次の機能をサポートしている。

* 最大128文字までのファイル名

ISO 9660のディスクフォーマットを拡張しており、ISO 9660との互換性は無い。

### 規格の逸脱

他の拡張規格のように規格化されたものではないが、多くのOSの実装において多少の規格違反は許容されており、それを逆手に取った意図的な規格違反をすることでISO 9660の厳しい制限を回避することができる。しかし互換性は下がることになる。

以下のようなものが存在する。

* ファイル名にd1文字以外の使用
* ファイル名に複数の“.”の使用
* ファイル名に“.”の非使用

9660:1999では規格合致。
* 8階層を超えるディレクトリ

9660:1999では規格合致。
* “;”およびバージョン番号の省略

9660:1999では規格合致。多くのOSでは“;”とバージョン番号はユーザーから見えないようになっているが、それらを隠してくれない環境では有用となる。
* ファイル名に37文字までの使用

“;”とバージョン番号用の領域をファイル名に使用する。必然的にバージョン番号は省略される。
* （Joliet拡張）110文字までのファイル名の使用。

ディスクフォーマット上はファイル名に使用できる領域は64文字分より大きく確保可能である。
## OSのISO 9660サポート

|  | ISO 9660 Level 1 | ISO 9660 Level 2 | ISO 9660 Level 3 | ISO/IEC 9660:1999 | Joliet | Rock Ridge | Apple ISO 9660 Extensions | Romeo | 備考 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| MS-DOS | Yes | No | No | No | No | No | No | No | MSCDEX.EXE (Microsoft CD-ROM Extension) というプログラムを組み込むことで、ISO 9660フォーマットのCD-ROMを認識することができる。 |
| Windows 95, 98, Me | Yes | Yes | Yes | No | Yes | No | No | Yes |  |
| Windows NT 3.51 | Yes | Yes | Yes | No | No | No | No | Yes |  |
| Windows NT 4.0, 2000 | Yes | Yes | Yes | No | Yes | No | No | Yes |  |
| Windows XPおよびそれ以降 | Yes | Yes | Yes | Yes | Yes | No | No | Yes |  |
| LinuxおよびBSD系OS | Yes | Yes | Yes | Yes | Yes | Yes | No | No |  |
| Mac OS 7〜9 | Yes | Yes | No | No | No | No | Yes | No |  |
| macOS | Yes | Yes | No | No | Yes | Yes | Yes | No |  |

* ユニバーサルディスクフォーマット
* ディスクドライブ仮想化ソフト
* ISOイメージ

* Joliet Specification（Jolietの仕様）
* Information technology - Volume and file structure of CD-ROM for information interchange（ISO/IEC 9660:1999の仕様）