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

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

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

## 歴史

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文字以外の使用
- ファイル名に複数の“.”の使用
- ファイル名に“.”の非使用

- 8階層を超えるディレクトリ

- “;”およびバージョン番号の省略

- ファイル名に37文字までの使用

- (Joliet拡張)110文字までのファイル名の使用。

## 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 |  |