Booting Linux VM using PXE in Proxmox

perfust

New Member
Dec 6, 2024
5
0
1
Vienna
Hi!
I am trying to create Terraform/Ansible/Cloud-init Hybrid for creating Openshift and OKD clusters on Proxmox. Since CoreOS doesn't support cloudinit, but rather ignition there are only a couple of options available. Netboot being the "simpler" one.
So I have followed a bunch of different approaches regarding this topic and I think that the general idea is to have DHCP Server + TFTP Server for booting + http server for ignition. Mostly I am trying to do a version of this guys setup[1]. I've setup all of that and still cannot boot neither RHCOS nor FCOS using pxe.
I have trying using different Linux Distros (CentOS 8/9, Alma 8/9, RHEL 8/9, Debian12, Ubuntu 22/24) as TFTP but they all provide the same result:

Failed to load ldlinux.c32

Here are my configs:

DHCP (!important: we don't use dhcp in the company, this server is specifically created for this purpose - that's why the range is very small.)

Bash:
    subnet 10.11.0.0 netmask 255.255.0.0 {
        range 10.11.223.2 10.11.223.40;
        option routers 10.11.111.100;
        option domain-name-servers 10.11.2.71;
        option broadcast-address 10.11.255.255;
        allow booting;
        allow bootp;
        allow-unknown-clients;
        default-lease-time 600;
        max-lease-time 7200;
        next-server 10.11.223.1;  # TFTP server IP
        filename "pxelinux.0";    # PXE boot file
    }

Bootconfig (for bootstrap node):

Bash:
 default menu.c32
    prompt 1
    timeout 9
    ONTIMEOUT 1
    menu title OKD installation
    label 1
    menu label ^1) Bootstrap node
    menu default
    kernel fcos/kernel
    append initrd=fcos/initramfs.img nomodeset rd.neednet=1 console=tty0 console=ttyS0 ip=dhcp coreos.inst=yes coreos.inst.install_dev=/dev/sda coreos.live.rootfs_url=http://10.11.223.1:8080/okd4/rootfs.img coreos.inst.ignition_url=http://10.11.223.1:8080/okd4/bootstrap.ign

TFTP folder structure which includes the images for CoreOS, pxelinux.0, ldlinux.c32 and my bootconfigs under pxelinux.cfg

Basically, at this point I am begging for inputs on how to proceed. Tried every kind of variation with this configs, different versions etc. Very grateful for any advice.
Also, happy to hear arguments why going with the other way coreos-install with modifying the images is a better option (or maybe even simpler). Also would be happy if anyone has completely different solutions for running openshift on proxmox.


Happy to provide any additional configs/screenshots on demand.

Thanks in advance.

Cheers!

[1]: https://github.com/stratokumulus/proxmox-openshift-setup
[2]: https://i.sstatic.net/pzY6GVRf.png
[3]: https://i.sstatic.net/ED8vbbMZ.png
 
Last edited:
Hi @perfust ,
Have you tried plugging in the error message into a search engine - there are a few reports about similar symptoms with solutions:

https://unix.stackexchange.com/questions/524269/pxe-boot-failed-to-load-ldlinux-c32

Though pretty old, conversation here may be useful : https://forum.proxmox.com/threads/proxmox-installation-via-pxe-solution.8484/


Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
Thanks for the input - ofc I did, I've been looking at this thing for the last week continuously. Nothing really matched my use-case and my setup nor did the answers helped in my case.
 
I've debugged a lof of PXE/TFTP issues over the years ... your best friend is tcpdump and running your tftpd server in debug mode, so that you really see what is going. The errors are then almost every time very obvious ... unless UEFI is involved.
 
  • Like
Reactions: perfust