ISO 9660

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
Line 8: Line 8:
 
'''ISO 9660''' is a read-only [[filesystem]] often used on [[CD-ROM|CD-ROMs]]. It is also common to encounter files containing an [[ISO image|image]] of an ISO 9660 filesystem.
 
'''ISO 9660''' is a read-only [[filesystem]] often used on [[CD-ROM|CD-ROMs]]. It is also common to encounter files containing an [[ISO image|image]] of an ISO 9660 filesystem.
  
== Details ==
+
== Format details ==
The standard limits filenames to the DOS 8.3 style. Several extensions – [[TRANS.TBL]], [[Rock Ridge]], and [[Joliet]] were developed to remove this restriction.
+
The standard specifies a very limited filename format. At the strictest interchange level, it only allows DOS-style "8.3" names, uppercase only. At less strict levels, filenames can be up to 31 characters. Several extensions, mainly [[Rock Ridge]] and [[Joliet]], were developed to mitigate these limitations.
  
 
The filenames also have a VMS-style version number, so sometimes they are shown with a ";1" suffix.
 
The filenames also have a VMS-style version number, so sometimes they are shown with a ";1" suffix.
Line 19: Line 19:
  
 
The first 32768 bytes are not used. Be aware that hybrid filesystems are possible. Just because something is a valid ISO 9660 filesystem doesn't mean it can't also be a valid filesystem of some other type.
 
The first 32768 bytes are not used. Be aware that hybrid filesystems are possible. Just because something is a valid ISO 9660 filesystem doesn't mean it can't also be a valid filesystem of some other type.
 +
 +
== Extensions ==
 +
 +
=== SUSP ===
 +
Main article: [[System Use Sharing Protocol]]
 +
 +
=== Rock Ridge ===
 +
Main article: [[Rock Ridge]]
 +
 +
=== Joliet ===
 +
Main article: [[Joliet]]
 +
 +
=== TRANS.TBL ===
 +
Main article: [[TRANS.TBL]]
  
 
== See also ==
 
== See also ==
Line 33: Line 47:
 
* [[7-Zip]], [http://unix.stackexchange.com/questions/70738/what-is-the-fastest-way-to-extract-an-iso see here for an example]
 
* [[7-Zip]], [http://unix.stackexchange.com/questions/70738/what-is-the-fastest-way-to-extract-an-iso see here for an example]
 
* [http://linux.die.net/man/1/isoinfo isoinfo] can perform basic operations and some validation.
 
* [http://linux.die.net/man/1/isoinfo isoinfo] can perform basic operations and some validation.
 +
* [https://www.gnu.org/software/libcdio/ libcdio] (<code>iso-info</code>, <code>iso-read</code>, ...)
 
* Operating systems often include drivers for ISO 9660. On Linux, an ISO 9660 image file can be mounted using a loopback driver (<code>mount -t iso9660 -o loop ...</code>).
 
* Operating systems often include drivers for ISO 9660. On Linux, an ISO 9660 image file can be mounted using a loopback driver (<code>mount -t iso9660 -o loop ...</code>).
 
* [https://github.com/KBNLresearch/isolyzer isolyzer] is a tool that verifies if the file size of an ISO image is consistent with the information in its filesystem-level headers. This can be useful for detecting incomplete (e.g. truncated) ISO images. Apart from ISO 9660, isolyzer also supports UDF, HFS and HFS+, as well as hybrids of all of these filesystems.
 
* [https://github.com/KBNLresearch/isolyzer isolyzer] is a tool that verifies if the file size of an ISO image is consistent with the information in its filesystem-level headers. This can be useful for detecting incomplete (e.g. truncated) ISO images. Apart from ISO 9660, isolyzer also supports UDF, HFS and HFS+, as well as hybrids of all of these filesystems.
Line 41: Line 56:
  
 
== Links ==
 
== Links ==
* [[Wikipedia:ISO 9660|Wikipedia: ISO 9660]]
+
* [[Wikipedia: ISO 9660]]
* [[Wikipedia:TRANS.TBL|Wikipedia: TRANS.TBL]]
+
* [[Wikipedia:Rock Ridge|Wikipedia: Rock Ridge]]
+
* [[Wikipedia:Joliet_(file_system)|Wikipedia: Joliet]]
+

Revision as of 19:38, 29 January 2019

File Format
Name ISO 9660
Ontology
Extension(s) .iso, .cdr
MIME Type(s) application/x-iso9660-image
Kaitai Struct Spec iso_9660.ksy

ISO 9660 is a read-only filesystem often used on CD-ROMs. It is also common to encounter files containing an image of an ISO 9660 filesystem.

Contents

Format details

The standard specifies a very limited filename format. At the strictest interchange level, it only allows DOS-style "8.3" names, uppercase only. At less strict levels, filenames can be up to 31 characters. Several extensions, mainly Rock Ridge and Joliet, were developed to mitigate these limitations.

The filenames also have a VMS-style version number, so sometimes they are shown with a ";1" suffix.

The size of a file is limited to 4GB (2GB in some implementations). This is irrelevant with respect to CD-ROMs, because of their small capacity, but it is a reason to avoid using ISO 9660 on DVD-ROMs and other media. (An extension called "multiple extents" makes larger files possible, but support for it is limited.)

Identification

Usually, the ASCII string "CD001" appears at offset 32769.

The first 32768 bytes are not used. Be aware that hybrid filesystems are possible. Just because something is a valid ISO 9660 filesystem doesn't mean it can't also be a valid filesystem of some other type.

Extensions

SUSP

Main article: System Use Sharing Protocol

Rock Ridge

Main article: Rock Ridge

Joliet

Main article: Joliet

TRANS.TBL

Main article: TRANS.TBL

See also

Specifications

Software

Reading

  • 7-Zip, see here for an example
  • isoinfo can perform basic operations and some validation.
  • libcdio (iso-info, iso-read, ...)
  • Operating systems often include drivers for ISO 9660. On Linux, an ISO 9660 image file can be mounted using a loopback driver (mount -t iso9660 -o loop ...).
  • isolyzer is a tool that verifies if the file size of an ISO image is consistent with the information in its filesystem-level headers. This can be useful for detecting incomplete (e.g. truncated) ISO images. Apart from ISO 9660, isolyzer also supports UDF, HFS and HFS+, as well as hybrids of all of these filesystems.

Writing

  • cdrkit → genisoimage
  • Countless CD burning applications

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox