Skip to content

RTFM · Bootstrap

Build bootable disk images

saphira-image builds bootable Saphira disk images from a declarative profile. It is in development and testing now, with a BIOS-first milestone: the format already reserves room for EFI.

Saphira Linux dragon mascot

Bake hosts, not just packages

The same repository that builds Saphira packages now assembles bootable hosts. saphira-image, part of the saphira-install-tools suite, takes a profile stating top-level intentions and produces a partitioned, bootable disk image: the Egg-hatches story made concrete.

Bake an image
saphira-image build --profile virtualisation-host --output saphira-host.raw

Profiles state intentions only, never resolved dependencies: the profile names the role, the assembler resolves the rest. Sibling tools share the work: saphira-install, saphira-assemble-rootfs, saphira-bootstrap, saphira-chroot and saphira-genfstab, each with its own man page.

A layout with room to grow

The output is a GPT-partitioned raw disk: a 1 MiB bios-boot partition for GRUB i386-pc beside an ext4 root, filled by saphira-install through a shared assembler. GRUB is installed from inside the target, so core.img and its modules always come from the same grub package rather than whichever GRUB the build host happens to carry.

Images ending in .qcow2 are converted through qemu-img; anything else stays raw.

EFI is reserved from day one: a later ESP slots beside bios-boot and root with no re-layout. BIOS-only is the first milestone, not the format.

Profiles state intentions

The first profile is virtualisation-host: a machine whose job is running other machines. It names its top level outright:

  • saphira-base and saphira-kernel: the system and its kernel.
  • systemd: the host init; this profile builds a Saphira-d style host.
  • saphira-virtualisation and saphira-network-host: the virtualisation stack and host networking.
  • openssh: reachable from first boot.
  • grub: the bootloader is explicit, because a bootable host carries it, including for later kernel upgrades.

The host it builds first

The virtualisation-host profile produces a full virtualisation host: libvirt with its modular daemons and SPICE for console access, managed over SSH. As always with Saphira there is no graphical UX on the host itself: it is a text-based distribution, and the virtual machines are the point.

Did we miss something?

If this page left something unanswered, found an error, or there is another subject you would like documented, tell us. Saphira’s documentation grows from real problems people need to solve.

Send feedback or request a new section →

Prefer not to do it yourself?

Everything needed to do the work yourself is documented here and remains free; we charge for human time, not for withholding knowledge. Sometimes the missing resource is simply time. The same people who build Saphira can provide paid professional help with implementation, migration, troubleshooting and administration.

Ask about professional support →