Introduction
An .iso file is a copy of an optical disc, a CD, DVD or Blu-ray, stored
sector by sector in one file. It is named after ISO 9660, the standard file system of
CD-ROMs. ISO files are how operating systems and large software are usually
distributed: they can be burned to a disc, written to a USB stick, mounted as a drive or
started in a virtual machine.
Despite the name, the file system inside is not always ISO 9660. DVD and Blu-ray images usually use UDF, and many images carry both so that any system can read them.
Structure
The image is a run of 2048-byte sectors, the data area of each sector on the disc. The first 16 sectors, 32 KB, are a system area that ISO 9660 leaves free. Bootable images use it for a boot record, and hybrid images that also boot from USB put a hard disk partition table there.
From sector 16, at offset 0x8000, comes a set of volume descriptors, one
per sector. Each starts with a type byte, the identifier CD001 and a version
byte. The primary volume descriptor, type 1, gives the volume name, the size of the
volume and the location of the root directory. A supplementary descriptor, type 2, adds
Joliet long Unicode names. A boot record, type 0, points to the El Torito boot catalogue.
A terminator, type 255, ends the set. Directories and files follow, each file stored as
one run of whole sectors.
0x0System area 16 sectors left free for boot code32,768 bytes0x8000Volume descriptors one per sector, eachCD0012,048 bytes each0x8000Primary volume descriptor type 1: name, size, root directory2,048 bytes…Boot record, Joliet descriptor, then the terminator2,048 bytes each
…Path tables, directories and file datavaries
Links
Software
- Windows File Explorer, which mounts ISO files as a drive (Windows 8 and later)
- macOS Finder and Disk Utility, which mount ISO files
- 7-Zip, which opens ISO files like an archive (Windows)
- Rufus, which writes ISO files to USB drives (Windows)
- balenaEtcher, which writes ISO files to USB drives (Windows, macOS, Linux)
- ImgBurn, which burns and creates ISO files (Windows)
- VirtualBox, which boots virtual machines from ISO files (Windows, macOS, Linux)
- xorriso, which creates and edits ISO files (Linux, macOS)
Developers
- libarchive, C library that reads and writes ISO 9660 images
- pycdlib, Python library that reads and writes ISO 9660 images
Reference
- ECMA-119, the freely available text of ISO 9660