0

I have been struggling with finding a solution for this for days now, and it feels like I have missed something but I dont know what. I am trying to create a offline system with unattended Debian ISO installations with PXE, but I cant seem to get it to work. DHCP / TFTP / pxelinux.cfg/default / preseed, etc is all working fine, and I have no problem starting a Live image over PXE, i just append in the boot config: append boot=live components splash net.ifnames=0 biosdevname=0 interface=eth0 fetch=http://192.168.0.196/debian.iso (or fetch filesystem.squashfs)

Also, writing this ISO to USB and booting from it allows me to both install and run the live version without any issues it attending. But if I try to use the same append line as above, using the kernel and initrd from the "install" dir of the ISO, it will not trigger any download of the ISO when trying to install over PXE. And i have not figured out how to make the debian installer to work with the ISO over PXE.

So my current way is to take the ISO, unpack it and and setup my server as a repo mirror, which works fine until I stumbled on a bug in the debian installation where: d-i debian-installer/allow_unauthenticated boolean true is not respected. I can of course generate a key and start using it, but i just have the feeling that I am creating a complex system for something that is already solved.

I tried the same thing on Ubuntu, downloaded the ubuntu-20.04.4-live-server-amd64.iso, extracted the kernel and initrd from the iso and added a pxelinux.cfg entry: label ubuntu menu label Ubuntu pxe iso install linux /ubuntu/vmlinuz initrd /ubuntu/initrd append root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.0.196/ubuntu-20.04.4-live-server-amd64.iso

And it worked directly. ISO installation over PXE without any fuss. So clearly, I must be missing something for Debian since Ubuntu is Debian based. Please help! :)

I am building my ISOs with live build, but i also tried debian-live-11.3.0-amd64-standard.iso without any success.

Cheers Wilhelm

1
  • This is all up to the scripts in the initrd, if they are not written to do what you want, then it won't work. And this is different in different distributions.
    – NiKiZe
    Commented Jun 11, 2022 at 12:06

1 Answer 1

1

This example boot into Debian live ISO using iPXE.

Mount or extract these files from ISO into your http server's endpoint:

  • d-i/initrd.gz
  • d-i/vmlinuz
  • live/filesystem.squashfs

And run this iPXE script:

set iso=http://192.168.0.196/
kernel ${iso}/d-i/vmlinuz initrd=initrd.magic fetch=${iso}/live/filesystem.squashfs
initrd ${iso}/d-i/initrd.gz
boot

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .