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 MENU
   #########################################################################
   :proxmox
   set submenu-timeout 0
   clear submenu-default
   menu PROXMOX VERSIONS
   item --key p proxmox-ks-i             [P] - Proxmox 9
   item
   item --key b proxmox-ks-back          [B] - Back to previous
   choose --timeout ${submenu-timeout} --default ${submenu-default} selected && goto ${selected} || goto start
   go start # End of Submenu

   :proxmox-ks-back
   set submenu-timeout 0
   clear submenu-default
   goto start

   # Chainload to iVentoy to boot installer ISO
   :proxmox-ks-i
   dhcp
   set user-class iVentoy
   chain tftp://192.168.46.100/iventoy_loader_16000_uefi
   goto start
   ```