blob: a59bbe823ae720553bb81669637222447ae2886e [file] [log] [blame]
Zack Williams5b5d9a72020-11-06 13:59:06 -07001#!ipxe
2{#
3SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
4SPDX-License-Identifier: Apache-2.0
5#}
6
7# variables
8set menu_timeout 10000
9set menu_default exit
10set http_server_url {{ pxeboot_web_server }}
11
12# menu
13:start
14menu ONF iPXE Boot Menu
Zack Williamsa5a10bc2021-04-06 11:58:44 -070015item --gap -- ------------------------- System and Network Info ------------------------
Zack Williams5b5d9a72020-11-06 13:59:06 -070016item --gap -- MAC: ${net0/mac}, Serial Number: ${serial}, Chipset: ${net0/chip}
17item --gap -- Manufacturer: ${manufacturer}, Product: ${product}
18item --gap -- UUID: ${uuid}
Zack Williams5b5d9a72020-11-06 13:59:06 -070019item --gap -- IP: ${net0/ip}, Netmask: ${net0/netmask}, Gateway: ${net0/gateway}
20item --gap -- DNS Servers: ${net0/dns}, Domain: ${net0/domain}
21item --gap -- DHCP Server: ${net0/dhcp-server}
22item --gap -- ------------------------- Operating systems ------------------------------
Zack Williams92f3c202021-08-24 23:04:47 -070023{% if "debian10" in pxeboot_boot_images %}
Zack Williamsa5a10bc2021-04-06 11:58:44 -070024item --key d deb10 Debian 10 Installer
25item --key f deb10f Debian 10 Installer (nonfree firmware)
Zack Williams92f3c202021-08-24 23:04:47 -070026{% endif %}
27{% if "debian11" in pxeboot_boot_images %}
28item --key g deb11 Debian 11 Installer
29item --key h deb11f Debian 11 Installer (nonfree firmware)
Zack Williamsd1ee6262022-05-19 15:29:40 -070030item --key h deb11afs Debian 11 Installer (nonfree firmware, auto, serial)
31item --key h deb11afm Debian 11 Installer (nonfree firmware, auto, MAC)
Zack Williams92f3c202021-08-24 23:04:47 -070032{% endif %}
33{% if "ubuntu1804" in pxeboot_boot_images %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070034item --key u ub1804 Ubuntu 18.04 Installer
Zack Williams6f70f4d2021-06-07 12:54:07 -070035item --key a ub1804as Ubuntu 18.04 Installer (fully automatic, serial)
Zack Williams92f3c202021-08-24 23:04:47 -070036item --key m ub1804am Ubuntu 18.04 Installer (fully automatic, MAC)
Zack Williamsa5a10bc2021-04-06 11:58:44 -070037item --key t ub1804adt Ubuntu 18.04 Installer (fully automatic, debug, text)
Zack Williams92f3c202021-08-24 23:04:47 -070038{% endif %}
39{% if "ubuntu2004" in pxeboot_boot_images %}
40item --key v ub2004 Ubuntu 20.04 Installer
41{% endif %}
42{% if "openbsd70" in pxeboot_boot_images %}
43item --key o openbsd70 OpenBSD 7.0 Installer
44{% endif %}
45{% if "memtest" in pxeboot_boot_images %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070046item --key m memtest Memtest
Zack Williams92f3c202021-08-24 23:04:47 -070047{% endif %}
48item --gap -- ------------------------- Utilities --------------------------------------
Zack Williams5b5d9a72020-11-06 13:59:06 -070049item --key c configure Configuration Menu
50item --key s shell iPXE Shell
51item --key r reboot Reboot
52item --key x exit Exit iPXE and continue system boot
53choose --timeout ${menu_timeout} --default ${menu_default} selected || goto cancel
54set menu-timeout 0
55goto ${selected}
56
Zack Williams92f3c202021-08-24 23:04:47 -070057# Utility functions
Zack Williams5b5d9a72020-11-06 13:59:06 -070058:cancel
59echo Menu canceled, dropping to iPXE shell
60goto shell
61
62:configure
63config
64set menu-timeout 0
65set submenu-timeout 0
66goto start
67
68:shell
69echo Type 'exit' to get the back to the menu
70shell
71set menu-timeout 0
72set submenu-timeout 0
73goto start
74
75:failed
76echo Booting failed, dropping to shell
77goto shell
78
79:reboot
80reboot
81
82:exit
83exit
84
85# diagnostics
Zack Williams92f3c202021-08-24 23:04:47 -070086{% if "memtest" in pxeboot_boot_images %}
87
88# memtest
Zack Williams5b5d9a72020-11-06 13:59:06 -070089:memtest
90echo Booting Memtest
Zack Williams92f3c202021-08-24 23:04:47 -070091kernel ${http_server_url}/utils/memdisk
Zack Williams5b5d9a72020-11-06 13:59:06 -070092initrd ${http_server_url}/memtest/memtest.iso
93imgargs memdisk iso raw
94boot || goto failed
Zack Williams92f3c202021-08-24 23:04:47 -070095{% endif %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070096
97# installers
Zack Williams92f3c202021-08-24 23:04:47 -070098{% if "debian10" in pxeboot_boot_images %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070099
Zack Williamsa5a10bc2021-04-06 11:58:44 -0700100# Debian 10
101:deb10
102echo Booting Debian 10 Installer
Zack Williamsd1ee6262022-05-19 15:29:40 -0700103kernel ${http_server_url}/debian10/linux initrd=initrd.gz
104initrd ${http_server_url}/debian10/initrd.gz initrd.gz
Zack Williamsa5a10bc2021-04-06 11:58:44 -0700105boot || goto failed
106
107# Debian 10 with nonfree firmware
108:deb10f
109echo Booting Debian 10 Installer with nonfree firmware
110kernel ${http_server_url}/debian10/linux initrd=initrd.gz initrd=firmware.cpio.gz
Zack Williamsd1ee6262022-05-19 15:29:40 -0700111initrd ${http_server_url}/debian10/initrd.gz initrd.gz
112initrd ${http_server_url}/debian10/firmware.cpio.gz firmware.cpio.gz
Zack Williamsa5a10bc2021-04-06 11:58:44 -0700113boot || goto failed
Zack Williams92f3c202021-08-24 23:04:47 -0700114{% endif %}
115{% if "debian11" in pxeboot_boot_images %}
116
117# Debian 11
118:deb11
119echo Booting Debian 11 Installer
Zack Williamsd1ee6262022-05-19 15:29:40 -0700120kernel ${http_server_url}/debian11/linux initrd=initrd.gz
Zack Williams92f3c202021-08-24 23:04:47 -0700121initrd ${http_server_url}/debian11/initrd.gz
122boot || goto failed
123
124# Debian 11 with nonfree firmware
125:deb11f
126echo Booting Debian 11 Installer with nonfree firmware
127kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz
Zack Williamsd1ee6262022-05-19 15:29:40 -0700128initrd ${http_server_url}/debian11/initrd.gz initrd.gz
129initrd ${http_server_url}/debian11/firmware.cpio.gz firmware.cpio.gz
130boot || goto failed
131
132# Debian 11 with nonfree firmware, auto, serial
133:deb11afs
134echo Booting Debian 11 Installer with nonfree firmware, auto, serial
135kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz initrd=preseed.cfg
136initrd ${http_server_url}/debian11/initrd.gz initrd.gz
137initrd ${http_server_url}/debian11/firmware.cpio.gz firmware.cpio.gz
138initrd ${http_server_url}/debian11/${serial}_preseed.cfg preseed.cfg
139boot || goto failed
140
141# Debian 11 with nonfree firmware, auto, MAC
142:deb11afm
143echo Booting Debian 11 Installer with nonfree firmware, auto, MAC
144kernel ${http_server_url}/debian11/linux initrd=initrd.gz initrd=firmware.cpio.gz initrd=preseed.cfg
145initrd ${http_server_url}/debian11/initrd.gz initrd.gz
146initrd ${http_server_url}/debian11/firmware.cpio.gz firmware.cpio.gz
147initrd ${http_server_url}/debian11/${net0/mac}_preseed.cfg preseed.cfg
Zack Williams92f3c202021-08-24 23:04:47 -0700148boot || goto failed
149{% endif %}
150{% if "ubuntu1804" in pxeboot_boot_images %}
Zack Williamsa5a10bc2021-04-06 11:58:44 -0700151
Zack Williams5b5d9a72020-11-06 13:59:06 -0700152# Ubuntu 18.04
153:ub1804
154echo Booting Ubuntu 18.04 Installer
Zack Williamsd1ee6262022-05-19 15:29:40 -0700155kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz
156initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz
Zack Williams5b5d9a72020-11-06 13:59:06 -0700157boot || goto failed
158
Zack Williams6f70f4d2021-06-07 12:54:07 -0700159# Ubuntu 18.04 autoinstall, serial
Zack Williams5b5d9a72020-11-06 13:59:06 -0700160# https://ipxe.org/appnote/debian_preseed
Zack Williams6f70f4d2021-06-07 12:54:07 -0700161:ub1804as
162echo Booting Ubuntu 18.04 Installer (autoinstall, serial)
Zack Williamsdb394142020-11-11 22:52:34 -0700163kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg
Zack Williamsd1ee6262022-05-19 15:29:40 -0700164initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz
Zack Williams5b5d9a72020-11-06 13:59:06 -0700165initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
Zack Williams3fcd2c52021-03-02 21:44:52 -0700166boot || goto failed
167
Zack Williams6f70f4d2021-06-07 12:54:07 -0700168# Ubuntu 18.04 autoinstall, MAC
169# https://ipxe.org/appnote/debian_preseed
170:ub1804am
171echo Booting Ubuntu 18.04 Installer (autoinstall, MAC)
172kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg
Zack Williamsd1ee6262022-05-19 15:29:40 -0700173initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz
Zack Williams6f70f4d2021-06-07 12:54:07 -0700174initrd ${http_server_url}/ubuntu1804/${net0/mac}_preseed.cfg preseed.cfg
175boot || goto failed
Zack Williams92f3c202021-08-24 23:04:47 -0700176{% if pxeboot_image_debug %}
Zack Williams6f70f4d2021-06-07 12:54:07 -0700177
Zack Williams3fcd2c52021-03-02 21:44:52 -0700178# Ubuntu 18.04 autoinstall, text-mode, debug
179:ub1804adt
180echo Booting Ubuntu 18.04 Installer, text mode, debug
181kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg DEBIAN_FRONTEND=text BOOT_DEBUG=2
Zack Williamsd1ee6262022-05-19 15:29:40 -0700182initrd ${http_server_url}/ubuntu1804/initrd.gz initrd.gz
Zack Williams3fcd2c52021-03-02 21:44:52 -0700183initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
Zack Williams5b5d9a72020-11-06 13:59:06 -0700184boot || goto failed
Zack Williams92f3c202021-08-24 23:04:47 -0700185{% endif %}
186{% endif %}
187{% if "ubuntu2004" in pxeboot_boot_images %}
188
189# Ubuntu 18.04
190:ub2004
191echo Booting Ubuntu 20.04 Installer
Zack Williamsd1ee6262022-05-19 15:29:40 -0700192kernel ${http_server_url}/ubuntu2004/linux initrd=initrd.gz
193initrd ${http_server_url}/ubuntu2004/initrd.gz initrd.gz
Zack Williams92f3c202021-08-24 23:04:47 -0700194boot || goto failed
195{% endif %}
196{% if "openbsd70" in pxeboot_boot_images %}
197
198# OpenBSD 7.0
199:openbsd70
200echo Booting OpenBSD 7.0
201kernel ${http_server_url}/utils/memdisk
202initrd ${http_server_url}/openbsd70/cd70.iso
203imgargs memdisk iso raw
204boot || goto failed
205{% endif %}