---
parent: Development
nav_order: 1
---
# ISO-embedded Ignition configuration
CoreOS ISO images are typically used for live-booting machines directly from a read-only storage device (e.g. a CD-ROM or USB stick) on non-cloud platforms.
First-boot provisioning via Ignition in such environments is difficult, as there are no well-defined metadata endpoints, there may not be any hypervisor back-channels or writable disks, and manual entry of an Ignition URL on the kernel command line is not ergonomic.
For such reasons `coreos-installer` supports a special mode for ISO images, where an Ignition configuration file can be embedded as a user customization into a pristine image.
The resulting image can be then used to boot a live system which is provisioned with the given Ignition configuration.
## Technical details
The ISO-embedding mechanism works by modifying some raw data directly on the image.
The technical specifications are described below to help third-party logic.
CoreOS ISO images come with some reserved empty space, the "embed area", which can be used to inject the Ignition configuration.
The embed area is a block of padding stored at `/images/ignition.img` in the ISO image.
The bootloader is configured to load this file as an additional initrd image.
The embed area is zeroed by default, meaning that the image is a pristine one without any user customization.
User customization is performed by parsing the ISO9660 filesystem to determine the offset and length of the embed area file, and writing an xz-compressed `newc` cpio archive (i.e. the equivalent of a `.cpio.xz` file) directly into it.
Such an archive may contain a regular file named `config.ign`, which can hold any custom Ignition configuration.
This archive is then detected and unpacked in the initrd for Ignition consumption.