Skip to content

Unify HTTP and PXE boot flows to both use UKIs #315

@maxmoehl

Description

@maxmoehl

Currently, building images that support both boot flows requires four separate artifacts:

  • kernel
  • initramfs
  • rootfs
  • uki

However, the UKI is just a specific format of an executable EFI binary that contains the kernel, initramfs, rootfs which the PXE flow requires. Since our PXE flow relies on iPXE anyway, we could also use iPXE to just chain a second EFI binary which happens to be a UKI. The result would be that our images contain just a single UKI layer that can be used to boot via HTTP and (i)PXE.

Why not load the UKI directly via PXE? PXE uses TFTP which is slow and can be brittle, by only downloading the iPXE binary and a script that step stays quick and iPXE then uses HTTP to download the much larger UKI binary. We could also experiment with downloading the UKI via PXE directly, it might be reliable and fast enough to download a full UKI which usually sits at a few hundred megabytes.

What would you like to be added:

An iPXE scripts which downloads a single UKI that it chain-loads instead of downloading the artifacts separately and booting them.

/cc @damyan @hardikdr

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions