From 1f9431f315f2f62c06e0e07a52bc0e1cf6fb698a Mon Sep 17 00:00:00 2001 From: deus Date: Wed, 24 Jun 2026 14:24:23 +0200 Subject: [PATCH] added working pxe conf --- README.md | 38 ++++++++++++++++++++++ config_files/etc/dnsmasq.d/pxe.conf | 3 +- config_files/srv/tftp/pxelinux.cfg/default | 6 ++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 config_files/srv/tftp/pxelinux.cfg/default diff --git a/README.md b/README.md index 5bd2fcd..ca36f85 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,41 @@ This repo is for resources related to automated installation of linux on devices + It allows serving a whole iso via HTTP. Can we serve the lmde7 iso this way? + So far without success. It seems the efi files we prepped do not like to linux mint iso. + +### Working solution +- Supply these cli options to vmlinuz: `boot=live live-config ip=dhcp fetch=http://192.168.0.1/lmde-7-cinnamon-64bit.iso live-media-path=/live` + + For legacy boot, in `pxelinux.cfg/default` + ``` + DEFAULT install-legacy + LABEL install-legacy + KERNEL vmlinuz + INITRD initrd.lz + APPEND boot=live live-config ip=dhcp fetch=http://192.168.0.1/lmde-7-cinnamon-64bit.iso live-media-path=/live + ``` + + For EFI (not tested yet) + ``` + menuentry "LMDE 7 via HTTP ISO fetch" --class linuxmint { + set gfxpayload=keep + linux /vmlinuz boot=live live-config ip=dhcp fetch=http://192.168.0.1/lmde-7-cinnamon-64bit.iso live-media-path=/live quiet splash -- + initrd /initrd.lz + } + ``` +- In dnsmasq config: +``` +pxe-service=x86PC, "PXELINUX (BIOS)", "pxelinux.0" +pxe-service=X86-64_EFI,"PXE (UEFI)","grubx64.efi" +``` +- These files must be in tftp root (may be incomplete for efi as it was not tested) + + common to both legacy and efi (extract from the iso) + - vmlinuz + - initrd.lz + + legacy + - pxelinux.0 (get from debian netboot.tar.gz) + - ldlinux.c32 + + Ensure the syslinux-common package is installed, then `cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/` + - pxelinux.cfg/default (checked into this repo) + + efi (follow https://ubuntu.com/server/docs/how-to/installation/how-to-netboot-the-server-installer-on-amd64/#set-up-the-files-for-uefi-booting) + - grub.cfg/default (checked into this repo) + - bootx64.efi + - grubx64.efi + - unicode.pf diff --git a/config_files/etc/dnsmasq.d/pxe.conf b/config_files/etc/dnsmasq.d/pxe.conf index 8bb01ed..ed137f6 100644 --- a/config_files/etc/dnsmasq.d/pxe.conf +++ b/config_files/etc/dnsmasq.d/pxe.conf @@ -1,6 +1,7 @@ interface=enx9cbf0d007794 domain=yourdomain.com dhcp-range=192.168.0.3,192.168.0.253,255.255.255.0,1h -dhcp-boot=grubx64.efi +pxe-service=x86PC, "PXELINUX (BIOS)", "pxelinux.0" +pxe-service=X86-64_EFI,"PXE (UEFI)","grubx64.efi" enable-tftp tftp-root=/srv/tftp diff --git a/config_files/srv/tftp/pxelinux.cfg/default b/config_files/srv/tftp/pxelinux.cfg/default new file mode 100644 index 0000000..86f1f38 --- /dev/null +++ b/config_files/srv/tftp/pxelinux.cfg/default @@ -0,0 +1,6 @@ +DEFAULT install-legacy +LABEL install-legacy + KERNEL vmlinuz + INITRD initrd.lz + APPEND boot=live live-config ip=dhcp fetch=http://192.168.0.1/lmde-7-cinnamon-64bit.iso live-media-path=/live +