Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 1 | #!ipxe |
| 2 | {# |
| 3 | SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org> |
| 4 | SPDX-License-Identifier: Apache-2.0 |
| 5 | #} |
| 6 | |
| 7 | # variables |
| 8 | set menu_timeout 10000 |
| 9 | set menu_default exit |
| 10 | set http_server_url {{ pxeboot_web_server }} |
| 11 | |
| 12 | # menu |
| 13 | :start |
| 14 | menu ONF iPXE Boot Menu |
Zack Williams | a5a10bc | 2021-04-06 11:58:44 -0700 | [diff] [blame] | 15 | item --gap -- ------------------------- System and Network Info ------------------------ |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 16 | item --gap -- MAC: ${net0/mac}, Serial Number: ${serial}, Chipset: ${net0/chip} |
| 17 | item --gap -- Manufacturer: ${manufacturer}, Product: ${product} |
| 18 | item --gap -- UUID: ${uuid} |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 19 | item --gap -- IP: ${net0/ip}, Netmask: ${net0/netmask}, Gateway: ${net0/gateway} |
| 20 | item --gap -- DNS Servers: ${net0/dns}, Domain: ${net0/domain} |
| 21 | item --gap -- DHCP Server: ${net0/dhcp-server} |
| 22 | item --gap -- ------------------------- Operating systems ------------------------------ |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 23 | {% if "debian10" in pxeboot_boot_images %} |
Zack Williams | a5a10bc | 2021-04-06 11:58:44 -0700 | [diff] [blame] | 24 | item --key d deb10 Debian 10 Installer |
| 25 | item --key f deb10f Debian 10 Installer (nonfree firmware) |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 26 | {% endif %} |
| 27 | {% if "debian11" in pxeboot_boot_images %} |
| 28 | item --key g deb11 Debian 11 Installer |
| 29 | item --key h deb11f Debian 11 Installer (nonfree firmware) |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 30 | item --key h deb11afs Debian 11 Installer (nonfree firmware, auto, serial) |
| 31 | item --key h deb11afm Debian 11 Installer (nonfree firmware, auto, MAC) |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 32 | {% endif %} |
| 33 | {% if "ubuntu1804" in pxeboot_boot_images %} |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 34 | item --key u ub1804 Ubuntu 18.04 Installer |
Zack Williams | 6f70f4d | 2021-06-07 12:54:07 -0700 | [diff] [blame] | 35 | item --key a ub1804as Ubuntu 18.04 Installer (fully automatic, serial) |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 36 | item --key m ub1804am Ubuntu 18.04 Installer (fully automatic, MAC) |
Zack Williams | a5a10bc | 2021-04-06 11:58:44 -0700 | [diff] [blame] | 37 | item --key t ub1804adt Ubuntu 18.04 Installer (fully automatic, debug, text) |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 38 | {% endif %} |
| 39 | {% if "ubuntu2004" in pxeboot_boot_images %} |
| 40 | item --key v ub2004 Ubuntu 20.04 Installer |
| 41 | {% endif %} |
| 42 | {% if "openbsd70" in pxeboot_boot_images %} |
| 43 | item --key o openbsd70 OpenBSD 7.0 Installer |
| 44 | {% endif %} |
| 45 | {% if "memtest" in pxeboot_boot_images %} |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 46 | item --key m memtest Memtest |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 47 | {% endif %} |
| 48 | item --gap -- ------------------------- Utilities -------------------------------------- |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 49 | item --key c configure Configuration Menu |
| 50 | item --key s shell iPXE Shell |
| 51 | item --key r reboot Reboot |
| 52 | item --key x exit Exit iPXE and continue system boot |
| 53 | choose --timeout ${menu_timeout} --default ${menu_default} selected || goto cancel |
| 54 | set menu-timeout 0 |
| 55 | goto ${selected} |
| 56 | |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 57 | # Utility functions |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 58 | :cancel |
| 59 | echo Menu canceled, dropping to iPXE shell |
| 60 | goto shell |
| 61 | |
| 62 | :configure |
| 63 | config |
| 64 | set menu-timeout 0 |
| 65 | set submenu-timeout 0 |
| 66 | goto start |
| 67 | |
| 68 | :shell |
| 69 | echo Type 'exit' to get the back to the menu |
| 70 | shell |
| 71 | set menu-timeout 0 |
| 72 | set submenu-timeout 0 |
| 73 | goto start |
| 74 | |
| 75 | :failed |
| 76 | echo Booting failed, dropping to shell |
| 77 | goto shell |
| 78 | |
| 79 | :reboot |
| 80 | reboot |
| 81 | |
| 82 | :exit |
| 83 | exit |
| 84 | |
| 85 | # diagnostics |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 86 | {% if "memtest" in pxeboot_boot_images %} |
| 87 | |
| 88 | # memtest |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 89 | :memtest |
| 90 | echo Booting Memtest |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 91 | kernel ${http_server_url}/utils/memdisk |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 92 | initrd ${http_server_url}/memtest/memtest.iso |
| 93 | imgargs memdisk iso raw |
| 94 | boot || goto failed |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 95 | {% endif %} |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 96 | |
| 97 | # installers |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 98 | {% if "debian10" in pxeboot_boot_images %} |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 99 | |
Zack Williams | a5a10bc | 2021-04-06 11:58:44 -0700 | [diff] [blame] | 100 | # Debian 10 |
| 101 | :deb10 |
| 102 | echo Booting Debian 10 Installer |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 103 | kernel ${http_server_url}/debian10/linux initrd=initrd.gz |
| 104 | initrd ${http_server_url}/debian10/initrd.gz initrd.gz |
Zack Williams | a5a10bc | 2021-04-06 11:58:44 -0700 | [diff] [blame] | 105 | boot || goto failed |
| 106 | |
| 107 | # Debian 10 with nonfree firmware |
| 108 | :deb10f |
| 109 | echo Booting Debian 10 Installer with nonfree firmware |
| 110 | kernel ${http_server_url}/debian10/linux initrd=initrd.gz initrd=firmware.cpio.gz |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 111 | initrd ${http_server_url}/debian10/initrd.gz initrd.gz |
| 112 | initrd ${http_server_url}/debian10/firmware.cpio.gz firmware.cpio.gz |
Zack Williams | a5a10bc | 2021-04-06 11:58:44 -0700 | [diff] [blame] | 113 | boot || goto failed |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 114 | {% endif %} |
| 115 | {% if "debian11" in pxeboot_boot_images %} |
| 116 | |
| 117 | # Debian 11 |
| 118 | :deb11 |
| 119 | echo Booting Debian 11 Installer |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 120 | kernel ${http_server_url}/debian11/linux initrd=initrd.gz |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 121 | initrd ${http_server_url}/debian11/initrd.gz |
| 122 | boot || goto failed |
| 123 | |
| 124 | # Debian 11 with nonfree firmware |
| 125 | :deb11f |
| 126 | echo Booting Debian 11 Installer with nonfree firmware |
| 127 | kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 128 | initrd ${http_server_url}/debian11/initrd.gz initrd.gz |
| 129 | initrd ${http_server_url}/debian11/firmware.cpio.gz firmware.cpio.gz |
| 130 | boot || goto failed |
| 131 | |
| 132 | # Debian 11 with nonfree firmware, auto, serial |
| 133 | :deb11afs |
| 134 | echo Booting Debian 11 Installer with nonfree firmware, auto, serial |
| 135 | kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz initrd=preseed.cfg |
| 136 | initrd ${http_server_url}/debian11/initrd.gz initrd.gz |
| 137 | initrd ${http_server_url}/debian11/firmware.cpio.gz firmware.cpio.gz |
| 138 | initrd ${http_server_url}/debian11/${serial}_preseed.cfg preseed.cfg |
| 139 | boot || goto failed |
| 140 | |
| 141 | # Debian 11 with nonfree firmware, auto, MAC |
| 142 | :deb11afm |
| 143 | echo Booting Debian 11 Installer with nonfree firmware, auto, MAC |
| 144 | kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz initrd=preseed.cfg |
| 145 | initrd ${http_server_url}/debian11/initrd.gz initrd.gz |
| 146 | initrd ${http_server_url}/debian11/firmware.cpio.gz firmware.cpio.gz |
| 147 | initrd ${http_server_url}/debian11/${net0/mac}_preseed.cfg preseed.cfg |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 148 | boot || goto failed |
| 149 | {% endif %} |
| 150 | {% if "ubuntu1804" in pxeboot_boot_images %} |
Zack Williams | a5a10bc | 2021-04-06 11:58:44 -0700 | [diff] [blame] | 151 | |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 152 | # Ubuntu 18.04 |
| 153 | :ub1804 |
| 154 | echo Booting Ubuntu 18.04 Installer |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 155 | kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz |
| 156 | initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 157 | boot || goto failed |
| 158 | |
Zack Williams | 6f70f4d | 2021-06-07 12:54:07 -0700 | [diff] [blame] | 159 | # Ubuntu 18.04 autoinstall, serial |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 160 | # https://ipxe.org/appnote/debian_preseed |
Zack Williams | 6f70f4d | 2021-06-07 12:54:07 -0700 | [diff] [blame] | 161 | :ub1804as |
| 162 | echo Booting Ubuntu 18.04 Installer (autoinstall, serial) |
Zack Williams | db39414 | 2020-11-11 22:52:34 -0700 | [diff] [blame] | 163 | kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 164 | initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 165 | initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg |
Zack Williams | 3fcd2c5 | 2021-03-02 21:44:52 -0700 | [diff] [blame] | 166 | boot || goto failed |
| 167 | |
Zack Williams | 6f70f4d | 2021-06-07 12:54:07 -0700 | [diff] [blame] | 168 | # Ubuntu 18.04 autoinstall, MAC |
| 169 | # https://ipxe.org/appnote/debian_preseed |
| 170 | :ub1804am |
| 171 | echo Booting Ubuntu 18.04 Installer (autoinstall, MAC) |
| 172 | kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 173 | initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz |
Zack Williams | 6f70f4d | 2021-06-07 12:54:07 -0700 | [diff] [blame] | 174 | initrd ${http_server_url}/ubuntu1804/${net0/mac}_preseed.cfg preseed.cfg |
| 175 | boot || goto failed |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 176 | {% if pxeboot_image_debug %} |
Zack Williams | 6f70f4d | 2021-06-07 12:54:07 -0700 | [diff] [blame] | 177 | |
Zack Williams | 3fcd2c5 | 2021-03-02 21:44:52 -0700 | [diff] [blame] | 178 | # Ubuntu 18.04 autoinstall, text-mode, debug |
| 179 | :ub1804adt |
| 180 | echo Booting Ubuntu 18.04 Installer, text mode, debug |
| 181 | kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg DEBIAN_FRONTEND=text BOOT_DEBUG=2 |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 182 | initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz |
Zack Williams | 3fcd2c5 | 2021-03-02 21:44:52 -0700 | [diff] [blame] | 183 | initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg |
Zack Williams | 5b5d9a7 | 2020-11-06 13:59:06 -0700 | [diff] [blame] | 184 | boot || goto failed |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 185 | {% endif %} |
| 186 | {% endif %} |
| 187 | {% if "ubuntu2004" in pxeboot_boot_images %} |
| 188 | |
| 189 | # Ubuntu 18.04 |
| 190 | :ub2004 |
| 191 | echo Booting Ubuntu 20.04 Installer |
Zack Williams | d1ee626 | 2022-05-19 15:29:40 -0700 | [diff] [blame^] | 192 | kernel ${http_server_url}/ubuntu2004/linux initrd=initrd.gz |
| 193 | initrd ${http_server_url}/ubuntu2004/initrd.gz initrd.gz |
Zack Williams | 92f3c20 | 2021-08-24 23:04:47 -0700 | [diff] [blame] | 194 | boot || goto failed |
| 195 | {% endif %} |
| 196 | {% if "openbsd70" in pxeboot_boot_images %} |
| 197 | |
| 198 | # OpenBSD 7.0 |
| 199 | :openbsd70 |
| 200 | echo Booting OpenBSD 7.0 |
| 201 | kernel ${http_server_url}/utils/memdisk |
| 202 | initrd ${http_server_url}/openbsd70/cd70.iso |
| 203 | imgargs memdisk iso raw |
| 204 | boot || goto failed |
| 205 | {% endif %} |