#!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 ipxe_version ${version} set version {{ boot_version }} set ipxe_cloud_config metal :start echo ${bold}${fg_gre}netboot.xyz ${fg_whi}v${version} for ${fg_red}metal.equinix.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 vlan Manual VLAN 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 :vlan echo VLAN 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 Set VLAN 802.1Q tag [0 to 4094]: ${} && read vlan vcreate --tag ${vlan} net${net} ifconf --configurator dhcp net${net}-${vlan} || echo DHCP failed trying manual && goto netvlan echo Attempting chainload of ${boot_domain}... goto menu || goto failsafe :netvlan echo -n IP: && read net${net}-${vlan}/ip echo -n Subnet mask: && read net${net}-${vlan}/netmask echo -n Gateway: && read net${net}-${vlan}/gateway echo -n DNS: && read dns ifopen net${net}-${vlan} echo Attempting chainload of ${boot_domain}... 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