Preseed default PXELinux provisioning template does not boot Ubuntu 20.04

Problem:
When booting the Ubuntu 20.04 installer, the bellow error appears:


“Booting kernel failed: Invalid argument”

Expected outcome:
The system boots

I have tested using an extremely minimal PXELinux menu. Even with no arguments, the same error appears. I have verified that the initrd and kernel files exist.

What further testing should I do?

The issue appeared to be with the OS install media.

The kernel and initrd does not exist in the TFTP folder, below is what is present in their place.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
1 Like

Known bug, Ubuntu no longer ships kernel(initramdisk) in their repos. They confirmed to fix this in the future release, it will be the new installer tho so some changes in Foreman will be required.

Do you know of a (possibly manual) workaround (preferably for Ubuntu 22.04 LTS) ?

Yes, one can extract the casper initrd and vmlinuz boot files and hardcode them into a PXELinux template. It’s a bit annoying but possible.

1 Like

I can confirm, we can probably make this easier and better documented, but that’s all we can do about this in the current Foreman design.

So as far as I can see this is “fixed” in the sense that Ubuntu is now publishing “linux” and “initrd.gz” in the netboot images. See: Index of /ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/ubuntu-installer/amd64

Is is now broken in Foreman 3.3.0 with this Fix: Fixes #34565 - fix installation media for Ubuntu versions with autoin… · theforeman/foreman@a1a5664 · GitHub

For myself, I manually reverted that fix and got the installer booting 20.04.

They no longer publish it for the latest versions tho. So what works for you is temporary I assume :frowning:

Does anyone have the steps for extracting initrd, kernel for this handy?