#!ipxe # Script: live/linux/sysresc.ipxe # ID: 224f8cb6-c347-456e-ac89-d3dd5f328399 # 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/linux/sysresc.ipxe || # If 224f8cb6-c347-456e-ac89-d3dd5f328399/prev (this script) is not set, assume this is the entry script. isset ${224f8cb6-c347-456e-ac89-d3dd5f328399/prev} || set 224f8cb6-c347-456e-ac89-d3dd5f328399/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 Normal Boot ## "Live"/Active isset ${41d9407e-f068-4d05-b22b-09c49d869582/bootopts} || set 41d9407e-f068-4d05-b22b-09c49d869582/bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ ## Original set 41d9407e-f068-4d05-b22b-09c49d869582/orig_bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ # Bootopts for Perform Checksum ## "Live"/Active isset ${452915de-5198-402b-b08c-dc6a887be954/bootopts} || set 452915de-5198-402b-b08c-dc6a887be954/bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ checksum ## Original set 452915de-5198-402b-b08c-dc6a887be954/orig_bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ checksum # Bootopts for Simple/Basic Video ## "Live"/Active isset ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts} || set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ nomodeset ## Original set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/orig_bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ nomodeset # Bootopts for Find Installed Linux System ## "Live"/Active isset ${c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts} || set c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ findroot ## Original set c66363d7-aeb2-451d-a0dc-41124698fec3/orig_bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ findroot # Bootopts for Low-Level Rescue System ## "Live"/Active isset ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts} || set 2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ break ## Original set 2ef31e08-c7e4-428c-9093-e0c6b0d17044/orig_bootopts initrd=sysresccd.img ip=dhcp BOOTIF=${netX/mac} archisobasedir=sysresccd archisolabel=RESCUE905 iomem=relaxed rootcryptpass=$6$rounds=1000000$8Lpa7wUSlsEfUDEe$xl/0km886Pujmp2w00IbxT81ekvZljED1Fe2FProldQiO/OzpT6urmUeXZ4liDMwhULlha66jYrljy5oHOiaq0 nofirewall archiso_http_srv=${base_url}loop/sysresc/ break ##################### # End boot options. # ##################### :skipgetbootopts ########################## # Target Selection/flow. # ########################## :findtarget # If we previously loaded (and left/attempted to leave) a menu within this script, # ${224f8cb6-c347-456e-ac89-d3dd5f328399/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 ${224f8cb6-c347-456e-ac89-d3dd5f328399/tgt} && goto ${224f8cb6-c347-456e-ac89-d3dd5f328399/tgt} || ######################## # End Target Selection # ######################## :skipfindtarget ##################### # Menu definitions. # ##################### :menudefs ############## # BEGIN MENU # ############## :058a560b-74cb-4379-b8c9-4faa1f51f898 # Menu: "Sysresc (System Rescue CD)" # Label: 058a560b-74cb-4379-b8c9-4faa1f51f898 set prev_menu 058a560b-74cb-4379-b8c9-4faa1f51f898 set 224f8cb6-c347-456e-ac89-d3dd5f328399/tgt 058a560b-74cb-4379-b8c9-4faa1f51f898 # Script main/default menu. set prev_is_script 1 menu Sysresc (System Rescue CD) item --key n 41d9407e-f068-4d05-b22b-09c49d869582 (n) Normal Boot set 41d9407e-f068-4d05-b22b-09c49d869582/prev 058a560b-74cb-4379-b8c9-4faa1f51f898 item --key p 452915de-5198-402b-b08c-dc6a887be954 (p) Perform Checksum set 452915de-5198-402b-b08c-dc6a887be954/prev 058a560b-74cb-4379-b8c9-4faa1f51f898 item --key s 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc (s) Simple/Basic Video set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/prev 058a560b-74cb-4379-b8c9-4faa1f51f898 item --key f c66363d7-aeb2-451d-a0dc-41124698fec3 (f) Find Installed Linux System set c66363d7-aeb2-451d-a0dc-41124698fec3/prev 058a560b-74cb-4379-b8c9-4faa1f51f898 item --key l 2ef31e08-c7e4-428c-9093-e0c6b0d17044 (l) Low-Level Rescue System set 2ef31e08-c7e4-428c-9093-e0c6b0d17044/prev 058a560b-74cb-4379-b8c9-4faa1f51f898 item --gap item --key 0x147e 058a560b-74cb-4379-b8c9-4faa1f51f898_help (F8) Help > set 058a560b-74cb-4379-b8c9-4faa1f51f898_help/prev 058a560b-74cb-4379-b8c9-4faa1f51f898 item --key 0x157e 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg (F9) Configure boot options for item(s) above set 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg/prev 058a560b-74cb-4379-b8c9-4faa1f51f898 item --key 0x1b previous (ESC) Previous menu item --key 0x167e main_menu (F10) Main Menu ... choose target || goto ${target} || goto ${058a560b-74cb-4379-b8c9-4faa1f51f898/prev} || goto previous ############ # END MENU # ############ ###################### # BEGIN SUBMENU HELP # ###################### # Menu: "Sysresc (System Rescue CD)" (HELP) # Label: 058a560b-74cb-4379-b8c9-4faa1f51f898 :058a560b-74cb-4379-b8c9-4faa1f51f898_help set prev_menu 058a560b-74cb-4379-b8c9-4faa1f51f898_help set 224f8cb6-c347-456e-ac89-d3dd5f328399/tgt 058a560b-74cb-4379-b8c9-4faa1f51f898_help menu Sysresc (System Rescue CD) Help item 41d9407e-f068-4d05-b22b-09c49d869582_help Normal Boot > set 41d9407e-f068-4d05-b22b-09c49d869582/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_help item 452915de-5198-402b-b08c-dc6a887be954_help Perform Checksum > set 452915de-5198-402b-b08c-dc6a887be954/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_help item 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_help Simple/Basic Video > set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_help item c66363d7-aeb2-451d-a0dc-41124698fec3_help Find Installed Linux System > set c66363d7-aeb2-451d-a0dc-41124698fec3/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_help item 2ef31e08-c7e4-428c-9093-e0c6b0d17044_help Low-Level Rescue System > set 2ef31e08-c7e4-428c-9093-e0c6b0d17044/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_help item --gap item --key 0x1b previous (ESC) Previous menu item --key 0x167e main_menu (F10) Main Menu ... choose target || goto ${target} || goto ${058a560b-74cb-4379-b8c9-4faa1f51f898_help/prev} || goto previous #################### # END SUBMENU HELP # #################### ######################## # BEGIN SUBMENU CONFIG # ######################## # Menu: "Sysresc (System Rescue CD)" (CONFIGURATION) # Label: 058a560b-74cb-4379-b8c9-4faa1f51f898 :058a560b-74cb-4379-b8c9-4faa1f51f898_cfg set prev_menu 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg set 224f8cb6-c347-456e-ac89-d3dd5f328399/tgt 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg menu Sysresc (System Rescue CD) Configuration item 41d9407e-f068-4d05-b22b-09c49d869582_cfg Normal Boot > set 41d9407e-f068-4d05-b22b-09c49d869582/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg item 452915de-5198-402b-b08c-dc6a887be954_cfg Perform Checksum > set 452915de-5198-402b-b08c-dc6a887be954/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg item 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_cfg Simple/Basic Video > set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg item c66363d7-aeb2-451d-a0dc-41124698fec3_cfg Find Installed Linux System > set c66363d7-aeb2-451d-a0dc-41124698fec3/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg item 2ef31e08-c7e4-428c-9093-e0c6b0d17044_cfg Low-Level Rescue System > set 2ef31e08-c7e4-428c-9093-e0c6b0d17044/prev 058a560b-74cb-4379-b8c9-4faa1f51f898_cfg item --gap item --key 0x1b previous (ESC) Previous menu item --key 0x167e main_menu (F10) Main Menu ... choose target || goto ${target} || goto ${058a560b-74cb-4379-b8c9-4faa1f51f898_cfg/prev} || goto previous ###################### # END SUBMENU CONFIG # ###################### ################# # BEGIN ENTRIES # ################# # Entries for menu "Sysresc (System Rescue CD)" (058a560b-74cb-4379-b8c9-4faa1f51f898) ############### # BEGIN ENTRY # ############### # Entry: "Normal Boot" # Label: 41d9407e-f068-4d05-b22b-09c49d869582 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Boot from live media, elements are loaded on-demand :41d9407e-f068-4d05-b22b-09c49d869582 set prev_is_script 0 iseq ${do_serial} 1 && kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${41d9407e-f068-4d05-b22b-09c49d869582/bootopts} console=tty1 console=ttyS0,9600n8 || kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${41d9407e-f068-4d05-b22b-09c49d869582/bootopts} || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/intel_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/amd_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/x86_64/sysresccd.img || goto previous boot || goto ${41d9407e-f068-4d05-b22b-09c49d869582/prev} || goto previous ############# # END ENTRY # ############# #################### # BEGIN ENTRY HELP # #################### # Entry: "Normal Boot" (HELP) # Label: 41d9407e-f068-4d05-b22b-09c49d869582 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Boot from live media, elements are loaded on-demand :41d9407e-f068-4d05-b22b-09c49d869582_help set prev_is_script 0 set 41d9407e-f068-4d05-b22b-09c49d869582_help/prev 41d9407e-f068-4d05-b22b-09c49d869582 echo Normal Boot: echo Boot from live media, elements are loaded on-demand prompt (Press any key to exit) goto ${41d9407e-f068-4d05-b22b-09c49d869582/prev} || goto previous ################## # END ENTRY HELP # ################## ###################### # BEGIN ENTRY CONFIG # ###################### # Entry: "Normal Boot" (CONFIGURATION) # Label: 41d9407e-f068-4d05-b22b-09c49d869582 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Boot from live media, elements are loaded on-demand :41d9407e-f068-4d05-b22b-09c49d869582_cfg set prev_is_script 0 echo Set custom boot options for Normal Boot 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 ${41d9407e-f068-4d05-b22b-09c49d869582/bootopts} echo echo DEFAULT: echo ${41d9407e-f068-4d05-b22b-09c49d869582/orig_bootopts} echo echo -n Boot options: ${} && read user_bootopts || goto prev_menu_41d9407e-f068-4d05-b22b-09c49d869582_cfg iseq ${user_bootopts} ${} && goto prev_menu_41d9407e-f068-4d05-b22b-09c49d869582_cfg || iseq ${user_bootopts} %DEFAULT% && set 41d9407e-f068-4d05-b22b-09c49d869582/bootopts ${41d9407e-f068-4d05-b22b-09c49d869582/orig_bootopts} && goto prev_menu_41d9407e-f068-4d05-b22b-09c49d869582_cfg || set 41d9407e-f068-4d05-b22b-09c49d869582/bootopts ${user_bootopts} && goto ${41d9407e-f068-4d05-b22b-09c49d869582/prev} || goto previous #################### # END ENTRY CONFIG # #################### ############### # BEGIN ENTRY # ############### # Entry: "Perform Checksum" # Label: 452915de-5198-402b-b08c-dc6a887be954 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Boot files are checked for integrity/corruption :452915de-5198-402b-b08c-dc6a887be954 set prev_is_script 0 iseq ${do_serial} 1 && kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${452915de-5198-402b-b08c-dc6a887be954/bootopts} console=tty1 console=ttyS0,9600n8 || kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${452915de-5198-402b-b08c-dc6a887be954/bootopts} || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/intel_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/amd_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/x86_64/sysresccd.img || goto previous boot || goto ${452915de-5198-402b-b08c-dc6a887be954/prev} || goto previous ############# # END ENTRY # ############# #################### # BEGIN ENTRY HELP # #################### # Entry: "Perform Checksum" (HELP) # Label: 452915de-5198-402b-b08c-dc6a887be954 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Boot files are checked for integrity/corruption :452915de-5198-402b-b08c-dc6a887be954_help set prev_is_script 0 set 452915de-5198-402b-b08c-dc6a887be954_help/prev 452915de-5198-402b-b08c-dc6a887be954 echo Perform Checksum: echo Boot files are checked for integrity/corruption prompt (Press any key to exit) goto ${452915de-5198-402b-b08c-dc6a887be954/prev} || goto previous ################## # END ENTRY HELP # ################## ###################### # BEGIN ENTRY CONFIG # ###################### # Entry: "Perform Checksum" (CONFIGURATION) # Label: 452915de-5198-402b-b08c-dc6a887be954 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Boot files are checked for integrity/corruption :452915de-5198-402b-b08c-dc6a887be954_cfg set prev_is_script 0 echo Set custom boot options for Perform Checksum 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 ${452915de-5198-402b-b08c-dc6a887be954/bootopts} echo echo DEFAULT: echo ${452915de-5198-402b-b08c-dc6a887be954/orig_bootopts} echo echo -n Boot options: ${} && read user_bootopts || goto prev_menu_452915de-5198-402b-b08c-dc6a887be954_cfg iseq ${user_bootopts} ${} && goto prev_menu_452915de-5198-402b-b08c-dc6a887be954_cfg || iseq ${user_bootopts} %DEFAULT% && set 452915de-5198-402b-b08c-dc6a887be954/bootopts ${452915de-5198-402b-b08c-dc6a887be954/orig_bootopts} && goto prev_menu_452915de-5198-402b-b08c-dc6a887be954_cfg || set 452915de-5198-402b-b08c-dc6a887be954/bootopts ${user_bootopts} && goto ${452915de-5198-402b-b08c-dc6a887be954/prev} || goto previous #################### # END ENTRY CONFIG # #################### ############### # BEGIN ENTRY # ############### # Entry: "Simple/Basic Video" # Label: 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc # Type: ItemTypeKernel # https://www.system-rescue.org/ # Reduced video capabilities are used; easier on IPMI sessions :8049832f-8a8e-44b4-83c8-4b4efd3c3cdc set prev_is_script 0 iseq ${do_serial} 1 && kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts} console=tty1 console=ttyS0,9600n8 || kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts} || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/intel_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/amd_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/x86_64/sysresccd.img || goto previous boot || goto ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/prev} || goto previous ############# # END ENTRY # ############# #################### # BEGIN ENTRY HELP # #################### # Entry: "Simple/Basic Video" (HELP) # Label: 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc # Type: ItemTypeKernel # https://www.system-rescue.org/ # Reduced video capabilities are used; easier on IPMI sessions :8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_help set prev_is_script 0 set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_help/prev 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc echo Simple/Basic Video: echo Reduced video capabilities are used; easier on IPMI sessions prompt (Press any key to exit) goto ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/prev} || goto previous ################## # END ENTRY HELP # ################## ###################### # BEGIN ENTRY CONFIG # ###################### # Entry: "Simple/Basic Video" (CONFIGURATION) # Label: 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc # Type: ItemTypeKernel # https://www.system-rescue.org/ # Reduced video capabilities are used; easier on IPMI sessions :8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_cfg set prev_is_script 0 echo Set custom boot options for Simple/Basic Video 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 ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts} echo echo DEFAULT: echo ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/orig_bootopts} echo echo -n Boot options: ${} && read user_bootopts || goto prev_menu_8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_cfg iseq ${user_bootopts} ${} && goto prev_menu_8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_cfg || iseq ${user_bootopts} %DEFAULT% && set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/orig_bootopts} && goto prev_menu_8049832f-8a8e-44b4-83c8-4b4efd3c3cdc_cfg || set 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts ${user_bootopts} && goto ${8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/prev} || goto previous #################### # END ENTRY CONFIG # #################### ############### # BEGIN ENTRY # ############### # Entry: "Find Installed Linux System" # Label: c66363d7-aeb2-451d-a0dc-41124698fec3 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Scan local storage and attempt to boot from the installed Linux OS found. Useful for broken bootloaders. :c66363d7-aeb2-451d-a0dc-41124698fec3 set prev_is_script 0 iseq ${do_serial} 1 && kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts} console=tty1 console=ttyS0,9600n8 || kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts} || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/intel_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/amd_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/x86_64/sysresccd.img || goto previous boot || goto ${c66363d7-aeb2-451d-a0dc-41124698fec3/prev} || goto previous ############# # END ENTRY # ############# #################### # BEGIN ENTRY HELP # #################### # Entry: "Find Installed Linux System" (HELP) # Label: c66363d7-aeb2-451d-a0dc-41124698fec3 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Scan local storage and attempt to boot from the installed Linux OS found. Useful for broken bootloaders. :c66363d7-aeb2-451d-a0dc-41124698fec3_help set prev_is_script 0 set c66363d7-aeb2-451d-a0dc-41124698fec3_help/prev c66363d7-aeb2-451d-a0dc-41124698fec3 echo Find Installed Linux System: echo Scan local storage and attempt to boot from the installed Linux OS found. Useful for broken bootloaders. prompt (Press any key to exit) goto ${c66363d7-aeb2-451d-a0dc-41124698fec3/prev} || goto previous ################## # END ENTRY HELP # ################## ###################### # BEGIN ENTRY CONFIG # ###################### # Entry: "Find Installed Linux System" (CONFIGURATION) # Label: c66363d7-aeb2-451d-a0dc-41124698fec3 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Scan local storage and attempt to boot from the installed Linux OS found. Useful for broken bootloaders. :c66363d7-aeb2-451d-a0dc-41124698fec3_cfg set prev_is_script 0 echo Set custom boot options for Find Installed Linux System 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 ${c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts} echo echo DEFAULT: echo ${c66363d7-aeb2-451d-a0dc-41124698fec3/orig_bootopts} echo echo -n Boot options: ${} && read user_bootopts || goto prev_menu_c66363d7-aeb2-451d-a0dc-41124698fec3_cfg iseq ${user_bootopts} ${} && goto prev_menu_c66363d7-aeb2-451d-a0dc-41124698fec3_cfg || iseq ${user_bootopts} %DEFAULT% && set c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts ${c66363d7-aeb2-451d-a0dc-41124698fec3/orig_bootopts} && goto prev_menu_c66363d7-aeb2-451d-a0dc-41124698fec3_cfg || set c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts ${user_bootopts} && goto ${c66363d7-aeb2-451d-a0dc-41124698fec3/prev} || goto previous #################### # END ENTRY CONFIG # #################### ############### # BEGIN ENTRY # ############### # Entry: "Low-Level Rescue System" # Label: 2ef31e08-c7e4-428c-9093-e0c6b0d17044 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Pause boot after the initrd is loaded. :2ef31e08-c7e4-428c-9093-e0c6b0d17044 set prev_is_script 0 iseq ${do_serial} 1 && kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts} console=tty1 console=ttyS0,9600n8 || kernel ${base_url}loop/sysresc/sysresccd/boot/x86_64/vmlinuz ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts} || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/intel_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/amd_ucode.img || goto previous initrd ${base_url}loop/sysresc/sysresccd/boot/x86_64/sysresccd.img || goto previous boot || goto ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/prev} || goto previous ############# # END ENTRY # ############# #################### # BEGIN ENTRY HELP # #################### # Entry: "Low-Level Rescue System" (HELP) # Label: 2ef31e08-c7e4-428c-9093-e0c6b0d17044 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Pause boot after the initrd is loaded. :2ef31e08-c7e4-428c-9093-e0c6b0d17044_help set prev_is_script 0 set 2ef31e08-c7e4-428c-9093-e0c6b0d17044_help/prev 2ef31e08-c7e4-428c-9093-e0c6b0d17044 echo Low-Level Rescue System: echo Pause boot after the initrd is loaded. prompt (Press any key to exit) goto ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/prev} || goto previous ################## # END ENTRY HELP # ################## ###################### # BEGIN ENTRY CONFIG # ###################### # Entry: "Low-Level Rescue System" (CONFIGURATION) # Label: 2ef31e08-c7e4-428c-9093-e0c6b0d17044 # Type: ItemTypeKernel # https://www.system-rescue.org/ # Pause boot after the initrd is loaded. :2ef31e08-c7e4-428c-9093-e0c6b0d17044_cfg set prev_is_script 0 echo Set custom boot options for Low-Level Rescue System 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 ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts} echo echo DEFAULT: echo ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/orig_bootopts} echo echo -n Boot options: ${} && read user_bootopts || goto prev_menu_2ef31e08-c7e4-428c-9093-e0c6b0d17044_cfg iseq ${user_bootopts} ${} && goto prev_menu_2ef31e08-c7e4-428c-9093-e0c6b0d17044_cfg || iseq ${user_bootopts} %DEFAULT% && set 2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/orig_bootopts} && goto prev_menu_2ef31e08-c7e4-428c-9093-e0c6b0d17044_cfg || set 2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts ${user_bootopts} && goto ${2ef31e08-c7e4-428c-9093-e0c6b0d17044/prev} || goto previous #################### # END ENTRY CONFIG # #################### # End entries for menu "Sysresc (System Rescue CD)" (058a560b-74cb-4379-b8c9-4faa1f51f898) ############### # 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 224f8cb6-c347-456e-ac89-d3dd5f328399/tgt: ${224f8cb6-c347-456e-ac89-d3dd5f328399/tgt} echo main_menu: ${main_menu} echo prev_menu: ${prev_menu} echo prev_menu (dereferenced); ${prev_menu}/prev: ${${prev_menu}/prev} echo Script live/linux/sysresc.ipxe (current script): # The "${} ${} " is to force two spaces. They'd be trimmed otherwise. echo ${} ${} 224f8cb6-c347-456e-ac89-d3dd5f328399/prev: ${224f8cb6-c347-456e-ac89-d3dd5f328399/prev} echo ${} ${} 224f8cb6-c347-456e-ac89-d3dd5f328399/tgt: ${224f8cb6-c347-456e-ac89-d3dd5f328399/tgt} echo Menus (local to this script) (A blank /prev tends to indicate script's default/entry menu): echo ${} ${} 058a560b-74cb-4379-b8c9-4faa1f51f898 ("Sysresc (System Rescue CD)") echo ${} ${} ${} ${} 058a560b-74cb-4379-b8c9-4faa1f51f898/prev: ${058a560b-74cb-4379-b8c9-4faa1f51f898/prev} echo ${} ${} ${} ${} 058a560b-74cb-4379-b8c9-4faa1f51f898/tgt: ${058a560b-74cb-4379-b8c9-4faa1f51f898/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_224f8cb6-c347-456e-ac89-d3dd5f328399 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_224f8cb6-c347-456e-ac89-d3dd5f328399} ${script_path} && exit || :prev_test1 # If 224f8cb6-c347-456e-ac89-d3dd5f328399/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 224f8cb6-c347-456e-ac89-d3dd5f328399/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 ${224f8cb6-c347-456e-ac89-d3dd5f328399/tgt} && goto ${224f8cb6-c347-456e-ac89-d3dd5f328399/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 ${224f8cb6-c347-456e-ac89-d3dd5f328399/tgt} && goto ${224f8cb6-c347-456e-ac89-d3dd5f328399/tgt} || :prev_last # If prev_is_script is true, then we need to go to ${prev_224f8cb6-c347-456e-ac89-d3dd5f328399}. The target and exiterr gotos are fallbacks. iseq ${do_debug} 1 && prompt (PREVIOUS: prev_last; chain to ${224f8cb6-c347-456e-ac89-d3dd5f328399/prev}) && prompt (press any key to continue) || chain ${224f8cb6-c347-456e-ac89-d3dd5f328399/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 224f8cb6-c347-456e-ac89-d3dd5f328399/prev clear 224f8cb6-c347-456e-ac89-d3dd5f328399/tgt clear main_menu clear ${prev_menu}/prev clear prev_menu clear 058a560b-74cb-4379-b8c9-4faa1f51f898/prev clear 058a560b-74cb-4379-b8c9-4faa1f51f898/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 41d9407e-f068-4d05-b22b-09c49d869582/bootopts clear 41d9407e-f068-4d05-b22b-09c49d869582/orig_bootopts clear 452915de-5198-402b-b08c-dc6a887be954/bootopts clear 452915de-5198-402b-b08c-dc6a887be954/orig_bootopts clear 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/bootopts clear 8049832f-8a8e-44b4-83c8-4b4efd3c3cdc/orig_bootopts clear c66363d7-aeb2-451d-a0dc-41124698fec3/bootopts clear c66363d7-aeb2-451d-a0dc-41124698fec3/orig_bootopts clear 2ef31e08-c7e4-428c-9093-e0c6b0d17044/bootopts clear 2ef31e08-c7e4-428c-9093-e0c6b0d17044/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. # ######################################