Преглед на файлове

Merge branch 'master' into xenserver

Antony Messerli преди 9 години
родител
ревизия
54462a4113

+ 5 - 0
.travis.yml

@@ -1,6 +1,8 @@
 sudo: true
 language: c
 before_install:
+- openssl aes-256-cbc -K $encrypted_7d306b01dc1f_key -iv $encrypted_7d306b01dc1f_iv -in script/secrets.tar.enc -out script/secrets.tar -d
+- tar xvf script/secrets.tar -C script/
 - sudo apt-get update -qq
 - sudo apt-get install -qq binutils-dev genisoimage liblzma-dev syslinux
 script:
@@ -18,3 +20,6 @@ deploy:
   skip_cleanup: true
   on:
     repo: antonym/netboot.xyz
+notifications:
+  email:
+    - antony@mes.ser.li

+ 1 - 0
README.md

@@ -37,6 +37,7 @@ Full documentation is at ReadTheDocs:
 
 * [Antergos](https://antergos.com)
 * [Arch Linux](https://www.archlinux.org)
+* [Architect Linux](http://sourceforge.net/projects/architect-linux)
 * [CentOS](https://centos.org)
 * [CoreOS](https://coreos.com/)
 * [Debian](https://debian.org)

+ 2 - 2
docs/boot-ipxe.md

@@ -5,7 +5,7 @@
 If you've already compiled your own iPXE, you can load up the netboot.xyz menu easily by entering CTRL-B when prompted setting DHCP and then chainloading iPXE:
 
     dhcp
-    chain --autofree http://boot.netboot.xyz
+    chain --autofree https://boot.netboot.xyz
 
 If you don't have DHCP on your network, you can manually set your network information:
 
@@ -14,4 +14,4 @@ If you don't have DHCP on your network, you can manually set your network inform
     set net0/gateway <gateway>
     set dns <nameserver>
     ifopen net0
-    chain --autofree http://boot.netboot.xyz
+    chain --autofree https://boot.netboot.xyz

+ 1 - 1
docs/boot-iso.md

@@ -1,7 +1,7 @@
 ### Booting from ISO
 
 #### Burning a CD/DVD
-To create a bootable CD-ROM/DVD, burn the ISO image [netboot.xyz-dhcp.iso](http://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.iso) if you have DHCP or [netboot.xyz-static.iso](http://boot.netboot.xyz/ipxe/netboot.xyz-static.iso) if you require manual entry (~1MB in size) to a blank CD-ROM/DVD.  Insert the media into the server, set the proper boot order and boot up.
+To create a bootable CD-ROM/DVD, burn the ISO image [netboot.xyz-dhcp.iso](https://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.iso) if you have DHCP or [netboot.xyz-static.iso](https://boot.netboot.xyz/ipxe/netboot.xyz-static.iso) if you require manual entry (~1MB in size) to a blank CD-ROM/DVD.  Insert the media into the server, set the proper boot order and boot up.
 
 #### Virtual Machine Software
 You can also use these ISOs to boot any sort of VM in Citrix XenServer, VMware ESXi, VMware Fusion, VirtualBox. 

+ 2 - 2
docs/boot-tftp.md

@@ -3,7 +3,7 @@
 If you want to utilize netboot.xyz from your home or office network, it's relatively easy to set up.  It will allow all of your devices on your network to have netboot.xyz available whenever you need it by just changing the boot order on your device, selecting network boot, or manually selecting the device to boot.
 
 #### DHCP Server Setup
-You will have to tell your DHCP server to provide a "next-server", the address of a TFTP server on your network, and a "filename", the [netboot.xyz DHCP boot file](http://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.kpxe).  When your clients boot up, if they are set to network boot, they'll automatically get a valid DHCP address, pull down the netboot.xyz iPXE bootloader and load up the Operating System menu.  
+You will have to tell your DHCP server to provide a "next-server", the address of a TFTP server on your network, and a "filename", the [netboot.xyz DHCP boot file](https://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.kpxe).  When your clients boot up, if they are set to network boot, they'll automatically get a valid DHCP address, pull down the netboot.xyz iPXE bootloader and load up the Operating System menu.  
 
 Example:
 
@@ -22,5 +22,5 @@ If you use dnsmasq you can add this configuration to /etc/dnsmasq.conf:
 
 #### Regular and Undionly Boot Files
 
-If you experiencing issues with the regular [netboot.xyz-dhcp.kpxe](http://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.kpxe) bootloader, you can try and use the [netboot.xyz-dhcp-undionly.kpxe](http://boot.netboot.xyz/ipxe/netboot.xyz-dhcp-undionly.kpxe) bootloader.  The regular bootloader includes common NIC drivers in the iPXE image, while the undionly loader will piggyback off the NIC boot firmware.
+If you experiencing issues with the regular [netboot.xyz-dhcp.kpxe](https://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.kpxe) bootloader, you can try and use the [netboot.xyz-dhcp-undionly.kpxe](https://boot.netboot.xyz/ipxe/netboot.xyz-dhcp-undionly.kpxe) bootloader.  The regular bootloader includes common NIC drivers in the iPXE image, while the undionly loader will piggyback off the NIC boot firmware.
  

+ 2 - 2
docs/boot-usb.md

@@ -4,8 +4,8 @@
 
 Download a netboot.xyz USB disk:
 
-* [dhcp](http://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.usb) - Automatically detects your networking
-* [static](http://boot.netboot.xyz/ipxe/netboot.xyz-static.usb) - Prompts for manual entry of your networking information
+* [dhcp](https://boot.netboot.xyz/ipxe/netboot.xyz-dhcp.usb) - Automatically detects your networking
+* [static](https://boot.netboot.xyz/ipxe/netboot.xyz-static.usb) - Prompts for manual entry of your networking information
 
 ### Creating USB Key on Linux
 

+ 1 - 1
docs/faq.md

@@ -16,7 +16,7 @@ You can read more about my thoughts and possible solutions [here](https://www.re
 #### My distribution uses ISOs for delivery, how can I see if they work?
 You can do a quick check by loading up netboot.xyz in a virtual environment baremetal.  Make sure you have plenty of RAM as you are loading the ISO into RAM.  Then select the iPXE command line and enter the following;
 
-    kernel http://boot.netboot.xyz/memdisk iso raw
+    kernel https://boot.netboot.xyz/memdisk iso raw
     initrd http://url/to/iso
     boot
 

+ 1 - 0
docs/index.md

@@ -41,6 +41,7 @@ You'll need to make sure to have [DOWNLOAD_PROTO_HTTPS](https://github.com/ipxe/
 
 * [Antergos](https://antergos.com)
 * [Arch Linux](https://www.archlinux.org)
+* [Architect Linux](http://sourceforge.net/projects/architect-linux)
 * [CentOS](https://centos.org)
 * [CoreOS](https://coreos.com/)
 * [Debian](https://debian.org)

+ 2 - 2
docs/usage-digitalocean.md

@@ -10,7 +10,7 @@ Tests were done using a [Fedora 23](https://getfedora.org) instance on [Digital
 
 #### Download an iPXE linux kernel
 
-Obtain an iPXE generic kernel [here](http://boot.netboot.xyz/ipxe/generic-ipxe.lkrn) or [compile your own](http://ipxe.org/download) and save it to /boot/generic-ipxe.lkrn.
+Obtain an iPXE generic kernel [here](https://boot.netboot.xyz/ipxe/generic-ipxe.lkrn) or [compile your own](http://ipxe.org/download) and save it to /boot/generic-ipxe.lkrn.
 
 #### Create a netboot.xyz initrd file
 
@@ -26,7 +26,7 @@ Save as /boot/netboot.xyz-initrd (replace your networking information where appr
     set net0/gateway <instance public gateway>
     set dns <instance dns address>
     ifopen net0
-    chain --autofree http://boot.netboot.xyz
+    chain --autofree https://boot.netboot.xyz
 
 #### Add a Grub2 custom entry
 

+ 1 - 1
docs/usage-rackspace.md

@@ -2,4 +2,4 @@
 
 See [boot.rackspace.com](http://boot.rackspace.com) for now.  You can chain to netboot.xyz from there:
 
-    chain --autofree http://boot.netboot.xyz
+    chain --autofree https://boot.netboot.xyz

+ 4 - 2
ipxe/disks/netboot.xyz-dhcp

@@ -1,7 +1,7 @@
 #!ipxe
 
 :start
-set version 1
+set version 1.03
 echo netboot.xyz iPXE loader v${version}
 goto dhcp
 
@@ -22,7 +22,9 @@ echo Attempting chainload of netboot.xyz...
 goto menu || goto failsafe
 
 :menu
-chain --autofree https://boot.netboot.xyz/menu.ipxe
+chain --autofree https://boot.netboot.xyz/menu.ipxe || echo HTTPS appears to have failed... attemping HTTP
+sleep 5
+chain --autofree http://boot.netboot.xyz/menu.ipxe || echo HTTP has failed, localbooting...
 goto boot
 
 :failsafe

+ 4 - 2
ipxe/disks/netboot.xyz-static

@@ -1,7 +1,7 @@
 #!ipxe
 
 :start
-set version 1
+set version 1.03
 echo netboot.xyz iPXE loader v${version}
 goto static
 
@@ -18,7 +18,9 @@ echo Attempting chainload of netboot.xyz...
 goto menu || goto failsafe
 
 :menu
-chain --autofree https://boot.netboot.xyz/menu.ipxe
+chain --autofree https://boot.netboot.xyz/menu.ipxe || echo HTTPS appears to have failed... attemping HTTP
+sleep 5
+chain --autofree http://boot.netboot.xyz/menu.ipxe || echo HTTP has failed, localbooting...
 goto boot
 
 :failsafe

+ 24 - 9
script/prep-release.sh

@@ -21,6 +21,9 @@ 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
 
@@ -39,7 +42,8 @@ mv bin/undionly.kpxe ../../build/ipxe/generic-undionly.kpxe
 # generate netboot.xyz iPXE disks
 for ipxe_config in `ls ../../ipxe/disks/`
 do 
-  make bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe EMBED=../../ipxe/disks/$ipxe_config
+  make bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe \
+  EMBED=../../ipxe/disks/$ipxe_config TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt
   error_check
   mv bin/ipxe.dsk ../../build/ipxe/$ipxe_config.dsk
   mv bin/ipxe.iso ../../build/ipxe/$ipxe_config.iso
@@ -50,14 +54,14 @@ do
 done
 
 # generate EFI iPXE disks
-for ipxe_config in `ls ../../ipxe/disks/`
-do
-  # Remove general.h options for testing, doesn't like COMBOOT
-  rm config/local/general.h
-  make bin-x86_64-efi/ipxe.efi EMBED=../../ipxe/disks/$ipxe_config
-  error_check
-  mv bin-x86_64-efi/ipxe.efi ../../build/ipxe/$ipxe_config.efi
-done
+#for ipxe_config in `ls ../../ipxe/disks/`
+#do
+#  # Remove general.h options for testing, doesn't like COMBOOT
+#  rm config/local/general.h
+#  make bin-x86_64-efi/ipxe.efi EMBED=../../ipxe/disks/$ipxe_config
+#  error_check
+#  mv bin-x86_64-efi/ipxe.efi ../../build/ipxe/$ipxe_config.efi
+#done
 
 # return to root
 cd ../..
@@ -82,6 +86,17 @@ 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
 

BIN
script/secrets.tar.enc


+ 1 - 1
src/antergos.ipxe

@@ -21,4 +21,4 @@ goto antergos_exit
 
 :antergos_exit
 clear menu
-chain linux.ipxe
+exit 0

+ 23 - 0
src/architect.ipxe

@@ -0,0 +1,23 @@
+#!ipxe
+
+# Architect Liunx Operating System
+# http://sourceforge.net/projects/architect-linux/
+
+goto ${menu}
+
+:architect
+set os Architect Linux
+menu ${os} Installers
+item x86_64 ${space} ${os} Latest [ISO]
+choose version || goto architect_exit
+goto architect_boot
+
+:architect_boot
+kernel ${memdisk} iso raw
+initrd http://sourceforge.net/projects/architect-linux/files/latest/download
+boot
+goto architect_exit
+
+:architect_exit
+clear menu
+exit 0

+ 4 - 3
src/archlinux.ipxe

@@ -3,11 +3,13 @@
 # Arch Linux Operating System
 # http://www.archlinux.org
 
+goto ${menu} ||
+
 :archlinux
 menu Arch Linux
 item arch Arch Linux Graphical Menu
 item arch_text Arch Linux Text Menu
-choose version || goto linux_menu
+choose version || goto archlinux_exit
 goto boot
 
 :boot
@@ -16,7 +18,6 @@ set 209:string cfg/${version}.cfg
 set 210:string http://releng.archlinux.org/pxeboot/boot/
 chain ${210:string}pxelinux.0 || goto linux_menu
 
-:linux_menu
+:archlinux_exit
 clear menu
-chain linux.ipxe
 exit 0

+ 6 - 0
src/boot.cfg

@@ -11,3 +11,9 @@ set mirror mirror.rackspace.com
 
 # set location of memdisk
 set memdisk https://${boot_domain}/memdisk
+
+# signature check enabled?
+set sigs_enabled false
+
+# set location of signatures
+set sigs https://${boot_domain}/sigs/

+ 9 - 10
src/bsd.ipxe

@@ -20,21 +20,20 @@ choose menu || goto bsd_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 bsd_exit
+goto bsd_menu
 
 :bsd_exit
 clear menu
-chain menu.ipxe
+exit 0
 
 :changebits
 iseq ${arch} x86_64 && set arch i386 || set arch x86_64
 goto bsd_menu
-
-:openbsd
-chain openbsd.ipxe
-goto bsd_menu
-
-:freebsd
-chain freebsd.ipxe
-goto bsd_menu

+ 0 - 1
src/centos.ipxe

@@ -70,5 +70,4 @@ goto linux_menu
 
 :linux_menu
 clear menu
-chain linux.ipxe
 exit 0

+ 0 - 1
src/coreos.ipxe

@@ -40,5 +40,4 @@ goto coreos
 
 :coreos_exit
 clear menu
-chain menu.ipxe
 exit 0

+ 1 - 1
src/debian.ipxe

@@ -62,4 +62,4 @@ boot
 
 :debian_exit
 clear menu
-chain linux.ipxe
+exit 0

+ 0 - 1
src/fedora.ipxe

@@ -70,5 +70,4 @@ goto boot
 
 :linux_menu
 clear menu
-chain linux.ipxe
 exit 0

+ 1 - 1
src/freebsd.ipxe

@@ -40,4 +40,4 @@ exit
 
 :freebsd_exit
 clear menu
-chain bsd.ipxe
+exit 0

+ 1 - 1
src/freedos.ipxe

@@ -21,4 +21,4 @@ boot
 
 :freedos_exit
 clear menu
-chain menu.ipxe
+exit 0

+ 7 - 1
src/hypervisor.ipxe

@@ -7,9 +7,15 @@ menu Hypervisor Installers - [ ${arch} ]
 item --gap Citrix XenServer
 item xenserver ${space} Citrix XenServer
 choose menu || goto hypervisor_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 hypervisor_exit
 

+ 2 - 2
src/kali.ipxe

@@ -3,7 +3,7 @@
 # Kali Linux
 # http://www.kali.org
 
-goto ${menu}
+goto ${menu} ||
 
 :kali
 set os Kali Linux
@@ -32,4 +32,4 @@ boot
 
 :kali_exit
 clear menu
-chain linux.ipxe
+exit 0

+ 15 - 46
src/linux.ipxe

@@ -5,20 +5,22 @@ goto ${menu} ||
 :linux_menu
 menu Linux Installers - Current Arch [ ${arch} ]
 iseq ${arch} x86_64 && set arch_a amd64 || set arch_a ${arch}
-item --gap Operating Systems:
-item antergos ${space} Antergos
+item --gap Popular Linux Operating Systems:
 item archlinux ${space} Arch Linux
 item centos ${space} CentOS 
-item coreos ${space} CoreOS
 item debian ${space} Debian
 item fedora ${space} Fedora
 item kali ${space} Kali Linux
 item mageia ${space} Mageia
 item opensuse ${space} openSUSE
+item ubuntu ${space} Ubuntu
+item --gap All Others:
+item antergos ${space} Antergos
+item architect ${space} Architect Linux
+item coreos ${space} CoreOS
 item rancheros ${space} RancherOS
 item scientific ${space} Scientific
 item slackware ${space} Slackware
-item ubuntu ${space} Ubuntu
 item tinycore ${space} TinyCoreLinux
 # Options
 item --gap Options:
@@ -27,53 +29,20 @@ item changebits ${space} Architecture: ${arch} (${bits}bit)
 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_exit
+goto linux_menu
 
 :linux_exit
 clear menu
-chain menu.ipxe
+exit 0
 
 :changebits
 iseq ${arch} x86_64 && set arch i386 || set arch x86_64
 goto linux_menu
-
-:antergos
-chain antergos.ipxe
-goto linux_menu
-
-:fedora
-chain fedora.ipxe
-goto linux_menu
-
-:centos
-chain centos.ipxe
-goto linux_menu
-
-:coreos
-chain coreos.ipxe
-goto linux_menu
-
-:debian
-chain debian.ipxe
-goto linux_menu
-
-:ubuntu
-chain ubuntu.ipxe
-goto linux_menu
-
-:opensuse
-chain opensuse.ipxe
-goto linux_menu
-
-:rancheros
-chain rancheros.ipxe
-goto linux_menu
-
-:scientific
-chain scientific.ipxe
-goto linux_menu
-
-:slackware
-chain slackware.ipxe
-goto linux_menu

+ 2 - 2
src/mageia.ipxe

@@ -3,7 +3,7 @@
 # Mageia Operating System
 # http://www.mageia.org/
 
-goto ${menu}
+goto ${menu} ||
 
 :mageia
 set os Mageia
@@ -28,4 +28,4 @@ boot || goto mageia
 
 :mageia_exit
 clear menu
-chain linux.ipxe
+exit 0

+ 11 - 20
src/menu.ipxe

@@ -1,7 +1,6 @@
 #!ipxe
 
 :start
-
 chain --autofree boot.cfg ||
 
 iseq ${cls} serial && goto ignore_cls ||
@@ -32,6 +31,8 @@ item linux ${space} Linux Installers
 item bsd ${space} BSD Installers
 item freedos ${space} FreeDOS Installers
 item hypervisor ${space} Hypervisor Installers
+isset ${github_user} && item --gap Custom Menu: ||
+isset ${github_user} && item nbxyz-custom ${space} ${github_user}'s Custom Menu ||
 item --gap Tools:
 item utils ${space} Utilities
 item shell ${space} iPXE shell
@@ -41,6 +42,13 @@ isset ${menu} && set timeout 0 || set timeout 300000
 choose --timeout ${timeout} --default ${menu} menu || goto local
 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 main_menu
 
@@ -88,23 +96,6 @@ goto main_menu
 iseq ${arch} x86_64 && set arch i386 || set arch x86_64
 goto main_menu
 
-# OS
-:linux
-chain linux.ipxe
-goto main_menu
-
-:bsd
-chain bsd.ipxe
-goto main_menu
-
-:freedos
-chain freedos.ipxe
-goto main_menu
-
-:hypervisor
-chain hypervisor.ipxe
-goto main_menu
-
-:utils
-chain utils.ipxe
+:nbxyz-custom
+chain https://raw.githubusercontent.com/${github_user}/netboot.xyz-custom/master/custom.ipxe || goto error
 goto main_menu

+ 1 - 1
src/openbsd.ipxe

@@ -31,4 +31,4 @@ exit
 
 :openbsd_exit
 clear menu
-chain bsd.ipxe
+exit 0

+ 0 - 1
src/opensuse.ipxe

@@ -26,5 +26,4 @@ boot
 
 :opensuse_exit
 clear menu
-chain linux.ipxe
 exit 0

+ 1 - 1
src/rancheros.ipxe

@@ -24,4 +24,4 @@ boot
 
 :rancheros_exit
 clear menu
-chain linux.ipxe
+exit 0

+ 0 - 1
src/scientific.ipxe

@@ -52,5 +52,4 @@ goto linux_menu
 
 :linux_menu
 clear menu
-chain linux.ipxe
 exit 0

+ 1 - 1
src/tinycore.ipxe

@@ -20,4 +20,4 @@ boot
 
 :tinycore_exit
 clear menu
-chain linux.ipxe
+exit 0

+ 1 - 1
src/ubuntu.ipxe

@@ -67,4 +67,4 @@ boot
 
 :ubuntu_exit
 clear menu
-chain linux.ipxe
+exit 0

+ 21 - 7
src/utils.ipxe

@@ -7,12 +7,14 @@ item clonezilla ${space} Clonezilla
 item dban ${space} DBAN
 item gparted ${space} GParted
 item hdt ${space} Hardware Detection Tool
-item memtest ${space} MemTest86+
+item memtest_420 ${space} Memtest86+ 4.20
+item memtest_501 ${space} Memtest86+ 5.01
 item netbootcd ${space} NetbootCD.us
 item partition_wizard ${space} Partition Wizard
 item pogostick ${space} Pogostick - Offline Windows Password and Registry Editor
 item supergrub ${space} Super Grub2 Disk
 item --gap netboot.xyz tools:
+item nbxyz-custom ${space} Set Github User [user: ${github_user}]
 item testdistro ${space} Test Distribution ISO
 item testpr ${space} Test netboot.xyz branch
 choose --default ${menu} menu || goto utils_exit
@@ -64,17 +66,29 @@ initrd http://www.hdt-project.org/raw-attachment/wiki/hdt-0.5.0/hdt-0.5.2.iso
 boot
 goto utils_exit
 
-:memtest
-chain utils/memtest.bin ${params} && goto main_menu ||
-echo MEMORY ERROR DETECTED! ${errno}
-echo Press any key to continue ...
-read a
+:memtest_420
+chain https://boot.netboot.xyz/utils/memtest86-4.20.bin && goto main_menu ||
 goto utils_exit
 
+:memtest_501
+chain https://boot.netboot.xyz/utils/memtest86-5.01.bin && goto main_menu ||
+goto utils_exit
+
+:nbxyz-custom
+echo EXPERIMENTAL
+echo 
+echo Make sure you have a fork of https://github.com/antonym/netboot.xyz-custom.
+echo You can then customize your fork as needed and set up your own custom options.
+echo Once your username is set, a custom option will appear on the main menu.
+echo
+echo -n Please enter your Github username: ${} && read github_user
+goto utils_exit 
+
 :netbootcd
 kernel http://netbootcd.us/downloads/6.4.1/vmlinuz
 initrd http://netbootcd.us/downloads/6.4.1/nbinit4.gz
 boot
+goto utils_exit
 
 :partition_wizard
 kernel ${memdisk} iso raw
@@ -102,6 +116,7 @@ echo -n URL: ${} && read distro_iso
 kernel ${memdisk} iso raw
 initrd ${distro_iso}
 boot
+goto utils_exit
 
 :testpr
 clear github_user
@@ -120,5 +135,4 @@ goto utils_exit
 
 :utils_exit
 clear menu
-chain menu.ipxe
 exit 0

+ 4 - 3
src/xenserver.ipxe

@@ -11,9 +11,9 @@ set os Citrix XenServer
 menu ${os} 
 item --gap Stable Releases
 item 6.5.0 ${space} ${os} 6.5 (creedence)
-item --gap Test Releases
-item dundee/beta2 ${space} ${os} Beta 2 (dundee)
-item dundee/beta1 ${space} ${os} Beta 1 (dundee)
+#item --gap Test Releases
+#item dundee/beta2 ${space} ${os} Beta 2 (dundee)
+#item dundee/beta1 ${space} ${os} Beta 1 (dundee)
 choose xs_version || goto hypervisor_menu
 goto determine_type
 
@@ -34,6 +34,7 @@ echo
 kernel http://${xs_mirror}/${xs_type}/boot/xen dom0_max_vcpus=1-2 dom0_mem=752M,max:752M com1=115200,8n1 console=com1,vga
 module http://${xs_mirror}/${xs_type}/boot/vmlinuz xencons=hvc console=hvc0 console=tty0 install 
 module http://${xs_mirror}/${xs_type}/install.img
+prompt Please notate http repo above and press any key to continue...
 boot
 goto hypervisor_menu