mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-02 05:43:02 +02:00
116 lines
3.2 KiB
Markdown
116 lines
3.2 KiB
Markdown
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.
|
|
|