netboot.xyz/ipxe/disks/netboot.xyz-packet
Antony Messerli adaf5b50ba Generate packet x86_64 efi disk
For x86_64 systems with UEFI, use the efi disk,
else leverage the legacy kpxe disk

Fixes https://github.com/antonym/netboot.xyz/issues/383
2019-11-05 18:08:29 -06:00

70 lines
1.6 KiB
Plaintext

#!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