I followed this guide to set up a PXE server on an ubuntu VM. Instead of the DHCP server on that same server though, I just configured OPNSense to use that server.

I made the boot image using this script and put the initrd.img and linux26 file in /var/www/boot/proxmox.

I have an apache webserver with the root at /var/www. The tftp server is set to root /var/lib/tftpboot. I copied the proxmox directory (containing initrd.img and linux26) into both /var/www and /var/lib/tftpboot.

I have OPNSense to use pxelinux.cfg/default as the default bios filename (located in /var/lib/tftpboot/pxelinux.cfg/default).

But when I try to use another VM to boot using the server, it gets to the point where it gets a DHCP lease, shows me the network info, then doesn't do anything.

VM failed to boot

Contents of pxelinux.cfg/default: (I confirmed that the files listed here are accessible).


MENU TITLE ..:: My PXE Menu ::..

LABEL Proxmox
    MENU LABEL Proxmox
    APPEND vga=791 video=vesafb:ywrap,mtrr ramdisk_size=16777216
    INITRD splash=verbose

LABEL Proxmox2
    MENU LABEL Proxmox2
    LINUX proxmox/linux26
    APPEND vga=791 video=vesafb:ywrap,mtrr ramdisk_size=16777216
    INITRD proxmox/initrd.iso.img splash=verbose

How can I get past this point?


You can't use the Label Proxmox one - PXE can't load over http the kernel but proxmox2 should in theory boot okay


It looks like the DHCP server isn't sending the 'next-server' info. Normally the Intel PXE BIOS would print something about TFTP loading the boot kernel, and you'd see the requests in your TFTP log.

I'd double-check your OPNSense config to make sure it has the IP info for your TFTP server.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.