Re: [PATCH installer] assistant: add support for splitting ISO into (i)PXE-compatible files

Hannes Duerr
2026-02-16T16:23:06Z

Hi thanks for tackling this!
Tested the patch with tftp and tftp+http chain loading(which requires
small changes to the generated boot.ipxe), works smooth.

1. Noticed that when you don't pass any option to `--pxe` it always
assumes the next argument as input for the flag, even if the next
argument is clearly a flag it self.
This is not a big issue as long as there is not another flag with the
same behaviour which could be combined with `--pxe` but still a bit
annoying as you have to position the flag at the end of the command.
I assume this has to be fixed in our pico args handling and is not
really related to this patch. Still wanted to mention it here.

2. While testing i noticed that the VM which should be booted with ipxe
has to have atleast 6GB RAM, 4GB is not sufficient.
Already discussed this with @Chris and the assumption is that `ISO(1.7
GiB) + unpacked initramfs + unpacked installer live system` which has to
be loaded into RAM exceeds 4GB in size.
This limitation is not catastrophic, but it is certainly annoying,
especially because in environments where installation is fully
automated, the VMs can often be smaller (e.g., anything-a-a-S related
stuff).

We came up with the following two workarounds:
a) In addition to our ISO, offer another net-boot ISO that contains
almost no system packages, making it significantly smaller.
b) Remove the live installer part from the ISO when --pxe is used. This
would mean that you could then only install automatically and no longer
with TUI or GUI.

Both approaches definitely mean more effort.

Does anyone else have a good idea for a workaround?

Also one small nit inline.

On 2/4/26 1:10 PM, Christoph Heiss wrote:
[...]
> @@ -291,6 +331,7 @@ OPTIONS:
> --output <OUTPUT>
> Path to store the final ISO to, defaults to an auto-generated file name depending on mode
> and the same directory as the source file is located in.
> + If '--pxe' is specified, the path must be a directory.
>
> --fetch-from <FETCH_FROM>
> Where the automatic installer should fetch the answer file from.
> @@ -323,6 +364,15 @@ OPTIONS:
>
> Must be appropriately enabled in the answer file.
>
> + --pxe [<TYPE>]
> + Instead of producing an ISO file, generate a 'initrd.img' and 'vmlinuz' file for use with
> + (i)PXE servers. The '--output' option must point to a directory to place these files in.
> +
> + <TYPE> is optional. Possible value are 'syslinux', 'ipxe'. If <TYPE> is specified, a
syslinux should be removed since it is not yet supported.
> + configuration file is produced for the specified loader.
> +
> + [default: off]
> +
> -h, --help Print this help
> -V, --version Print version