Auto install through iPXE (for Proxmox v8 and v9)

lockmartkyushu

New Member
Oct 8, 2025
5
0
1
Can anyone explain to me briefly how to use ipxe to launch the proxmox iso installer.

I have tried the automated installation docs and built a ISO with the answer.toml, but I just cant seem to boot proxmox8 or proxmox9 via the initrd/linux26

What I have done:
* Used the official docs to make a valid answer.toml Automated Install (Official Docs)
* Built a bootable iso from: proxmox-auto-install-assistant prepare-iso ./proxmox-ve_8.4-1.iso --fetch-from iso --answer-file ./answer.toml
* Optionally attempted to use morph027 github tool for creating bootable initrd/linux to create a initrd/linux26 that I can boot with ipxe: bash pve-iso-2-pxe.sh ../proxmox-ve_8.4-1-auto-from-iso.iso
* Added it to my ipxe menu below, but it would either boot and never find /dev/sr0, or just not even boot and return to the ipxe menu, can anyone help?

My Ipxe menu:

Code:
#!ipxe
kernel http://192.168.0.181/FILES/pxeboot/linux26 vga=791 video=vesafb:ywrap,mtrr ramdisk_size=16777216 rw quiet initrd=initrd splash=verbose proxdebug
initrd http://192.168.0.181/FILES/pxeboot/initrd
boot
 
Last edited:
I will keep looking at this but if anyone has a defined process for basically adding the proxmox9 or proxmox8 iso to boot from ipxe, please help... :(
 
initrd=initrd

Based on this post, it would appear that maybe you should try:
Code:
initrd=initrd.magic

Another thing that possibly you should add/try on the kernel line:
Code:
proxmox-start-auto-installer

Please note, I don't personally do any auto PVE installations or iPXE booting - so I'm blind here.
I'm just taking a stab-in-the-dark trying to help. Good luck.
 
Thank you for your response. Unfortunately, even with these changes, I am unable to boot the Official Proxmox 8 or 9 Installer Disks.

I learned that the initrd is a zstd (not a gzip), and you cannot normally pxe boot into it.

I am still struggling with this.

Basically my goal is to press f12, boot into my ipxe.menu which has a entry to load the proxmox9 installer disk and present the default proxmox installer tui to the clients and workstations. Can anyone help me?
 
I gave up and decided to post my iVentory workaround (thanks elmar)... this is the ONLY way i was able to do this, because even though the /init inside the initrd points to proxmox.iso it still would not boot into the installer.




Markdown (GitHub flavored):
Steps to PXE Boot from iPXE to iVentoy:

1. **Docker Compose Configuration**:
   Use the following `docker-compose.yml` to set up the iVentoy service.

   ```bash
   version: '3.9'
   services:
     iventoy:
       image: szabis/iventoy:latest
       network_mode: "host"
       container_name: iventoy
       restart: always
       privileged: true  # Must be true
       environment:
         - AUTO_START_PXE=true
       ports:
         - "67:67/udp"  # DHCP Server
         - "69:69/udp"  # TFTP Server
         - "10809:10809"  # NBD Server
         - "16000:16000"  # PXE HTTP Server
         - "26000:26000"  # PXE GUI HTTP Server
       volumes:
         - ./data:/opt/iventoy/data
         - ./iso:/opt/iventoy/iso
         - ./log:/opt/iventoy/log
         - ./user:/opt/iventoy/user
   ```

2. **Add Proxmox ISO**:

   * Copy or symlink the Proxmox installer ISO to `./iso/`.

3. **iVentoy Web Configuration**:

   * Access iVentoy Web UI: `http://my-docker-ubuntu-server.test.local:26000/#vtoy_settings`.
   * Set **DHCP ServerMode** to **ExternalNet**.
   * In DHCP GUI, create a user-class rule for "iVentoy" and add the following options:

     * Option 66: iVentoy Docker Host IP
     * Option 67: `iventoy_loader_16000`
   * Ensure **any existing PXE policies** are updated to exclude `user-class = iVentoy` for Windows/Rocky systems.

4. **Configure PXE Menu (menu.ipxe)**:

   * Add this code to your `menu.ipxe` to set the user-class and chainload to iVentoy.

   ```bash
   #########################################################################
   # PROXMOX: Chainload FROM IPXE MENU to iVentoy MENU to boot installer ISO
   :proxmox-ks-i
   dhcp
   set user-class iVentoy
   chain tftp://192.168.46.100/iventoy_loader_16000_uefi
   goto start
   ```
 
Last edited:
I tried this as well, no luck. Ended up with answer.toml file over web. Another option is answer file on iso where you set just basic config + proxmox-first-boot that will do the final job. The answer on iso is less flexible if you do seldom installs.
 
Hello

Script pve-iso-2-pxe.sh does:

  1. Extracts initrd and linux26 from the Proxmox ISO file.
  2. Embeds the Proxmox ISO into the initrd archive with the name proxmox.iso.

After boot, when the kernel loads and initrd is mounted, the ISO should be available at path /proxmox.iso

Init process logic:
  1. First, it tries to locate the embedded ISO inside initrd (/proxmox.iso).
  2. If not found it checks in /sys/block/hd* /sys/block/sr* /sys/block/scd* /sys/block/sd* /sys/block/nvme*

If the ISO is found from any source, it is mounted and the system switches root to the filesystem from the ISO and continues autoinstall preparation.

If you see errors like “never find /dev/sr0”, it usually means the installer could not locate the ISO.
Verify that the file proxmox.iso exists at /proxmox.iso.
You can also review the init script to understand how early initrd prepares the environment for autoinstall.
 
Last edited:
There is patch on the devel mailing list for using the proxmox-auto-install-assistant to get an initrd, vmlinuz and an example config for ipxe booting, aside of the iso: https://lore.proxmox.com/all/20260204121025.630269-1-c.heiss@proxmox.com/
With ipxe you can use tftp to download the iso but it offers also faster ways like http.
So either patch/compile the proxmox-auto-install-assistant yourself or wait a few weeks/months till it is available in the released version.