|
#!ipxe
ifopen net0
ifstat
set getfile tinycore.ipxe
set menu-timeout 8000
set menu-default dhcpserver
:boot
dhcp
prompt --key 0x02 --timeout 2000 Press Ctrl-B for the iPXE command line... && shell ||
chain file:/pxeboot/${getfile} || goto netboot
:netboot
set bootfile ${filename}
set serverip ${dhcp-server}|${proxydhcp/dhcp-server}|${proxydhcp/next-server}
chain tftp://${dhcp-server}/${getfile} || chain tftp://${proxydhcp/dhcp-server}/${getfile} ||
goto start
:menu
goto start
:start
menu Choose An Existing Server! Serverip:${serverip} bootfile: ${getfile}
item --gap -- --------------------------------PXE BOOT-----------------------------
item dhcpserver ${dhcp-server}
item proxydhcp ${proxydhcp/dhcp-server}
item gitcloud Cloud Boot
item retry set filename
item --gap -- ---------------------------- Advanced options -----------------------
item --key c config Configure settings -- c
item --key p pxelinux Load PXELinux menu -- p
item shell Drop to iPXE shell
item reboot Reboot computer
item --key x exit Exit iPXE and continue BIOS boot -- x
choose --timeout ${menu-timeout} --default ${menu-default} selected
goto ${selected}
:dhcpserver
echo ${dhcp-server}/${getfile}
chain tftp://${dhcp-server}/${getfile} || set menu-default proxydhcp ||
goto start
:proxydhcp
echo ${proxydhcp/dhcp-server}/${getfile}
chain tftp://${proxydhcp/dhcp-server}/${getfile} || set menu-default gitcloud ||
goto start
:gitcloud
echo Cloud Boot
chain https://raw.githubusercontent.com/zwj4031/netboot/master/${getfile} || set menu-default retry ||
goto start
:retry
console
echo set Filename
read getfile
set menu-default dhcpserver
goto start
:shell
echo Type 'exit' to get the back to the menu
shell
goto start
:failed
echo Booting failed, dropping to shell
goto shell
:reboot
reboot
:exit
exit
:config
config
goto start
这是我这几天琢磨的脚本,在研究研究有没有可以改进的。 |
|