From 09008c2029464cb4411084a5e456325830f09bc9 Mon Sep 17 00:00:00 2001 From: Antony Messerli Date: Sun, 29 Jan 2017 17:20:02 -0600 Subject: [PATCH] Add custom iPXE disk for GCE --- ipxe/disks/netboot.xyz-gce | 67 ++++++++++++++++++++++++++++++++++++++ script/prep-release.sh | 2 +- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 ipxe/disks/netboot.xyz-gce diff --git a/ipxe/disks/netboot.xyz-gce b/ipxe/disks/netboot.xyz-gce new file mode 100644 index 00000000..6a313187 --- /dev/null +++ b/ipxe/disks/netboot.xyz-gce @@ -0,0 +1,67 @@ +#!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 +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/script/prep-release.sh b/script/prep-release.sh index b353f0fb..a54573be 100755 --- a/script/prep-release.sh +++ b/script/prep-release.sh @@ -51,7 +51,7 @@ 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 \ +make bin/ipxe.usb CONFIG=cloud EMBED=../../ipxe/disks/netboot.xyz-gce \ TRUST=ca-ipxe-org.crt,ca-netboot-xyz.crt error_check cp -f bin/ipxe.usb disk.raw