Files
infix/doc/boot.md
T

3.2 KiB

Disk Layout

Infix runs from a block device (e.g. eMMC or virtio disk) with the following layout. The disk is expected to use the GPT partitioning scheme. Partitions marked with an asterisk are optional.

.-----------.
| GPT Table |
:-----------:
|    boot*  |
:-----------:
|    aux    |
:-----------:
|           |
|  primary  |
|           |
:-----------:
|           |
| secondary |
|           |
:-----------:
|    cfg    |
:-----------:
|           |
|    var*   |
|           |
'-----------'

boot - Bootloader

Parameter Value
Required No
Size 4 MiB
Format Raw binary, as dictated by the hardware

Optional partition containing the system's bootloader. May also reside in a separate storage device, e.g. a serial FLASH.

aux - Auxiliary Data

Parameter Value
Required Yes
Size 4 MiB
Format EXT4 filesystem

Holds information that is shared between Infix and its bootloader, such as image signatures required to validate the chain of trust, bootloader configuration etc.

Typical layout when using U-Boot bootloader:

/
├ primary.itbh
├ secondary.itbh
└ uboot.env

During boot, an ITB header along with the corresponding root filesystem image are concatenated in memory, by U-Boot, to form a valid FIT image that is used to verify its integrity and origin before any files are extracted from it.

Note that the bootloader's primary environment is bundled in the binary - uboot.env is only used to import a few settings that is required to configure the boot order.

primary/secondary - Infix Root Filesystem Images

Parameter Value
Required Yes
Size >= 256 MiB
Format Squash filesystem

The main Infix image - the rootfs.squashfs image in your images/ directory. Two copies exist so that an incomplete upgrade does not brick the system, and to allow fast rollbacks when upgrading to a new version.

cfg - Configuration Data

Parameter Value
Required Yes
Size >= 16 MiB
Format EXT4 filesystem

Non-volatile storage of the system configuration and user data. Concretely, user data is everything stored under /root and /home. Depending on the operating mode, the configuration is either the NETCONF databases from /cfg, or the contents of /etc when operating in native mode.

var - Variable Data

Parameter Value
Required No
Size >= 16 MiB
Format EXT4 filesystem

Persistent storage for everything under /var. This is maintained as a separate filesystem from the data in cfg, because while the system can funtion reasonably well without a persistent /var, loosing /cfg or /etc is much more difficult.

If var is not available, Infix will still persist /var/lib using cfg as the backing storage.