#!ipxe # Script: live/windows/main.ipxe # ID: 6d8b20f3-80b5-43ad-b9a3-26478255cb84 # For more information, see: # https://ipxe.org/ # https://ipxe.org/scripting ################################# # Script-wide/global variables. # ################################# :set_script_vars isset ${do_debug} || set do_debug 0 isset ${do_serial} || set do_serial 0 set base_url https://boot.netfire.com/ set http_base_url http://boot.netfire.com/ :set_bg iseq ${bg_set} 1 && goto skip_set_bg || echo Setting up menus... # Try different backgrounds sequentially until we find one that works. console --keep --picture ${base_url}bg.png && set bg_set 1 && goto skip_set_bg || console --keep --picture ${base_url}bg_lores.png && set bg_set 1 && goto skip_set_bg || console --keep --picture ${base_url}bg.pnm && set bg_set 1 && goto skip_set_bg || console --keep --picture ${base_url}bg_lores.pnm && set bg_set 1 && goto skip_set_bg || # Finally, fall back to text-only mode. echo Failed to use graphical console; reverting to text-only. console --x 1024 --y 768 || # "Red" xformed to a brighter/robust red) colour --rgb 0xb52a3d 1 || # "Green" xformed to orange) colour --rgb 0xcf6245 2 || # "Yellow" xformed to more of a gold) colour --rgb 0xc7a34d 3 || # "Magenta" xformed to a light purple) colour --rgb 0x6139a9 5 || # "Cyan" xformed to dark blue) colour --rgb 0x000120 6 || ## cpair --foreground 7 --background 5 0 || cpair --foreground 7 --background 6 1 || cpair --foreground 3 --background 6 2 || cpair --foreground 7 --background 6 3 || cpair --foreground 1 --background 6 4 || cpair --foreground 6 --background 1 5 || cpair --foreground 7 --background 6 6 || cpair --foreground 7 --background 6 7 || set bg_set 1 || :skip_set_bg set script_path ${base_url}live/windows/main.ipxe || # If 6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev (this script) is not set, assume this is the entry script. isset ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev} || set 6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev ${script_path} isset ${entry_script} && goto skip_set_entry || set entry_script ${script_path} || :skip_set_entry # Since we are at the beginning of a script, we need to set this to "true". set prev_is_script 1 || ##################################### # End script-wide/global variables. # ##################################### :skip_script_vars ############################################ # Set hardware architecture and # # bitness strings for use in templating. # # Note: # # (U)EFI vs. BIOS can be determined by # # the ${platform} iPXE builtin. # # More information: # # https://ipxe.org/cfg/platform # ############################################ # bits: 64, 32 # # arch0: x86_64, i386, arm64, arm32 # # arch0u: X86_64, I386, ARM64, ARM32 # # arch1: x86_64, x86, arm64, arm32 # # arch1u: X86_64, X86, ARM64, ARM32 # # arch2: amd64, i686, arm64, arm32 # # arch2u: AMD64, I686, ARM64, ARM32 # # ${buildarch}: x86_64, i386, arm64, arm32 # # ${platform}: efi, pcbios, linux # ############################################ :setarch isset ${bits} && goto skiparch || set arch0 ${buildarch} goto setarch-${arch0} || goto exiterr :setarch-i386 # If true, it's a 32-bit build but a 64-bit CPU, so... cpuid --ext 29 && goto setarch-x86_64 || # Otherwise definitely 32-bit. set bits 32 set arch0u I386 set arch1 x86 set arch1u X86 set arch2 i686 set arch2u I686 goto skiparch :setarch-x86_64 iseq ${arch0} i386 && set arch0 x86_64 || set bits 64 set arch0u X86_64 set arch1 x86_64 set arch1u ${arch0u} set arch2 amd64 set arch2u AMD64 goto skiparch :setarch-arm32 set bits 32 set arch0u ARM32 set arch1 arm32 set arch1u ${arch0u} set arch2 ${arch1} set arch2u ${arch0u} goto skiparch :setarch-arm64 set bits 64 set arch0u ARM64 set arch1 arm64 set arch1u ${arch0u} set arch2 ${arch1} set arch2u ${arch0u} goto skiparch ########################################## # End hardware architecture and bitness. # ########################################## :skiparch ######################### # Convenience variables # ######################### :setconvenience isset ${esc} && goto skipconvenience || set esc:hex 1b set cls ${esc:string}[2J ############################# # End convenience variables # ############################# :skipconvenience ############################################### # Boot options for all (supported) MenuItems. # ############################################### :getbootopts # Bootopts for Bob.Omb's Modified Win10PEx64 ## "Live"/Active isset ${2f270072-0397-40c0-b7a0-ed19b02615c3/bootopts} || set 2f270072-0397-40c0-b7a0-ed19b02615c3/bootopts rawwim ## Original set 2f270072-0397-40c0-b7a0-ed19b02615c3/orig_bootopts rawwim # Bootopts for HBCD (Hiren's Boot CD PE) ## "Live"/Active isset ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/bootopts} || set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/bootopts rawwim ## Original set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/orig_bootopts rawwim ##################### # End boot options. # ##################### :skipgetbootopts ########################## # Target Selection/flow. # ########################## :findtarget # If we previously loaded (and left/attempted to leave) a menu within this script, # ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} will be set to that menu's label. # It will be unset/null (${} -- `isset ${foo} == false` is the same as `iseq ${foo} == ${}` if it is unset.) # if this is the first time loading this script. isset ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} && goto ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} || ######################## # End Target Selection # ######################## :skipfindtarget ##################### # Menu definitions. # ##################### :menudefs ############## # BEGIN MENU # ############## :5ab2f82f-defb-4653-aa30-255f0405895a # Menu: "Windows-Based Live Environments" # Label: 5ab2f82f-defb-4653-aa30-255f0405895a set prev_menu 5ab2f82f-defb-4653-aa30-255f0405895a set 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt 5ab2f82f-defb-4653-aa30-255f0405895a # Script main/default menu. set prev_is_script 1 menu Windows-Based Live Environments item --key b 2f270072-0397-40c0-b7a0-ed19b02615c3 (b) Bob.Omb's Modified Win10PEx64 set 2f270072-0397-40c0-b7a0-ed19b02615c3/prev 5ab2f82f-defb-4653-aa30-255f0405895a item --key h 77c0abf9-5d58-41ad-a3e3-94172a7f38a7 (h) HBCD (Hiren's Boot CD PE) set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/prev 5ab2f82f-defb-4653-aa30-255f0405895a item --gap item --key 0x147e 5ab2f82f-defb-4653-aa30-255f0405895a_help (F8) Help > set 5ab2f82f-defb-4653-aa30-255f0405895a_help/prev 5ab2f82f-defb-4653-aa30-255f0405895a item --key 0x157e 5ab2f82f-defb-4653-aa30-255f0405895a_cfg (F9) Configure boot options for item(s) above set 5ab2f82f-defb-4653-aa30-255f0405895a_cfg/prev 5ab2f82f-defb-4653-aa30-255f0405895a item --key 0x1b previous (ESC) Previous menu item --key 0x167e main_menu (F10) Main Menu ... choose --default 2f270072-0397-40c0-b7a0-ed19b02615c3 target || goto ${target} || goto ${5ab2f82f-defb-4653-aa30-255f0405895a/prev} || goto previous ############ # END MENU # ############ ###################### # BEGIN SUBMENU HELP # ###################### # Menu: "Windows-Based Live Environments" (HELP) # Label: 5ab2f82f-defb-4653-aa30-255f0405895a :5ab2f82f-defb-4653-aa30-255f0405895a_help set prev_menu 5ab2f82f-defb-4653-aa30-255f0405895a_help set 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt 5ab2f82f-defb-4653-aa30-255f0405895a_help menu Windows-Based Live Environments Help item 2f270072-0397-40c0-b7a0-ed19b02615c3_help Bob.Omb's Modified Win10PEx64 > set 2f270072-0397-40c0-b7a0-ed19b02615c3/prev 5ab2f82f-defb-4653-aa30-255f0405895a_help item 77c0abf9-5d58-41ad-a3e3-94172a7f38a7_help HBCD (Hiren's Boot CD PE) > set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/prev 5ab2f82f-defb-4653-aa30-255f0405895a_help item --gap item --key 0x1b previous (ESC) Previous menu item --key 0x167e main_menu (F10) Main Menu ... choose target || goto ${target} || goto ${5ab2f82f-defb-4653-aa30-255f0405895a_help/prev} || goto previous #################### # END SUBMENU HELP # #################### ######################## # BEGIN SUBMENU CONFIG # ######################## # Menu: "Windows-Based Live Environments" (CONFIGURATION) # Label: 5ab2f82f-defb-4653-aa30-255f0405895a :5ab2f82f-defb-4653-aa30-255f0405895a_cfg set prev_menu 5ab2f82f-defb-4653-aa30-255f0405895a_cfg set 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt 5ab2f82f-defb-4653-aa30-255f0405895a_cfg menu Windows-Based Live Environments Configuration item 2f270072-0397-40c0-b7a0-ed19b02615c3_cfg Bob.Omb's Modified Win10PEx64 > set 2f270072-0397-40c0-b7a0-ed19b02615c3/prev 5ab2f82f-defb-4653-aa30-255f0405895a_cfg item 77c0abf9-5d58-41ad-a3e3-94172a7f38a7_cfg HBCD (Hiren's Boot CD PE) > set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/prev 5ab2f82f-defb-4653-aa30-255f0405895a_cfg item --gap item --key 0x1b previous (ESC) Previous menu item --key 0x167e main_menu (F10) Main Menu ... choose target || goto ${target} || goto ${5ab2f82f-defb-4653-aa30-255f0405895a_cfg/prev} || goto previous ###################### # END SUBMENU CONFIG # ###################### ################# # BEGIN ENTRIES # ################# # Entries for menu "Windows-Based Live Environments" (5ab2f82f-defb-4653-aa30-255f0405895a) ############### # BEGIN ENTRY # ############### # Entry: "Bob.Omb's Modified Win10PEx64" # Label: 2f270072-0397-40c0-b7a0-ed19b02615c3 # Type: ItemTypeWimboot # https://www.fcportables.com/modified-win10pe/ # The name may be an eyesore, but this is generally considered the "best" WinPE build out there. :2f270072-0397-40c0-b7a0-ed19b02615c3 set prev_is_script 0 kernel ${base_url}wimboot ${2f270072-0397-40c0-b7a0-ed19b02615c3/bootopts} || goto previous initrd ${base_url}loop/bob.omb/efi/microsoft/boot/bcd BCD || goto previous initrd ${base_url}loop/bob.omb/Boot/boot.sdi boot.sdi || goto previous initrd ${base_url}loop/bob.omb/sources/boot.wim boot.wim || goto previous boot || goto ${2f270072-0397-40c0-b7a0-ed19b02615c3/prev} || goto previous ############# # END ENTRY # ############# #################### # BEGIN ENTRY HELP # #################### # Entry: "Bob.Omb's Modified Win10PEx64" (HELP) # Label: 2f270072-0397-40c0-b7a0-ed19b02615c3 # Type: ItemTypeWimboot # https://www.fcportables.com/modified-win10pe/ # The name may be an eyesore, but this is generally considered the "best" WinPE build out there. :2f270072-0397-40c0-b7a0-ed19b02615c3_help set prev_is_script 0 set 2f270072-0397-40c0-b7a0-ed19b02615c3_help/prev 2f270072-0397-40c0-b7a0-ed19b02615c3 echo Bob.Omb's Modified Win10PEx64: echo The name may be an eyesore, but this is generally considered the "best" WinPE build out there. prompt (Press any key to exit) goto ${2f270072-0397-40c0-b7a0-ed19b02615c3/prev} || goto previous ################## # END ENTRY HELP # ################## ###################### # BEGIN ENTRY CONFIG # ###################### # Entry: "Bob.Omb's Modified Win10PEx64" (CONFIGURATION) # Label: 2f270072-0397-40c0-b7a0-ed19b02615c3 # Type: ItemTypeWimboot # https://www.fcportables.com/modified-win10pe/ # The name may be an eyesore, but this is generally considered the "best" WinPE build out there. :2f270072-0397-40c0-b7a0-ed19b02615c3_cfg set prev_is_script 0 echo Set custom boot options for Bob.Omb's Modified Win10PEx64 below. echo Leave blank to use the currently configured options. echo Use the string "%DEFAULT%" (without quotes) to reset to the default. echo echo CURRENT: echo ${2f270072-0397-40c0-b7a0-ed19b02615c3/bootopts} echo echo DEFAULT: echo ${2f270072-0397-40c0-b7a0-ed19b02615c3/orig_bootopts} echo echo -n Boot options: ${} && read user_bootopts || goto prev_menu_2f270072-0397-40c0-b7a0-ed19b02615c3_cfg iseq ${user_bootopts} ${} && goto prev_menu_2f270072-0397-40c0-b7a0-ed19b02615c3_cfg || iseq ${user_bootopts} %DEFAULT% && set 2f270072-0397-40c0-b7a0-ed19b02615c3/bootopts ${2f270072-0397-40c0-b7a0-ed19b02615c3/orig_bootopts} && goto prev_menu_2f270072-0397-40c0-b7a0-ed19b02615c3_cfg || set 2f270072-0397-40c0-b7a0-ed19b02615c3/bootopts ${user_bootopts} && goto ${2f270072-0397-40c0-b7a0-ed19b02615c3/prev} || goto previous #################### # END ENTRY CONFIG # #################### ############### # BEGIN ENTRY # ############### # Entry: "HBCD (Hiren's Boot CD PE)" # Label: 77c0abf9-5d58-41ad-a3e3-94172a7f38a7 # Type: ItemTypeWimboot # https://www.hirensbootcd.org/ # Hiren's Boot CD originally was originally one of the liveboot repair staples. # It has ceased development since 2021 and since been revitalized under Hiren's Boot CD PE, which uses WinPE instead of Linux/DOS. :77c0abf9-5d58-41ad-a3e3-94172a7f38a7 set prev_is_script 0 kernel ${base_url}wimboot ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/bootopts} || goto previous initrd ${base_url}loop/hbcdpe/efi/microsoft/boot/bcd BCD || goto previous initrd ${base_url}loop/hbcdpe/boot/boot.sdi boot.sdi || goto previous initrd ${base_url}loop/_modified/hirens/boot.wim boot.wim || goto previous boot || goto ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/prev} || goto previous ############# # END ENTRY # ############# #################### # BEGIN ENTRY HELP # #################### # Entry: "HBCD (Hiren's Boot CD PE)" (HELP) # Label: 77c0abf9-5d58-41ad-a3e3-94172a7f38a7 # Type: ItemTypeWimboot # https://www.hirensbootcd.org/ # Hiren's Boot CD originally was originally one of the liveboot repair staples. # It has ceased development since 2021 and since been revitalized under Hiren's Boot CD PE, which uses WinPE instead of Linux/DOS. :77c0abf9-5d58-41ad-a3e3-94172a7f38a7_help set prev_is_script 0 set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7_help/prev 77c0abf9-5d58-41ad-a3e3-94172a7f38a7 echo HBCD (Hiren's Boot CD PE): echo Hiren's Boot CD originally was originally one of the liveboot repair staples. echo It has ceased development since 2021 and since been revitalized under Hiren's Boot CD PE, which uses WinPE instead of Linux/DOS. prompt (Press any key to exit) goto ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/prev} || goto previous ################## # END ENTRY HELP # ################## ###################### # BEGIN ENTRY CONFIG # ###################### # Entry: "HBCD (Hiren's Boot CD PE)" (CONFIGURATION) # Label: 77c0abf9-5d58-41ad-a3e3-94172a7f38a7 # Type: ItemTypeWimboot # https://www.hirensbootcd.org/ # Hiren's Boot CD originally was originally one of the liveboot repair staples. # It has ceased development since 2021 and since been revitalized under Hiren's Boot CD PE, which uses WinPE instead of Linux/DOS. :77c0abf9-5d58-41ad-a3e3-94172a7f38a7_cfg set prev_is_script 0 echo Set custom boot options for HBCD (Hiren's Boot CD PE) below. echo Leave blank to use the currently configured options. echo Use the string "%DEFAULT%" (without quotes) to reset to the default. echo echo CURRENT: echo ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/bootopts} echo echo DEFAULT: echo ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/orig_bootopts} echo echo -n Boot options: ${} && read user_bootopts || goto prev_menu_77c0abf9-5d58-41ad-a3e3-94172a7f38a7_cfg iseq ${user_bootopts} ${} && goto prev_menu_77c0abf9-5d58-41ad-a3e3-94172a7f38a7_cfg || iseq ${user_bootopts} %DEFAULT% && set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/bootopts ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/orig_bootopts} && goto prev_menu_77c0abf9-5d58-41ad-a3e3-94172a7f38a7_cfg || set 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/bootopts ${user_bootopts} && goto ${77c0abf9-5d58-41ad-a3e3-94172a7f38a7/prev} || goto previous #################### # END ENTRY CONFIG # #################### # End entries for menu "Windows-Based Live Environments" (5ab2f82f-defb-4653-aa30-255f0405895a) ############### # END ENTRIES # ############### ######################### # End menu definitions. # ######################### :skipmenudefs ###################################### # Menu navigation and exit handling. # ###################################### :previous iseq ${do_debug} 1 && goto prev_debug || goto prev_no_debug :prev_debug ## Debugging ## echo cls: ${cls} echo prev_is_script: ${prev_is_script} echo 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt: ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} echo main_menu: ${main_menu} echo prev_menu: ${prev_menu} echo prev_menu (dereferenced); ${prev_menu}/prev: ${${prev_menu}/prev} echo Script live/windows/main.ipxe (current script): # The "${} ${} " is to force two spaces. They'd be trimmed otherwise. echo ${} ${} 6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev: ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev} echo ${} ${} 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt: ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} echo Menus (local to this script) (A blank /prev tends to indicate script's default/entry menu): echo ${} ${} 5ab2f82f-defb-4653-aa30-255f0405895a ("Windows-Based Live Environments") echo ${} ${} ${} ${} 5ab2f82f-defb-4653-aa30-255f0405895a/prev: ${5ab2f82f-defb-4653-aa30-255f0405895a/prev} echo ${} ${} ${} ${} 5ab2f82f-defb-4653-aa30-255f0405895a/tgt: ${5ab2f82f-defb-4653-aa30-255f0405895a/tgt} echo target: ${target} echo main_menu: ${main_menu} prompt (press any key to continue to arch) echo echo bits: 64, 32 echo arch0: x86_64, i386, arm64, arm32 echo arch0u: X86_64, I386, ARM64, ARM32 echo arch1: x86_64, x86, arm64, arm32 echo arch1u: X86_64, X86, ARM64, ARM32 echo arch2: amd64, i686, arm64, arm32 echo arch2u: AMD64, I686, ARM64, ARM32 echo buildarch: x86_64, i386, arm64, arm32 echo platform: efi, pcbios, linux echo echo bits, arch0, arch0u, arch1, arch1u, arch2, arch2u, buildarch, platform: echo ${bits}, ${arch0}, ${arch0u}, ${arch1}, ${arch1u}, ${arch2}, ${arch2u}, ${buildarch}, ${platform} echo # ECHO DEBUG OF PREV_NO_DEBUG HERE prompt (press any key to continue regular previous target) :prev_no_debug :prev_test0 # If prev_is_script is true and prev_6d8b20f3-80b5-43ad-b9a3-26478255cb84 is set and is this script, # assume exit (as this is probably entry_script, and "previous" dest in this logic tree is to actually exit). # Otherwise continue. iseq ${do_debug} 1 && prompt (PREVIOUS: prev_test0) || iseq ${prev_is_script} 1 && iseq ${prev_6d8b20f3-80b5-43ad-b9a3-26478255cb84} ${script_path} && exit || :prev_test1 # If 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt is set and prev_is_script is false, go to menu in this script - otherwise continue. iseq ${do_debug} 1 && prompt (PREVIOUS: prev_test1) || iseq ${prev_is_script} 0 && isset ${${prev_menu}/prev} && goto ${${prev_menu}/prev} || :prev_test2 # If prev_is_script is set, continue to prev_test3. Otherwise, set to true (default for scripts) and # go to 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt (otherwise continue to prev_test3). # This is in case prev_test1 fails but should have succeeded. iseq ${do_debug} 1 && prompt (PREVIOUS: prev_test2) || isset ${prev_is_script} && goto prev_test3 || set prev_is_script 1 && isset ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} && goto ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} || :prev_test3 # If prev_is_script is 1 (true), our previous menu is in another script so skip to chainloading that. # Otherwise, use this script's last set target. iseq ${do_debug} 1 && prompt (PREVIOUS: prev_test3) || iseq ${prev_is_script} 1 && goto prev_last || isset ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} && goto ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt} || :prev_last # If prev_is_script is true, then we need to go to ${prev_6d8b20f3-80b5-43ad-b9a3-26478255cb84}. The target and exiterr gotos are fallbacks. iseq ${do_debug} 1 && prompt (PREVIOUS: prev_last; chain to ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev}) && prompt (press any key to continue) || chain ${6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev} || goto ${target} || goto exiterr :exiterr echo ERROR ENCOUNTERED iseq ${do_debug} 1 && sleep 2 || exit 1 :exitsuccess exit 0 :exit goto exit_${platform} :exit_efi # We exit 1 instead of just exit (exit with error vs. exit without error) so some broken UEFI will boot the "next" device. exit 0 :exit_pcbios # Boot the "first hard disk". Unpredictable, but so's BIOS lol. sanboot --no-describe --drive 0x80 || # TODO: https://ipxe.org/appnote/work_around_bios_halting_on_ipxe_exit ? exit 1 #exit :main_menu goto ${main_menu} || chain ${entry_script} || goto previous :clear_all # Clear dynamic session-based variables. imgfree || clear do_debug clear bg_set clear prev_is_script clear 6d8b20f3-80b5-43ad-b9a3-26478255cb84/prev clear 6d8b20f3-80b5-43ad-b9a3-26478255cb84/tgt clear main_menu clear ${prev_menu}/prev clear prev_menu clear 5ab2f82f-defb-4653-aa30-255f0405895a/prev clear 5ab2f82f-defb-4653-aa30-255f0405895a/tgt clear target clear main_menu clear bits clear arch0 clear arch0u clear arch1 clear arch1u clear arch2 clear arch2u clear esc clear cls clear 2f270072-0397-40c0-b7a0-ed19b02615c3/bootopts clear 2f270072-0397-40c0-b7a0-ed19b02615c3/orig_bootopts clear 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/bootopts clear 77c0abf9-5d58-41ad-a3e3-94172a7f38a7/orig_bootopts chain --autofree --replace ${entry_script} || goto exiterr :ipxe_shell echo ${cls} echo This is the NetFire NetBoot shell. echo Use the 'help' command for a list of possible commands. echo Exit back to the menu by executing the command 'exit'. shell || goto exiterr goto previous ###################################### # End menu navigation/exit handling. # ######################################