blob: 462696a161fa562aa1e8dfd2124d6f5c3c358e64 [file] [log] [blame]
#!ipxe
{#
SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
SPDX-License-Identifier: Apache-2.0
#}
# variables
set menu_timeout 10000
set menu_default exit
set http_server_url {{ pxeboot_web_server }}
# menu
:start
menu ONF iPXE Boot Menu
item --gap -- ------------------------- System and Network Info ------------------------
item --gap -- MAC: ${net0/mac}, Serial Number: ${serial}, Chipset: ${net0/chip}
item --gap -- Manufacturer: ${manufacturer}, Product: ${product}
item --gap -- UUID: ${uuid}
item --gap -- IP: ${net0/ip}, Netmask: ${net0/netmask}, Gateway: ${net0/gateway}
item --gap -- DNS Servers: ${net0/dns}, Domain: ${net0/domain}
item --gap -- DHCP Server: ${net0/dhcp-server}
item --gap -- ------------------------- Operating systems ------------------------------
item --key d deb10 Debian 10 Installer
item --key f deb10f Debian 10 Installer (nonfree firmware)
item --key u ub1804 Ubuntu 18.04 Installer
item --key a ub1804as Ubuntu 18.04 Installer (fully automatic, serial)
item --key a ub1804am Ubuntu 18.04 Installer (fully automatic, MAC)
item --key t ub1804adt Ubuntu 18.04 Installer (fully automatic, debug, text)
item --gap -- ------------------------- Utilities --------------------------------------
item --key m memtest Memtest
item --key c configure Configuration Menu
item --key s shell iPXE Shell
item --key r reboot Reboot
item --key x exit Exit iPXE and continue system boot
choose --timeout ${menu_timeout} --default ${menu_default} selected || goto cancel
set menu-timeout 0
goto ${selected}
# other functions
:cancel
echo Menu canceled, dropping to iPXE shell
goto shell
:configure
config
set menu-timeout 0
set submenu-timeout 0
goto start
:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start
:failed
echo Booting failed, dropping to shell
goto shell
:reboot
reboot
:exit
exit
# diagnostics
:memtest
echo Booting Memtest
kernel ${http_server_url}/memtest/memdisk
initrd ${http_server_url}/memtest/memtest.iso
imgargs memdisk iso raw
boot || goto failed
# installers
# Debian 10
:deb10
echo Booting Debian 10 Installer
kernel ${http_server_url}/debian10/linux
initrd ${http_server_url}/debian10/initrd.gz
boot || goto failed
# Debian 10 with nonfree firmware
:deb10f
echo Booting Debian 10 Installer with nonfree firmware
kernel ${http_server_url}/debian10/linux initrd=initrd.gz initrd=firmware.cpio.gz
initrd ${http_server_url}/debian10/initrd.gz
initrd ${http_server_url}/debian10/firmware.cpio.gz
boot || goto failed
# Ubuntu 18.04
:ub1804
echo Booting Ubuntu 18.04 Installer
kernel ${http_server_url}/ubuntu1804/linux
initrd ${http_server_url}/ubuntu1804/initrd.gz
boot || goto failed
# Ubuntu 18.04 autoinstall, serial
# https://ipxe.org/appnote/debian_preseed
:ub1804as
echo Booting Ubuntu 18.04 Installer (autoinstall, serial)
kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg
initrd ${http_server_url}/ubuntu1804/initrd.gz
initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
boot || goto failed
# Ubuntu 18.04 autoinstall, MAC
# https://ipxe.org/appnote/debian_preseed
:ub1804am
echo Booting Ubuntu 18.04 Installer (autoinstall, MAC)
kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg
initrd ${http_server_url}/ubuntu1804/initrd.gz
initrd ${http_server_url}/ubuntu1804/${net0/mac}_preseed.cfg preseed.cfg
boot || goto failed
# Ubuntu 18.04 autoinstall, text-mode, debug
:ub1804adt
echo Booting Ubuntu 18.04 Installer, text mode, debug
kernel ${http_server_url}/ubuntu1804/linux initrd=initrd.gz initrd=preseed.cfg DEBIAN_FRONTEND=text BOOT_DEBUG=2
initrd ${http_server_url}/ubuntu1804/initrd.gz
initrd ${http_server_url}/ubuntu1804/${serial}_preseed.cfg preseed.cfg
boot || goto failed