From 62ad2ec3eacdf0403116cf1b10886f0a645ca799 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sun, 8 Dec 2019 10:53:59 -0600 Subject: [PATCH] Remove static content and deploy scripts --- ipxe/disks/netboot.xyz | 67 -------------- ipxe/disks/netboot.xyz-gce | 68 -------------- ipxe/disks/netboot.xyz-packet | 69 -------------- ipxe/local/colour.h | 28 ------ ipxe/local/crypto.h | 1 - ipxe/local/general.h | 11 --- ipxe/local/general.h.efi | 10 --- ipxe/local/nap.h.efi | 4 - ipxe/local/usb.h.efi | 2 - script/prep-release.sh | 131 --------------------------- script/secrets.tar.enc | Bin 20496 -> 0 bytes src/alpinelinux.ipxe | 46 ---------- src/archlinux.ipxe | 54 ----------- src/blackarch.ipxe | 25 ------ src/boot.cfg | 147 ------------------------------ src/bsd.ipxe | 40 --------- src/centos.ipxe | 83 ----------------- src/coreos.ipxe | 45 ---------- src/debian.ipxe | 97 -------------------- src/devuan.ipxe | 83 ----------------- src/fedora.ipxe | 83 ----------------- src/flatcar.ipxe | 46 ---------- src/freebsd.ipxe | 52 ----------- src/freedos.ipxe | 23 ----- src/gentoo.ipxe | 30 ------- src/index.html | 7 -- src/ipfire.ipxe | 39 -------- src/kali.ipxe | 38 -------- src/linux-arm.ipxe | 37 -------- src/linux.ipxe | 44 --------- src/live-backbox.ipxe | 28 ------ src/live-debian.ipxe | 76 ---------------- src/live-elementary.ipxe | 27 ------ src/live-fedora.ipxe | 69 -------------- src/live-kali.ipxe | 64 ------------- src/live-manjaro.ipxe | 52 ----------- src/live-mint.ipxe | 49 ---------- src/live-peppermint.ipxe | 28 ------ src/live-popos.ipxe | 39 -------- src/live-q4os.ipxe | 44 --------- src/live-tails.ipxe | 27 ------ src/live-ubuntu.ipxe | 114 ------------------------ src/live-voyager.ipxe | 41 --------- src/live-zorin.ipxe | 44 --------- src/live.ipxe | 37 -------- src/livegrml.ipxe | 51 ----------- src/mageia.ipxe | 43 --------- src/memdisk | Bin 25372 -> 0 bytes src/menu.ipxe | 106 ---------------------- src/mirbsd.ipxe | 22 ----- src/netinfo.ipxe | 21 ----- src/news.ipxe | 45 ---------- src/nixos.ipxe | 21 ----- src/openbsd.ipxe | 37 -------- src/opensuse.ipxe | 90 ------------------- src/parrotsec.ipxe | 25 ------ src/rancheros.ipxe | 28 ------ src/rhel.ipxe | 52 ----------- src/scientific.ipxe | 60 ------------- src/security.ipxe | 27 ------ src/slackware.ipxe | 31 ------- src/tinycore.ipxe | 24 ----- src/ubuntu.ipxe | 85 ------------------ src/utils-arm.ipxe | 40 --------- src/utils.ipxe | 163 ---------------------------------- src/wimboot | Bin 51392 -> 0 bytes src/windows.ipxe | 59 ------------ 67 files changed, 3179 deletions(-) delete mode 100644 ipxe/disks/netboot.xyz delete mode 100644 ipxe/disks/netboot.xyz-gce delete mode 100644 ipxe/disks/netboot.xyz-packet delete mode 100644 ipxe/local/colour.h delete mode 100644 ipxe/local/crypto.h delete mode 100644 ipxe/local/general.h delete mode 100644 ipxe/local/general.h.efi delete mode 100644 ipxe/local/nap.h.efi delete mode 100644 ipxe/local/usb.h.efi delete mode 100755 script/prep-release.sh delete mode 100644 script/secrets.tar.enc delete mode 100644 src/alpinelinux.ipxe delete mode 100644 src/archlinux.ipxe delete mode 100644 src/blackarch.ipxe delete mode 100644 src/boot.cfg delete mode 100644 src/bsd.ipxe delete mode 100644 src/centos.ipxe delete mode 100644 src/coreos.ipxe delete mode 100644 src/debian.ipxe delete mode 100644 src/devuan.ipxe delete mode 100644 src/fedora.ipxe delete mode 100644 src/flatcar.ipxe delete mode 100644 src/freebsd.ipxe delete mode 100644 src/freedos.ipxe delete mode 100644 src/gentoo.ipxe delete mode 100644 src/index.html delete mode 100644 src/ipfire.ipxe delete mode 100644 src/kali.ipxe delete mode 100644 src/linux-arm.ipxe delete mode 100644 src/linux.ipxe delete mode 100644 src/live-backbox.ipxe delete mode 100644 src/live-debian.ipxe delete mode 100644 src/live-elementary.ipxe delete mode 100644 src/live-fedora.ipxe delete mode 100644 src/live-kali.ipxe delete mode 100644 src/live-manjaro.ipxe delete mode 100644 src/live-mint.ipxe delete mode 100644 src/live-peppermint.ipxe delete mode 100644 src/live-popos.ipxe delete mode 100644 src/live-q4os.ipxe delete mode 100644 src/live-tails.ipxe delete mode 100644 src/live-ubuntu.ipxe delete mode 100644 src/live-voyager.ipxe delete mode 100644 src/live-zorin.ipxe delete mode 100644 src/live.ipxe delete mode 100644 src/livegrml.ipxe delete mode 100644 src/mageia.ipxe delete mode 100644 src/memdisk delete mode 100644 src/menu.ipxe delete mode 100644 src/mirbsd.ipxe delete mode 100644 src/netinfo.ipxe delete mode 100644 src/news.ipxe delete mode 100644 src/nixos.ipxe delete mode 100644 src/openbsd.ipxe delete mode 100644 src/opensuse.ipxe delete mode 100644 src/parrotsec.ipxe delete mode 100644 src/rancheros.ipxe delete mode 100644 src/rhel.ipxe delete mode 100644 src/scientific.ipxe delete mode 100644 src/security.ipxe delete mode 100644 src/slackware.ipxe delete mode 100644 src/tinycore.ipxe delete mode 100644 src/ubuntu.ipxe delete mode 100644 src/utils-arm.ipxe delete mode 100644 src/utils.ipxe delete mode 100755 src/wimboot delete mode 100644 src/windows.ipxe diff --git a/ipxe/disks/netboot.xyz b/ipxe/disks/netboot.xyz deleted file mode 100644 index fb3d1254..00000000 --- a/ipxe/disks/netboot.xyz +++ /dev/null @@ -1,67 +0,0 @@ -#!ipxe -set esc:hex 1b -set bold ${esc:string}[1m -set boldoff ${esc:string}[22m -set fg_gre ${esc:string}[32m -set fg_cya ${esc:string}[36m -set fg_whi ${esc:string}[37m -set HTTPS_ERR HTTPS appears to have failed... attempting HTTP -set HTTP_ERR HTTP has failed, localbooting... -set version 1.04 - -:start -echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version}${boldoff} -prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp - -:dhcp -echo -dhcp || goto netconfig -goto menu - -:failsafe -menu netboot.xyz Failsafe Menu -item localboot Boot to local drive -item netconfig Manual network configuration -item retry Retry boot -item debug iPXE Debug Shell -item reboot Reboot System -choose failsafe_choice || exit -goto ${failsafe_choice} - -:netconfig -echo Network Configuration: -echo Available interfaces... -ifstat -imgfree -echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net -isset ${net} || set net 0 -echo -n IP: && read net${net}/ip -echo -n Subnet mask: && read net${net}/netmask -echo -n Gateway: && read net${net}/gateway -echo -n DNS: && read dns -ifopen net${net} -echo Attempting chainload of netboot.xyz... -goto menu || goto failsafe - -:menu -set conn_type https -chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR} -sleep 5 -set conn_type http -chain --autofree http://boot.netboot.xyz/menu.ipxe || echo ${HTTP_ERR} -goto localboot - -:localboot -exit - -:retry -goto start - -:reboot -reboot -goto start - -:debug -echo Type "exit" to return to menu -shell -goto failsafe diff --git a/ipxe/disks/netboot.xyz-gce b/ipxe/disks/netboot.xyz-gce deleted file mode 100644 index 76de70c3..00000000 --- a/ipxe/disks/netboot.xyz-gce +++ /dev/null @@ -1,68 +0,0 @@ -#!ipxe -set esc:hex 1b -set bold ${esc:string}[1m -set boldoff ${esc:string}[22m -set fg_gre ${esc:string}[32m -set fg_cya ${esc:string}[36m -set fg_whi ${esc:string}[37m -set HTTPS_ERR HTTPS appears to have failed... attempting HTTP -set HTTP_ERR HTTP has failed, localbooting... -set version 1.04 -set ipxe_cloud_config gce - -:start -echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version} for ${fg_cya}Google Compute Engine${boldoff} -prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp - -:dhcp -echo -dhcp || goto netconfig -goto menu - -:failsafe -menu netboot.xyz Failsafe Menu -item localboot Boot to local drive -item netconfig Manual network configuration -item retry Retry boot -item debug iPXE Debug Shell -item reboot Reboot System -choose failsafe_choice || exit -goto ${failsafe_choice} - -:netconfig -echo Network Configuration: -echo Available interfaces... -ifstat -imgfree -echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net -isset ${net} || set net 0 -echo -n IP: && read net${net}/ip -echo -n Subnet mask: && read net${net}/netmask -echo -n Gateway: && read net${net}/gateway -echo -n DNS: && read dns -ifopen net${net} -echo Attempting chainload of netboot.xyz... -goto menu || goto failsafe - -:menu -set conn_type https -chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR} -sleep 5 -set conn_type http -chain --autofree http://boot.netboot.xyz/menu.ipxe || echo ${HTTP_ERR} -goto localboot - -:localboot -exit - -:retry -goto start - -:reboot -reboot -goto start - -:debug -echo Type "exit" to return to menu -shell -goto failsafe diff --git a/ipxe/disks/netboot.xyz-packet b/ipxe/disks/netboot.xyz-packet deleted file mode 100644 index 18553acf..00000000 --- a/ipxe/disks/netboot.xyz-packet +++ /dev/null @@ -1,69 +0,0 @@ -#!ipxe -set esc:hex 1b -set bold ${esc:string}[1m -set boldoff ${esc:string}[22m -set fg_gre ${esc:string}[32m -set fg_red ${esc:string}[31m -set fg_cya ${esc:string}[36m -set fg_whi ${esc:string}[37m -set HTTPS_ERR HTTPS appears to have failed... attempting HTTP -set HTTP_ERR HTTP has failed, localbooting... -set version 1.04 -set ipxe_cloud_config packet - -:start -echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version} for ${fg_red}packet.com${fg_whi}${boldoff} -prompt --key m --timeout 4000 Hit the ${bold}m${boldoff} key to open failsafe menu... && goto failsafe || goto dhcp - -:dhcp -echo -dhcp || goto netconfig -goto menu - -:failsafe -menu netboot.xyz Failsafe Menu -item localboot Boot to local drive -item netconfig Manual network configuration -item retry Retry boot -item debug iPXE Debug Shell -item reboot Reboot System -choose failsafe_choice || exit -goto ${failsafe_choice} - -:netconfig -echo Network Configuration: -echo Available interfaces... -ifstat -imgfree -echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net -isset ${net} || set net 0 -echo -n IP: && read net${net}/ip -echo -n Subnet mask: && read net${net}/netmask -echo -n Gateway: && read net${net}/gateway -echo -n DNS: && read dns -ifopen net${net} -echo Attempting chainload of netboot.xyz... -goto menu || goto failsafe - -:menu -set conn_type https -chain --autofree https://boot.netboot.xyz/menu.ipxe || echo ${HTTPS_ERR} -sleep 5 -set conn_type http -chain --autofree http://boot.netboot.xyz/menu.ipxe || echo ${HTTP_ERR} -goto localboot - -:localboot -exit - -:retry -goto start - -:reboot -reboot -goto start - -:debug -echo Type "exit" to return to menu -shell -goto failsafe diff --git a/ipxe/local/colour.h b/ipxe/local/colour.h deleted file mode 100644 index 66b14004..00000000 --- a/ipxe/local/colour.h +++ /dev/null @@ -1,28 +0,0 @@ -#undef COLOR_NORMAL_FG -#undef COLOR_NORMAL_BG -#undef COLOR_SELECT_FG -#undef COLOR_SELECT_BG -#undef COLOR_SEPARATOR_FG -#undef COLOR_SEPARATOR_BG -#undef COLOR_EDIT_FG -#undef COLOR_EDIT_BG -#undef COLOR_ALERT_FG -#undef COLOR_ALERT_BG -#undef COLOR_URL_FG -#undef COLOR_URL_BG -#undef COLOR_PXE_FG -#undef COLOR_PXE_BG -#define COLOR_NORMAL_FG COLOR_CYAN -#define COLOR_NORMAL_BG COLOR_BLACK -#define COLOR_SELECT_FG COLOR_WHITE -#define COLOR_SELECT_BG COLOR_BLUE -#define COLOR_SEPARATOR_FG COLOR_WHITE -#define COLOR_SEPARATOR_BG COLOR_BLACK -#define COLOR_EDIT_FG COLOR_BLACK -#define COLOR_EDIT_BG COLOR_CYAN -#define COLOR_ALERT_FG COLOR_WHITE -#define COLOR_ALERT_BG COLOR_RED -#define COLOR_URL_FG COLOR_CYAN -#define COLOR_URL_BG COLOR_BLUE -#define COLOR_PXE_FG COLOR_BLACK -#define COLOR_PXE_BG COLOR_WHITE diff --git a/ipxe/local/crypto.h b/ipxe/local/crypto.h deleted file mode 100644 index 13bb0faf..00000000 --- a/ipxe/local/crypto.h +++ /dev/null @@ -1 +0,0 @@ -#undef OCSP_CHECK diff --git a/ipxe/local/general.h b/ipxe/local/general.h deleted file mode 100644 index cee59bd4..00000000 --- a/ipxe/local/general.h +++ /dev/null @@ -1,11 +0,0 @@ -#define DIGEST_CMD /* Image crypto digest commands */ -#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */ -#define IMAGE_COMBOOT /* COMBOOT */ -#define IMAGE_TRUST_CMD /* Image trust management commands */ -#define NET_PROTO_IPV6 /* IPv6 protocol */ -#define NSLOOKUP_CMD /* DNS resolving command */ -#define NTP_CMD /* NTP commands */ -#define PCI_CMD /* PCI commands */ -#define REBOOT_CMD /* Reboot command */ -#define TIME_CMD /* Time commands */ -#define VLAN_CMD /* VLAN commands */ diff --git a/ipxe/local/general.h.efi b/ipxe/local/general.h.efi deleted file mode 100644 index 2df7410a..00000000 --- a/ipxe/local/general.h.efi +++ /dev/null @@ -1,10 +0,0 @@ -#define DIGEST_CMD /* Image crypto digest commands */ -#define DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */ -#define IMAGE_TRUST_CMD /* Image trust management commands */ -#define NET_PROTO_IPV6 /* IPv6 protocol */ -#define NSLOOKUP_CMD /* DNS resolving command */ -#define NTP_CMD /* NTP commands */ -#define PCI_CMD /* PCI commands */ -#define REBOOT_CMD /* Reboot command */ -#define TIME_CMD /* Time commands */ -#define VLAN_CMD /* VLAN commands */ diff --git a/ipxe/local/nap.h.efi b/ipxe/local/nap.h.efi deleted file mode 100644 index 1e345eb0..00000000 --- a/ipxe/local/nap.h.efi +++ /dev/null @@ -1,4 +0,0 @@ -/* nap.h */ -#undef NAP_EFIX86 -#undef NAP_EFIARM -#define NAP_NULL diff --git a/ipxe/local/usb.h.efi b/ipxe/local/usb.h.efi deleted file mode 100644 index be2ccaef..00000000 --- a/ipxe/local/usb.h.efi +++ /dev/null @@ -1,2 +0,0 @@ -/* usb.h */ -#define USB_EFI diff --git a/script/prep-release.sh b/script/prep-release.sh deleted file mode 100755 index c8c6ea00..00000000 --- a/script/prep-release.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/bin/bash -# prep release for upload to production container - -set -e - -# make ipxe directory to store ipxe disks -mkdir -p build/ipxe - -# pull down upstream iPXE -git clone --depth 1 https://github.com/ipxe/ipxe.git ipxe_build - -# copy iPXE config overrides into source tree -cp ipxe/local/* ipxe_build/src/config/local/ - -# copy certs into source tree -cp script/*.crt ipxe_build/src/ - -# build iPXE disks -cd ipxe_build/src - -# get current iPXE hash -IPXE_HASH=`git log -n 1 --pretty=format:"%H"` - -# generate netboot.xyz iPXE disks -make bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe \ -EMBED=../../ipxe/disks/netboot.xyz TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt -mv bin/ipxe.dsk ../../build/ipxe/netboot.xyz.dsk -mv bin/ipxe.iso ../../build/ipxe/netboot.xyz.iso -mv bin/ipxe.lkrn ../../build/ipxe/netboot.xyz.lkrn -mv bin/ipxe.usb ../../build/ipxe/netboot.xyz.usb -mv bin/ipxe.kpxe ../../build/ipxe/netboot.xyz.kpxe -mv bin/undionly.kpxe ../../build/ipxe/netboot.xyz-undionly.kpxe - -# generate netboot.xyz iPXE disk for Google Compute Engine -make bin/ipxe.usb CONFIG=cloud EMBED=../../ipxe/disks/netboot.xyz-gce \ -TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt -cp -f bin/ipxe.usb disk.raw -tar Sczvf netboot.xyz-gce.tar.gz disk.raw -mv netboot.xyz-gce.tar.gz ../../build/ipxe/netboot.xyz-gce.tar.gz - -# generate netboot.xyz-packet legacy iPXE disk -make bin/undionly.kpxe \ -EMBED=../../ipxe/disks/netboot.xyz-packet TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt -mv bin/undionly.kpxe ../../build/ipxe/netboot.xyz-packet.kpxe - -# generate EFI iPXE disks -cp config/local/general.h.efi config/local/general.h -make clean -make bin-x86_64-efi/ipxe.efi \ -EMBED=../../ipxe/disks/netboot.xyz TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt -mkdir -p efi_tmp -dd if=/dev/zero of=efi_tmp/ipxe.img count=2880 -mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880 -mmd -i efi_tmp/ipxe.img ::efi ::efi/boot -mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi -genisoimage -o ipxe.eiso -eltorito-alt-boot -e ipxe.img -no-emul-boot efi_tmp -mv bin-x86_64-efi/ipxe.efi ../../build/ipxe/netboot.xyz.efi -mv ipxe.eiso ../../build/ipxe/netboot.xyz-efi.iso - -# generate netboot.xyz-packet efi iPXE disk -make bin-x86_64-efi/ipxe.efi \ -EMBED=../../ipxe/disks/netboot.xyz-packet TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt -mv bin-x86_64-efi/ipxe.efi ../../build/ipxe/netboot.xyz-packet.efi - -# iPXE workaround -# http://lists.ipxe.org/pipermail/ipxe-devel/2018-August/006254.html -# apply patch to fix arm64 builds on amd64 builds -sed -i '/WORKAROUND_CFLAGS/d' arch/arm64/Makefile - -# generate EFI arm64 iPXE disk -make clean -make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 \ -EMBED=../../ipxe/disks/netboot.xyz TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt \ -bin-arm64-efi/snp.efi -mv bin-arm64-efi/snp.efi ../../build/ipxe/netboot.xyz-arm64.efi - -# generate netboot.xyz-packet-arm64 iPXE disk -make clean -make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 \ -EMBED=../../ipxe/disks/netboot.xyz-packet TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt \ -bin-arm64-efi/snp.efi -mv bin-arm64-efi/snp.efi ../../build/ipxe/netboot.xyz-packet-arm64.efi - -# generate arm64 experimental -cp config/local/nap.h.efi config/local/nap.h -cp config/local/usb.h.efi config/local/usb.h -make clean -make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 \ -EMBED=../../ipxe/disks/netboot.xyz TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt \ -bin-arm64-efi/snp.efi -mv bin-arm64-efi/snp.efi ../../build/ipxe/netboot.xyz-arm64-experimental.efi - -# return to root -cd ../.. - -# generate header for sha256-checksums file -cd build/ -CURRENT_TIME=`date` -cat > netboot.xyz-sha256-checksums.txt <> ../netboot.xyz-sha256-checksums.txt -done -cat ../netboot.xyz-sha256-checksums.txt -mv ../netboot.xyz-sha256-checksums.txt . -cd ../.. - -# generate signatures for netboot.xyz source files -mkdir sigs -for src_file in `ls src` -do - openssl cms -sign -binary -noattr -in src/$src_file \ - -signer script/codesign.crt -inkey script/codesign.key -certfile script/ca-netboot-xyz.crt -outform DER \ - -out sigs/$src_file.sig - echo Generated signature for $src_file... -done -mv sigs src/ - -# delete index.html so that we don't overwrite existing content type -rm src/index.html - -# copy iPXE src code into build directory -cp -R src/* build/ diff --git a/script/secrets.tar.enc b/script/secrets.tar.enc deleted file mode 100644 index 7412e2c8d1cbfed4ba8bfc47c22578491c88b83e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20496 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 X!$g8UXHB;a2td*A netmask 255.255.255.0 -echo route delete default; route add default -echo echo "nameserver x.x.x.x" > /etc/resolv.conf -echo Once network is configured, you can launch the usual installer: -echo bsdinstall -initrd ${src} -chain ${memdisk} harddisk raw -exit - -:freebsd_exit -clear menu -exit 0 diff --git a/src/freedos.ipxe b/src/freedos.ipxe deleted file mode 100644 index 3d3bed95..00000000 --- a/src/freedos.ipxe +++ /dev/null @@ -1,23 +0,0 @@ -#!ipxe - -# FreeDOS Operating System -# http://www.freedos.org - -:freedos_menu -menu FreeDOS -item --gap FreeDOS -item FD12FULL ${space} FreeDOS 1.2 Full Installer -item FD12LITE ${space} FreeDOS 1.2 Lite Installer -choose freedos_version || goto freedos_exit -echo ${cls} -goto freedos_install || goto freedos_exit - -:freedos_install -imgfree -kernel ${memdisk} -initrd http://www.freedos.org/download/download/${freedos_version}.zip -boot - -:freedos_exit -clear menu -exit 0 diff --git a/src/gentoo.ipxe b/src/gentoo.ipxe deleted file mode 100644 index df51ca29..00000000 --- a/src/gentoo.ipxe +++ /dev/null @@ -1,30 +0,0 @@ -#!ipxe - -# Gentoo Operating System -# http://www.gentoo.org - -# Note: in order to boot Gentoo via iPXE, the method at http://blog.dastrup.com/?p=12 has been utilized to -# to allow for the Gentoo minimal disk to boot. I've regenerated the latest boot disks and have put -# them on https://sourceforge.net/projects/netboot-xyz/files/distros/gentoo/amd64/20160204/ - -goto ${menu} - -:gentoo -set os gentoo -menu Gentoo ${arch_a} -item 20160204 Gentoo Minimal CD 20160204 (amd64) -choose gentoo_version || goto gentoo_exit -goto ${gentoo_version} - -:20160204 -set gentoopath https://master.dl.sourceforge.net/project/netboot-xyz/distros/gentoo/amd64/20160204 -echo Please note the gentoo ISO has been regenerated to work with iPXE -echo using the method here: http://blog.dastrup.com/?p=12 -kernel --name gentoo-kernel ${gentoopath}/kernel root=/dev/ram0 init=/linuxrc loop=/image.squashfs looptype=squashfs cdroot=1 real_root=/ ${console} -initrd --name gentoo-initrd.img ${gentoopath}/initrd -boot -goto gentoo - -:gentoo_exit -clear menu -chain linux.ipxe diff --git a/src/index.html b/src/index.html deleted file mode 100644 index a62f838c..00000000 --- a/src/index.html +++ /dev/null @@ -1,7 +0,0 @@ -#!ipxe -#### boot.netboot.xyz initial loader #### -#### see https://netboot.xyz for more information #### -set conn_type https -chain --autofree https://boot.netboot.xyz/menu.ipxe || echo HTTPS failed... attempting HTTP... -set conn_type http -chain --autofree http://boot.netboot.xyz/menu.ipxe || echo HTTP failed, localbooting... diff --git a/src/ipfire.ipxe b/src/ipfire.ipxe deleted file mode 100644 index 2be7877a..00000000 --- a/src/ipfire.ipxe +++ /dev/null @@ -1,39 +0,0 @@ -#!ipxe - -# IPFire -# https://www.ipfire.org/ - -goto ${menu} || - -:ipfire -clear osversion -set os IPFire -menu ${os} - Image Sig Checks: [${img_sigs_enabled}] -item 2.21-core126 ${space} ${os} 2.21 Core 126 -isset ${osversion} || choose osversion || goto linux_menu -echo ${cls} -set ipfire_mirror downloads.ipfire.org -set dir releases/ipfire-2.x/${osversion}/images/x86_64 -goto ipfire_images - -:ipfire_images -imgfree -kernel https://${ipfire_mirror}/${dir}/vmlinuz ${console} vga=791 initrd=instroot -initrd https://${ipfire_mirror}/${dir}/instroot -echo -echo MD5sums: -md5sum vmlinuz instroot -iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs -:verify_sigs -echo -echo Checking signatures... -imgverify vmlinuz ${sigs}ipfire/${dir}/vmlinuz.sig || goto error -imgverify instroot ${sigs}ipfire/${dir}/instroot.sig || goto error -echo Signatures verified! -echo -:skip_sigs -boot - -:ipfire_exit -clear menu -exit 0 diff --git a/src/kali.ipxe b/src/kali.ipxe deleted file mode 100644 index aa90cda2..00000000 --- a/src/kali.ipxe +++ /dev/null @@ -1,38 +0,0 @@ -#!ipxe - -# Kali Linux -# http://www.kali.org - -goto ${menu} || - -:kali -set os Kali Linux -menu ${os} - ${arch_a} -item rolling ${os} Rolling Edition (2019.4) -choose version || goto kali_exit - -:deb_boot_type -set dir kali/dists/kali-${version}/main/installer-${arch_a}/current/images/netboot -menu ${os} boot parameters -item text ${os} text based install -choose --default ${type} type || goto kali - -echo ${cls} -goto deb_${type} - -:deb_text -set dir ${dir}/debian-installer/${arch_a} -goto deb_boot - -:deb_boot -imgfree -kernel http://http.kali.org/${dir}/linux vga=788 ${console} -- quiet initrd=initrd.gz -initrd http://http.kali.org/${dir}/initrd.gz -echo -echo MD5sums: -md5sum linux initrd.gz -boot - -:kali_exit -clear menu -exit 0 diff --git a/src/linux-arm.ipxe b/src/linux-arm.ipxe deleted file mode 100644 index 0e62146e..00000000 --- a/src/linux-arm.ipxe +++ /dev/null @@ -1,37 +0,0 @@ -#!ipxe - -goto ${menu} || - -:linux_menu -menu Linux Installers - ARM ARCH **EXPERIMENTAL** Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap Popular Linux Operating Systems: -item centos ${space} CentOS -item debian ${space} Debian -item fedora ${space} Fedora -item opensuse ${space} openSUSE -item ubuntu ${space} Ubuntu -item --gap All Others: -#item alpinelinux ${space} Alpine Linux -#item devuan ${space} Devuan -#item coreos ${space} Fedora CoreOS (Preview) -#item flatcar ${space} Flatcar -#item nixos ${space} NixOS -item rhel ${space} Red Hat Enterprise Linux -#item tinycore ${space} Tiny Core Linux -choose menu || goto linux_exit -echo ${cls} -goto ${menu} || -iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu - -:verify_sigs -imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error -goto change_menu - -:change_menu -chain ${menu}.ipxe || goto error -goto linux_menu - -:linux_exit -clear menu -exit 0 diff --git a/src/linux.ipxe b/src/linux.ipxe deleted file mode 100644 index 00d91932..00000000 --- a/src/linux.ipxe +++ /dev/null @@ -1,44 +0,0 @@ -#!ipxe - -goto ${menu} || - -:linux_menu -menu Linux Installers - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap Popular Linux Operating Systems: -item archlinux ${space} Arch Linux -item centos ${space} CentOS -item debian ${space} Debian -item fedora ${space} Fedora -item mageia ${space} Mageia -item opensuse ${space} openSUSE -item ubuntu ${space} Ubuntu -item --gap All Others: -item alpinelinux ${space} Alpine Linux -item devuan ${space} Devuan -item coreos ${space} Fedora CoreOS (Preview) -item flatcar ${space} Flatcar -item gentoo ${space} Gentoo Linux -item ipfire ${space} IPFire -item nixos ${space} NixOS -item rancheros ${space} RancherOS -item rhel ${space} Red Hat Enterprise Linux -item scientific ${space} Scientific -item slackware ${space} Slackware -item tinycore ${space} Tiny Core Linux -choose menu || goto linux_exit -echo ${cls} -goto ${menu} || -iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu - -:verify_sigs -imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error -goto change_menu - -:change_menu -chain ${menu}.ipxe || goto error -goto linux_menu - -:linux_exit -clear menu -exit 0 diff --git a/src/live-backbox.ipxe b/src/live-backbox.ipxe deleted file mode 100644 index e63f7d35..00000000 --- a/src/live-backbox.ipxe +++ /dev/null @@ -1,28 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os BackBox -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item 6 ${space} ${os} 6 -choose live_version || goto live_exit -goto ${live_version} - -:6 -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/6-b44ce5ee/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 6-boot - -:6-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-debian.ipxe b/src/live-debian.ipxe deleted file mode 100644 index 4a9cd12a..00000000 --- a/src/live-debian.ipxe +++ /dev/null @@ -1,76 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Debian Live -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item buster ${space} ${os} 10 (buster) -choose live_version || goto live_exit -menu ${os} ${live_version} -item --gap ${os} Flavors -goto ${live_version} - -:stretch -goto flavor_select - -:buster -item debian-10-cinnamon-squash ${space} Debian 10 Cinnamon -item debian-10-default-squash ${space} Debian 10 Core -item debian-10-gnome-squash ${space} Debian 10 Gnome -item debian-10-kde-squash ${space} Debian 10 Kde -item debian-10-lxde-squash ${space} Debian 10 Lxde -item debian-10-lxqt-squash ${space} Debian 10 Lxqt -item debian-10-mate-squash ${space} Debian 10 Mate -item debian-10-xfce-squash ${space} Debian 10 Xfce -goto flavor_select - -:flavor_select -choose flavor || goto live_menu -echo ${cls} -goto ${flavor} || - -:debian-10-cinnamon-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-51162b7a/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot -:debian-10-default-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-600c59c0/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot -:debian-10-gnome-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-787d3b4a/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot -:debian-10-kde-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-88a7a1a3/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot -:debian-10-lxde-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-30a4aa90/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot -:debian-10-lxqt-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-39d7e341/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot -:debian-10-mate-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-466ca031/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot -:debian-10-xfce-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/10.2.0-a0eae41d/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto boot - -:boot -imgfree -kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 diff --git a/src/live-elementary.ipxe b/src/live-elementary.ipxe deleted file mode 100644 index f3722219..00000000 --- a/src/live-elementary.ipxe +++ /dev/null @@ -1,27 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os elementary OS -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item elementaryos-5-default-squash ${space} ${os} 5.1 (Hera) -choose live_version || goto live_exit -goto ${live_version} - -:elementaryos-5-default-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/5-14ff2c98/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto boot - -:boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 diff --git a/src/live-fedora.ipxe b/src/live-fedora.ipxe deleted file mode 100644 index 1c559ef2..00000000 --- a/src/live-fedora.ipxe +++ /dev/null @@ -1,69 +0,0 @@ -#!ipxe - -isset ${dhcp-server} && set ipparam ip=dhcp || set ipparam ip=${ip}::${gateway}:${netmask}:::none nameserver=${dns} -set ipparam BOOTIF=${netX/mac} ${ipparam} - -goto ${menu} || - -:live_menu -set os Fedora Live -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item 31 ${space} ${os} 31 -choose live_version || goto live_exit -menu ${os} ${live_version} -item --gap ${os} Flavors -goto ${live_version} - -:31 -item fedora-31-Cinnamon ${space} Fedora 31 Cinnamon -item fedora-31-KDE ${space} Fedora 31 Kde -item fedora-31-LXDE ${space} Fedora 31 Lxde -item fedora-31-LXQt ${space} Fedora 31 Lxqt -item fedora-31-MATE_Compiz ${space} Fedora 31 Mate_compiz -item fedora-31-SoaS ${space} Fedora 31 Soas -item fedora-31-Xfce ${space} Fedora 31 Xfce -item fedora-31-gnome ${space} Fedora 31 Gnome -goto flavor_select - -:flavor_select -choose flavor || goto live_menu -echo ${cls} -goto ${flavor} || - -:fedora-31-Cinnamon -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-5a52a02a/ -goto boot -:fedora-31-KDE -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-dfbbe3cc/ -goto boot -:fedora-31-LXDE -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-c23f0dc4/ -goto boot -:fedora-31-LXQt -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-19db8480/ -goto boot -:fedora-31-MATE_Compiz -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-29013501/ -goto boot -:fedora-31-SoaS -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-28104ec6/ -goto boot -:fedora-31-Xfce -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-00e3a627/ -goto boot -:fedora-31-gnome -set live_url ${live_endpoint}/fedora-assets/releases/download/1.9-808bb0da/ -goto boot - -:boot -imgfree -kernel ${live_url}vmlinuz ${ipparam} root=live:${live_url}squashfs.img ro rd.live.image rd.lvm=0 rd.luks=0 rd.md=0 rd.dm=0 initrd=initrd -initrd ${live_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-kali.ipxe b/src/live-kali.ipxe deleted file mode 100644 index e10304bc..00000000 --- a/src/live-kali.ipxe +++ /dev/null @@ -1,64 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Kali Linux -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item rolling ${space} ${os} Rolling -choose live_version || goto live_exit -menu ${os} ${live_version} -item --gap ${os} Flavors -goto ${live_version} - -:rolling -item kali-gnome-squash ${space} Kali Rolling GNOME -item kali-kde-squash ${space} Kali Rolling KDE -item kali-light-squash ${space} Kali Rolling LIGHT -item kali-lxde-squash ${space} Kali Rolling LXDE -item kali-mate-squash ${space} Kali Rolling MATE -item kali-xfce-squash ${space} Kali Rolling XFCE -goto flavor_select - -:flavor_select -choose flavor || goto live_menu -echo ${cls} -goto ${flavor} || - -:kali-gnome-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/2019.4-734e93c5/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/5.3.9-3kali1-e9b26579/ -goto boot -:kali-kde-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/2019.4-d761db15/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/5.3.9-3kali1-e9b26579/ -goto boot -:kali-light-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/2019.4-544b485d/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/5.3.9-3kali1-e9b26579/ -goto boot -:kali-lxde-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/2019.4-78e57944/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/5.3.9-3kali1-e9b26579/ -goto boot -:kali-mate-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/2019.4-0e4d0210/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/5.3.9-3kali1-e9b26579/ -goto boot -:kali-xfce-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/2019.4-00ef2578/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/5.3.9-3kali1-e9b26579/ -goto boot - -:boot -imgfree -kernel ${kernel_url}vmlinuz boot=live components username=root hostname=kali fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-manjaro.ipxe b/src/live-manjaro.ipxe deleted file mode 100644 index bde64faf..00000000 --- a/src/live-manjaro.ipxe +++ /dev/null @@ -1,52 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -menu Manjaro Live - Current Arch [ ${arch} ] -item --gap Currently during boot you need to press ctrl+d/ctrl+c -item --gap repeatedly when init hangs on starting a download -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap Manjaro Live -item manjaro-18.1.0-default-squash ${space} Manjaro 18.1.0 Architect -item manjaro-18.1.0-gnome-squash ${space} Manjaro 18.1.0 Gnome -item manjaro-18.1.0-kde-squash ${space} Manjaro 18.1.0 Kde -item manjaro-18.1.0-xfce-squash ${space} Manjaro 18.1.0 Xfce -choose menu || goto live_exit -echo ${cls} -goto ${menu} || -iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu - -:manjaro-18.1.0-default-squash -imgfree -set fetch_url ${live_endpoint}/manjaro-squash/releases/download/18.1.0-a9fc9ad4/ -kernel ${live_endpoint}/manjaro-core-18.x/releases/download/4.19.69-1-MANJARO-6946b4cf/vmlinuz misobasedir=manjaro ip=dhcp miso_http_srv=${fetch_url} nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 driver=free tz=UTC lang=en_US keytable=us systemdshow_status=1 apparmor=1 security=apparmor -initrd ${live_endpoint}/manjaro-core-18.x/releases/download/4.19.69-1-MANJARO-6946b4cf/initrd -boot -:manjaro-18.1.0-gnome-squash -imgfree -set fetch_url ${live_endpoint}/manjaro-squash/releases/download/18.1.0-f94efa23/ -kernel ${live_endpoint}/manjaro-core-18.x/releases/download/5.2.11-1-MANJARO-e2cddd8e/vmlinuz misobasedir=manjaro ip=dhcp miso_http_srv=${fetch_url} nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 driver=free tz=UTC lang=en_US keytable=us systemdshow_status=1 apparmor=1 security=apparmor -initrd ${live_endpoint}/manjaro-core-18.x/releases/download/5.2.11-1-MANJARO-e2cddd8e/initrd -boot -:manjaro-18.1.0-kde-squash -imgfree -set fetch_url ${live_endpoint}/manjaro-squash/releases/download/18.1.0-a3f2c12b/ -kernel ${live_endpoint}/manjaro-core-18.x/releases/download/5.2.11-1-MANJARO-e2cddd8e/vmlinuz misobasedir=manjaro ip=dhcp miso_http_srv=${fetch_url} nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 driver=free tz=UTC lang=en_US keytable=us systemdshow_status=1 apparmor=1 security=apparmor -initrd ${live_endpoint}/manjaro-core-18.x/releases/download/5.2.11-1-MANJARO-e2cddd8e/initrd -boot -:manjaro-18.1.0-xfce-squash -imgfree -set fetch_url ${live_endpoint}/manjaro-squash/releases/download/18.1.0-5dc05378/ -kernel ${live_endpoint}/manjaro-core-18.x/releases/download/5.2.11-1-MANJARO-e2cddd8e/vmlinuz misobasedir=manjaro ip=dhcp miso_http_srv=${fetch_url} nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 driver=free tz=UTC lang=en_US keytable=us systemdshow_status=1 apparmor=1 security=apparmor -initrd ${live_endpoint}/manjaro-core-18.x/releases/download/5.2.11-1-MANJARO-e2cddd8e/initrd -boot - -:change_menu -chain ${menu}.ipxe || goto error -goto live_menu - -:live_exit -clear menu -exit 0 - diff --git a/src/live-mint.ipxe b/src/live-mint.ipxe deleted file mode 100644 index a471430b..00000000 --- a/src/live-mint.ipxe +++ /dev/null @@ -1,49 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Mint Live -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item 19 ${space} ${os} 19 -choose live_version || goto live_exit -menu ${os} ${live_version} -item --gap ${os} Flavors -goto ${live_version} - -:19 -item mint-19-cinnamon-squash ${space} Mint 19 Cinnamon -item mint-19-mate-squash ${space} Mint 19 Mate -item mint-19-xfce-squash ${space} Mint 19 Xfce -goto flavor_select - -:flavor_select -choose flavor || goto live_menu -echo ${cls} -goto ${flavor} || - -:mint-19-cinnamon-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/19.2-0830904d/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 19-boot -:mint-19-mate-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/19.2-0b1e2ee6/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 19-boot -:mint-19-xfce-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/19.2-69724a44/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 19-boot - -:19-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-peppermint.ipxe b/src/live-peppermint.ipxe deleted file mode 100644 index c3f5918d..00000000 --- a/src/live-peppermint.ipxe +++ /dev/null @@ -1,28 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Peppermint -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item 10 ${space} ${os} 10 -choose live_version || goto live_exit -goto ${live_version} - -:10 -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/10-3bce362b/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 10-boot - -:10-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-popos.ipxe b/src/live-popos.ipxe deleted file mode 100644 index 67ff281f..00000000 --- a/src/live-popos.ipxe +++ /dev/null @@ -1,39 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Pop OS -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item 18.04 ${space} ${os} 18.04 -item 19.10 ${space} ${os} 19.10 -choose live_version || goto live_exit -goto ${live_version} - -:18.04 -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/57-b1e9a9cc/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:19.10 -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/10-317de200/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot - -:18.04-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:19.10-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-q4os.ipxe b/src/live-q4os.ipxe deleted file mode 100644 index 037d51fe..00000000 --- a/src/live-q4os.ipxe +++ /dev/null @@ -1,44 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Q4OS Live -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item 3.9 ${space} ${os} 3.9 -choose live_version || goto live_exit -menu ${os} ${live_version} -item --gap ${os} Flavors -goto ${live_version} - -:3.9 -item q4os-3.9-default-squash ${space} Q4os 3.9 Trinity -item q4os-3.9-plasma-squash ${space} Q4os 3.9 Plasma -goto flavor_select - -:flavor_select -choose flavor || goto live_menu -echo ${cls} -goto ${flavor} || - -:q4os-3.9-default-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/3.9-a721c7cc/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto 3.9-boot -:q4os-3.9-plasma-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/3.9-8b894afb/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -goto 3.9-boot - -:3.9-boot -imgfree -kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-tails.ipxe b/src/live-tails.ipxe deleted file mode 100644 index 29549521..00000000 --- a/src/live-tails.ipxe +++ /dev/null @@ -1,27 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Tails -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item tails-4.0-default-squash ${space} ${os} 4.0 -choose live_version || goto live_exit -goto ${live_version} - -:tails-4.0-default-squash -set squash_url ${live_endpoint}/debian-squash/releases/download/4.0-41d3900f/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/5.3.2-1-fbccf8d7/ -goto boot - -:boot -imgfree -kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd nopersistence noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 splash noautologin module=Tails slab_nomerge slub_debug=FZP mce=0 vsyscall=none page_poison=1 mds=full,nosmt union=aufs -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 diff --git a/src/live-ubuntu.ipxe b/src/live-ubuntu.ipxe deleted file mode 100644 index 1ef4c7b1..00000000 --- a/src/live-ubuntu.ipxe +++ /dev/null @@ -1,114 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Ubuntu Live -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item bionic ${space} ${os} 18.04 -item eoan ${space} ${os} 19.10 -choose live_version || goto live_exit -menu ${os} ${live_version} -item --gap ${os} Flavors -goto ${live_version} - -:bionic -item ubuntu-18.04-Budgie-squash ${space} Ubuntu 18.04 Budgie -item ubuntu-18.04-KDE-squash ${space} Ubuntu 18.04 Kde -item ubuntu-18.04-LXDE-squash ${space} Ubuntu 18.04 Lxde -item ubuntu-18.04-MATE-squash ${space} Ubuntu 18.04 Mate -item ubuntu-18.04-default-squash ${space} Ubuntu 18.04 Unity -item ubuntu-18.04-kylin-squash ${space} Ubuntu 18.04 Kylin -item ubuntu-18.04-xfce-squash ${space} Ubuntu 18.04 Xfce -goto flavor_select - -:eoan -item ubuntu-19.10-Budgie-squash ${space} Ubuntu 19.10 Budgie -item ubuntu-19.10-KDE-squash ${space} Ubuntu 19.10 Kde -item ubuntu-19.10-LXDE-squash ${space} Ubuntu 19.10 Lxde -item ubuntu-19.10-MATE-squash ${space} Ubuntu 19.10 Mate -item ubuntu-19.10-default-squash ${space} Ubuntu 19.10 Unity -item ubuntu-19.10-kylin-squash ${space} Ubuntu 19.10 Kylin -item ubuntu-19.10-xfce-squash ${space} Ubuntu 19.10 Xfce -goto flavor_select - -:flavor_select -choose flavor || goto live_menu -echo ${cls} -goto ${flavor} || - -:ubuntu-18.04-Budgie-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-fbf44fff/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:ubuntu-18.04-KDE-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-33e8e2f8/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:ubuntu-18.04-LXDE-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-2f9cd5be/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:ubuntu-18.04-MATE-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-c629718a/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:ubuntu-18.04-default-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-9e60a38f/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:ubuntu-18.04-kylin-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-8c2102eb/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:ubuntu-18.04-xfce-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/18.04.3-d9bd73c3/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 18.04-boot -:ubuntu-19.10-Budgie-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/945f7f4b-85bee8cf/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot -:ubuntu-19.10-KDE-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/9854741e-b243fefb/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot -:ubuntu-19.10-LXDE-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/8b8b0336-f53591b5/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot -:ubuntu-19.10-MATE-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/b8a2a185-48069fc4/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot -:ubuntu-19.10-default-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/ee829212-575f2ecf/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot -:ubuntu-19.10-kylin-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/e7831484-762c8439/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot -:ubuntu-19.10-xfce-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/862cad91-9437400f/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -goto 19.10-boot - -:18.04-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:19.10-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live-voyager.ipxe b/src/live-voyager.ipxe deleted file mode 100644 index a5f13c3c..00000000 --- a/src/live-voyager.ipxe +++ /dev/null @@ -1,41 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Voyager Live -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item bionic ${space} ${os} Bionic -item buster ${space} ${os} Buster -item eoan ${space} ${os} Eoan -choose live_version || goto live_exit - -:bionic -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/bionic-c535c643/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:buster -set squash_url ${live_endpoint}/debian-squash/releases/download/buster-1e606829/filesystem.squashfs -set kernel_url ${live_endpoint}/debian-core-10/releases/download/4.19.67-2+deb10u1-4acbfed0/ -imgfree -kernel ${kernel_url}vmlinuz boot=live fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:eoan -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/eoan-5a6a8fab/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-19.10/releases/download/5.3.0.18.21-aa695b8a/ -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=url url=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 diff --git a/src/live-zorin.ipxe b/src/live-zorin.ipxe deleted file mode 100644 index 37d82085..00000000 --- a/src/live-zorin.ipxe +++ /dev/null @@ -1,44 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -set os Zorin Live -menu ${os} - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap ${os} Versions -item 15 ${space} ${os} 15 -choose live_version || goto live_exit -menu ${os} ${live_version} -item --gap ${os} Flavors -goto ${live_version} - -:15 -item zorin-15-gnome-squash ${space} Zorin 15 Gnome -item zorin-15-xfce-squash ${space} Zorin 15 Xfce -goto flavor_select - -:flavor_select -choose flavor || goto live_menu -echo ${cls} -goto ${flavor} || - -:zorin-15-gnome-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/15-171ddffc/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 15-boot -:zorin-15-xfce-squash -set squash_url ${live_endpoint}/ubuntu-squash/releases/download/15-24926a26/filesystem.squashfs -set kernel_url ${live_endpoint}/ubuntu-core-18.04/releases/download/4.15.0.20.23-91c3d317/ -goto 15-boot - -:15-boot -imgfree -kernel ${kernel_url}vmlinuz ip=dhcp boot=casper netboot=http fetch=${squash_url} initrd=initrd -initrd ${kernel_url}initrd -boot - -:live_exit -clear menu -exit 0 - diff --git a/src/live.ipxe b/src/live.ipxe deleted file mode 100644 index d868c4df..00000000 --- a/src/live.ipxe +++ /dev/null @@ -1,37 +0,0 @@ -#!ipxe - -goto ${menu} || - -:live_menu -menu Live Boot Distributions - Current Arch [ ${arch} ] -iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch} -item --gap Live Boot Distributions -item live-backbox ${space} BackBox -item live-debian ${space} Debian -item live-elementary ${space} elementary OS -item live-fedora ${space} Fedora -item live-kali ${space} Kali -item live-q4os ${space} Q4OS -item live-manjaro ${space} Manjaro -item live-mint ${space} Mint -item live-peppermint ${space} Peppermint -item live-popos ${space} Pop OS -item live-ubuntu ${space} Ubuntu -item live-voyager ${space} Voyager -item live-zorin ${space} Zorin OS -choose menu || goto live_exit -echo ${cls} -goto ${menu} || -iseq ${sigs_enabled} true && goto verify_sigs || goto change_menu - -:verify_sigs -imgverify ${menu}.ipxe ${sigs}${menu}.ipxe.sig || goto error -goto change_menu - -:change_menu -chain ${menu}.ipxe || goto error -goto live_menu - -:live_exit -clear menu -exit 0 diff --git a/src/livegrml.ipxe b/src/livegrml.ipxe deleted file mode 100644 index e8e08b89..00000000 --- a/src/livegrml.ipxe +++ /dev/null @@ -1,51 +0,0 @@ -#!ipxe - -# Grml Live Linux -# https://grml.org - -goto ${menu} - -:livegrml -set os Grml Live Linux -menu ${os} -item --gap Versions -item grml-full ${space} ${os} 2018.12 Full -item grml-small ${space} ${os} 2018.12 Small -choose livegrml_version || goto livegrml_exit -echo ${cls} -goto ${livegrml_version} || -chain ${menu}.ipxe || goto livegrml_exit -goto livegrml_exit - -:grml-full -set util_path download.grml.org/grml64-full_2018.12.iso -set util_file grml64-full_2018.12.iso -goto boot_memdisk - -:grml-small -set util_path download.grml.org/grml64-small_2018.12.iso -set util_file grml64-small_2018.12.iso -goto boot_memdisk - -:boot_memdisk -imgfree -kernel ${memdisk} iso raw -initrd --name ${util_file} http://${util_path} -echo -echo MD5sums: -md5sum memdisk ${util_file} -iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs -:verify_sigs -echo -echo Checking signatures... -imgverify memdisk ${sigs}memdisk.sig || goto error -imgverify ${util_file} ${sigs}${menu}/${util_file}.sig || goto error -echo Signatures verified! -echo -:skip_sigs -boot -goto livegrml_exit - -:livegrml_exit -clear menu -exit 0 diff --git a/src/mageia.ipxe b/src/mageia.ipxe deleted file mode 100644 index 009c815f..00000000 --- a/src/mageia.ipxe +++ /dev/null @@ -1,43 +0,0 @@ -#!ipxe - -# Mageia Operating System -# http://www.mageia.org/ - -# No way to set the network interface by MAC address, let the installer ask the question -isset ${dhcp-server} && set network dhcp || set network static,ip:${ip},netmask:${netmask},gateway:${gateway},dns:${dns} - -goto ${menu} || - -:mageia -set os Mageia -menu Mageia - ${arch} - Image Sig Checks: [${img_sigs_enabled}] -item 7.1 ${os} 7.1 -item cauldron ${os} cauldron -choose version || goto mageia_exit -goto mageia_boot - -:mageia_boot -set dir ${mageia_base_dir}/distrib/${version}/x86_64 && set dir2 isolinux/x86_64 || -iseq ${arch} i386 && set dir ${mageia_base_dir}/distrib/${version}/i586 && set dir2 isolinux/i386 || -set automatic method:http,network:${network},server:${mageia_mirror},directory:/${dir} -imgfree -kernel http://${mageia_mirror}/${dir}/${dir2}/vmlinuz -initrd http://${mageia_mirror}/${dir}/${dir2}/all.rdz -imgargs vmlinuz automatic=${automatic} vga=788 splash=silent ${console} initrd=all.rdz -echo -echo MD5sums: -md5sum vmlinuz all.rdz -iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs -:verify_sigs -echo -echo Checking signatures... -imgverify vmlinuz ${sigs}${dir}/${dir2}/vmlinuz.sig || goto error -imgverify all.rdz ${sigs}${dir}/${dir2}/all.rdz.sig || goto error -echo Signatures verified! -echo -:skip_sigs -boot || goto mageia - -:mageia_exit -clear menu -exit 0 diff --git a/src/memdisk b/src/memdisk deleted file mode 100644 index 8bcf4effe8c27c5e2cc2ae538e02484a93bc9a25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25372 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 diff --git a/src/windows.ipxe b/src/windows.ipxe deleted file mode 100644 index d97145ed..00000000 --- a/src/windows.ipxe +++ /dev/null @@ -1,59 +0,0 @@ -#!ipxe - -# Microsoft Windows -# https://www.microsoft.com - -set win_arch x64 -goto ${menu} || - -:windows -set os Microsoft Windows -clear win_version -menu ${os} -item --gap Installers -item win_install ${space} Load ${os} Installer... -item --gap Options: -item arch_set ${space} Architecture [ ${win_arch} ] -item url_set ${space} Base URL [ ${win_base_url} ] -choose win_version || goto windows_exit -goto ${win_version} - -:arch_set -iseq ${win_arch} x64 && set win_arch x86 || set win_arch x64 -goto windows - -:url_set -echo Set the HTTP URL of an extracted Windows ISO without the trailing slash: -echo e.g. http://www.mydomain.com/windows -echo -echo -n URL: ${} && read win_base_url -echo -echo netboot.xyz will attempt to load the following files: -echo ${win_base_url}/${win_arch}/bootmgr -echo ${win_base_url}/${win_arch}/boot/bcd -echo ${win_base_url}/${win_arch}/boot/boot.sdi -echo ${win_base_url}/${win_arch}/sources/boot.wim -echo -prompt Press any key to return to Windows Menu... -goto windows - -:win_install -isset ${win_base_url} && goto boot || echo URL not set... && goto url_set - -:boot -kernel http://${boot_domain}/wimboot -initrd ${win_base_url}/${win_arch}/bootmgr bootmgr -initrd ${win_base_url}/${win_arch}/boot/bcd bcd -initrd ${win_base_url}/${win_arch}/boot/boot.sdi boot.sdi -initrd ${win_base_url}/${win_arch}/sources/boot.wim boot.wim -md5sum wimboot -iseq ${img_sigs_enabled} true && goto verify_sigs || goto skip_sigs -:verify_sigs -echo -echo Checking wimboot signature... -imgverify wimboot ${sigs}wimboot.sig || goto error -:skip_sigs -boot - -:windows_exit -exit 0