Image-Based Operating Systems
Image-Based Operating Systems
NICo can install a disk image directly onto a host’s local boot disk. The operating-system definition controls how NICo selects that disk and how it identifies the root, boot, and EFI filesystems after imaging.
Image installation overwrites the complete selected disk.
Configuring the Target Disk
The Core API and nico-admin-cli call this field boot_disk; the REST API
calls it imageDisk. Set the value according to the following table:
An explicit device path is resolved before use. It must exist, be a block
device, and resolve to an lsblk type of disk; partitions and other block
device types are rejected.
The value is part of an operating-system definition, not a machine-specific
override. Prefer /dev/disk/by-id/ only when that identifier exists consistently
on every eligible target. Use smallest when the intended boot disk is reliably
the smallest local whole disk across the fleet.
Interface Behavior
The available configuration surfaces are:
For example, select the smallest disk when creating a Core OS image entry:
Or create a REST operating-system definition with a stable disk identifier:
boot_disk is not applicable when create_volume is enabled for a block
storage source volume. Do not combine --boot-disk with --create-volume.
Filesystem Identity Checks
NICo uses the configured filesystem identifiers to locate filesystems after the image is written:
rootfs_idorrootFsId: root filesystem UUIDrootfs_labelorrootFsLabel: root filesystem labelbootfs_id(--bootfs-id): optional/bootUUIDefifs_id(--efifs-id): optional EFI filesystem UUID
When an OS image is created through Core—for example, with
nico-admin-cli os-image create—--rootfs-id and --rootfs-label are
optional. If both are omitted, disk imaging uses the default root filesystem
label cloudimg-rootfs.
A REST API request that creates an image-based Operating System must
provide exactly one of rootFsId or rootFsLabel. The API rejects requests that
provide both fields or neither field.
Before overwriting the target, NICo checks these UUIDs and labels against the other physical disks. It cancels the operation if a configured identifier already resolves to a filesystem on another disk. This prevents an old or duplicate filesystem identity from silently redirecting the installation away from the selected target.
After imaging, every configured identifier must resolve to exactly one device, and that device must belong exclusively to the selected disk. Missing, duplicate, or cross-disk matches fail the installation.
EFI Boot Entry Selection
For UEFI systems, NICo selects the architecture-specific shim:
shimx64.efion x86-64shimaa64.efion Arm64
When a distribution name is known, NICo prefers a matching distribution
directory. It then looks for the architecture-specific BOOTX64.CSV or
BOOTAA64.CSV, followed by BOOT.CSV. NICo accepts a CSV entry only when its
first field names the selected shim and its label is nonempty. Without a
distribution match, NICo uses the first valid shim/CSV pair and then a
deterministically sorted shim as the final fallback.
NICo removes existing firmware entries with the selected label before creating the new entry. If NICo cannot inspect, remove, or create the entry, disk imaging fails.
Troubleshooting
Inspect the host’s disk-imaging journal when provisioning fails:
Common causes include:
Because the selected disk is overwritten, resolve selection or identifier ambiguity in a non-production environment before retrying on a machine that contains data that must be preserved.