Hi there, I would like to contribute to Proxmox with a simple(?) how-to that makes it possible to install PVE 2.0 via PXE. PREREQUSITES The following needs to be up and running for any kind of PXE + iPXE / gPXE installation, the setup of these services are specific for your environment, make sure that they all work as expected: DHCP Server (see http://ipxe.org/howto/chainloading and http://ipxe.org/howto/dhcpd for how-to) TFTP Server, I assume that it uses the "/var/www/boot/" directory as it's root iPXE (http://ipxe.org/download) HTTP Server, I assume that it uses the "/var/www/" directory as it's root Files from the Syslinux project (http://www.syslinux.org/wiki/index.php/The_Syslinux_Project), i.e. "menu.c32" in the "/var/www/boot/" directory as well as a "deafult" menu file in the "/var/www/boot/pxelinux.cfg/" directory NEW INITRD with embedded ISO In order to have the installer find the .ISO image it needs to be embedded in the initrd.img that will be downloaded via PXE. Also, the init script in this new initrd.img needs to be modified so that it finds and mounts the embedded .ISO image instead of searching for a physical CD. An overview of the required steps: Extract initrd.img and linux26 from the .ISO image Extract initrd.img to a directory Copy the .ISO image to the initrd directory Modify init in the initrd directory Create a new initrd.img from the directory Copy the new initrd.img to the PXE server Detailed step-by-step guide: Log in to your Linux workstation, copy the Proxmox .ISO image to your working directory and rename it to "proxmox.iso" for simplicity. Extract the files "\boot\isolinux\initrd.img" and "\boot\isolinux\linux26" from the .ISO image. Rename "initrd.img" to "initrd.org.img" and unzip it: Code: # mv initrd.img initrd.org.img # gzip -d -S ".img" ./initrd.org.img Create a directory for the files in the initrd, extract initrd to this directory: Code: # mkdir initrd.tmp # cd initrd.tmp # cpio -i -d < ../initrd.org Copy the .ISO image to this directory: Code: # cp ../proxmox.iso . Modify the startup script so that it will mount the embedded .ISO image instead of searching for a physical CD. Code: # nano init At the end of the init script it searches for a CD/DVD reader containing a physical removeable CD disc. Modify the script so that it first checks whether there is an .ISO image ("proxmox.iso") in the root of the filesystem, and if so, mounts it. The colored + bolded text is what needs to be added between the "done" and "else" statements that are already present in the script: Code: [...] done [B][COLOR=#b22222]elif [ -f /proxmox.iso ]; then echo "found proxmox cdrom ISO image" echo "mounting /proxmox.iso image" mount -t iso9660 -o loop /proxmox.iso /mnt echo "mounting ISO done"[/COLOR][/B] else echo "searching for cdrom" [...] Save the file and exit the editor, no more changes are needed. Create a new initrd.img: Code: # find . | cpio -H newc -o > ../initrd Zip this new initrd: Code: # cd .. # gzip -9 -S ".img" initrd You should now have an much enlarged "initrd.img" file containing all original files from the original "initrd.org.img" as well as the .ISO image and the modified init script. Copy it to your HTTP server together with the "linux26" file: Code: # mkdir /var/www/boot/proxmox # cp linux26 /var/www/boot/proxmox/ # cp initrd.img /var/www/boot/proxmox/ Make sure that these files can be served via HTTP, i.e. test to download from a browser! PXE MENU I assume that your TFTP server's root is "/var/www/boot/" and that it contains the "menu.c32" file from the Syslinux project. You need to have your DHCP Server setup so that it serves iPXE or gPXE to your PXE enabled host and have iPXE / gPXE read the "pxelinux.cfg/default" file from the TFTP server's root. Modify "/var/www/boot/pxelinux.cfg/default" so that it looks something like this: Code: UI http://<HTTP Server name or IP>/boot/menu.c32 PROMPT 0 DEFAULT Proxmox MENU TITLE ..:: My PXE Menu ::.. MENU CLEAR LABEL Proxmox MENU LABEL Proxmox LINUX http://<HTTP Server name or IP>/boot/proxmox/linux26 APPEND vga=791 video=vesafb:ywrap,mtrr ramdisk_size=16777216 INITRD http://<HTTP Server name or IP>/boot/proxmox/initrd.img splash=verbose Now everything should be setup for a successful installation of Proxmox VE via PXE to any PXE enabled host. These changes in the init file of the initrd.img image could perhaps be implement into the distribution of Proxmox, it would certainly make it easier to setup a PXE install environment Either way, thank you for a very, very good product. keep up the good work!