Raspberry Pi Image Description Provisioning Map


The Provisioning Map (PMAP) defines how a Raspberry Pi image is provisioned on-device. It is an ordered sequence of entries describing partition assignments, slot mappings for A/B layouts, and optional LUKS2 encryption configuration. The PMAP is authored per-image and embedded in the IDP document by rpi-image-gen, or supplied manually for images built outside rpi-image-gen.

Type: array

A standalone PMAP document as a bare array of entries.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

A single PMAP entry.

Type: object

A PMAP entry that declares top-level attributes for the provisioning map, including format version and system type.

No Additional Properties

Type: object

The attributes object containing PMAP version and system type.

No Additional Properties

Type: string

The PMAP format version in semver format. Used by provisioning tools to determine how to parse this PMAP.

Must match regular expression: ^[0-9]+\.[0-9]+\.[0-9]+$

Type: enum (of string)

The partition layout type. 'flat' for a simple single-slot layout, 'slotted' for an A/B layout.

Must be one of:

  • "flat"
  • "slotted"
Type: object

A PMAP entry that defines a flat list of partition references.

No Additional Properties

Type: array

The list of partition references for this entry.

No Additional Items

Each item of this array must be:

Type: object

A reference to a partition image by name, with optional attributes.

No Additional Properties

Type: string

The name of the partition image as defined in the IDP partitionimages map.

Must be at least 1 characters long

Type: string

An optional human-readable comment describing this partition reference.

Type: object

Optional static attributes to fix partition properties such as UUID or role at provisioning time.

No Additional Properties

Type: string

A partition identifier string. Not currently used.


A UUID for this partition. For standard partitions, corresponds to the UUID of the matching partition image. For on-device created partitions such as LUKS containers, this UUID is used at partition creation allowing the partition to be identified with this UUID on device.

Type: object
Must match regular expression: ^[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$
Type: object
Must match regular expression: ^[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}$

Type: enum (of string)

The role of this partition on the device, used by the provisioning tool to apply role-specific handling.

Must be one of:

  • "boot"
  • "system"

Type: boolean Default: false

If true, the partition is expanded to fill the remaining available space on the device.

Type: object

A PMAP entry that defines a map for a slotted partition layout.

No Additional Properties

Type: object

The slot map for this entry.

No Additional Properties

Type: object

The A slot, containing a list of partitions and optional encryption configuration.

No Additional Properties

Type: array

The list of partition references assigned to this slot.

No Additional Items

Each item of this array must be:

Type: object

A reference to a partition image by name, with optional attributes.

Same definition as oneOf_i0_items_oneOf_i1_partitions_items

Type: object

Optional encryption configuration for this slot.

No Additional Properties

Type: object

The LUKS2 configuration for this encrypted container.

No Additional Properties

Type: enum (of integer)

The encryption key size in bits.

Must be one of:

  • 128
  • 256
  • 512

Type: string

The cipher and mode used for encryption, e.g. aes-xts-plain64.

Type: string

The hash algorithm used for metadata integrity, e.g. sha256.

Type: string

An optional human-readable label for the LUKS2 container.

Must be at most 36 characters long

Type: string

The UUID assigned to the LUKS2 container. Required so that the container can be identified and unlocked at runtime.

Must match regular expression: ^[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$

Type: string

The device mapper name for the LUKS2 container, used as the mapped device name under /dev/mapper.

Type: enum (of string)

The encrypted container type. 'raw' for a directly encrypted block device, 'partitioned' for a LUKS2 container that itself holds a partition table.

Must be one of:

  • "raw"
  • "partitioned"

Type: array

A flat list of partition references within this encrypted container.

No Additional Items

Each item of this array must be:

Type: object

A reference to a partition image by name, with optional attributes.

Same definition as oneOf_i0_items_oneOf_i1_partitions_items

Type: boolean Default: false

If true, the encrypted container is expanded to fill the remaining available space on the device.

Type: object

The B slot, containing a list of partitions and optional encryption configuration.

No Additional Properties

Type: array

The list of partition references assigned to this slot.

No Additional Items

Each item of this array must be:

Type: object

A reference to a partition image by name, with optional attributes.

Same definition as oneOf_i0_items_oneOf_i1_partitions_items

Type: object

Optional encryption configuration for this slot.

Same definition as encrypted
Type: object

A PMAP entry that defines an encrypted container.

No Additional Properties

Type: object

The encrypted container configuration for this entry.

No Additional Properties

Type: object

The following properties are required:

  • slots
Type: object

The following properties are required:

  • partitions

Type: object

The LUKS2 configuration for this encrypted container.

Same definition as luks2

Type: object

A slot map defining named A/B partition sets within this encrypted container.

Same definition as slots

Type: array

A flat list of partition references within this encrypted container.

No Additional Items

Each item of this array must be:

Type: object

A reference to a partition image by name, with optional attributes.

Same definition as oneOf_i0_items_oneOf_i1_partitions_items

Type: boolean Default: false

If true, the encrypted container is expanded to fill the remaining available space on the device.

Type: object

A PMAP document embedded within an IDP layout object.

Type: object

The IDP layout container.

Type: array

The provisioning map array embedded in the IDP layout.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

A single PMAP entry.

Same definition as oneOf_i0_items

Additional Properties of any type are allowed.

Type: object

Additional Properties of any type are allowed.

Type: object