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.