-
Notifications
You must be signed in to change notification settings - Fork 0
/
menu.ipxe
121 lines (103 loc) · 3.02 KB
/
menu.ipxe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!ipxe
:start
echo
dhcp || goto netconfig
goto timesync
:netconfig
echo Network Configuration:
echo Available interfaces...
ifstat
imgfree
echo -n Set network interface number [0 for net0, defaults to 0]: ${} && read net
isset ${net} || set net 0
echo -n IP: && read net${net}/ip
echo -n Subnet mask: && read net${net}/netmask
echo -n Gateway: && read net${net}/gateway
echo -n DNS: && read dns
ifopen net${net}
goto timesync
:timesync
ntp pool.ntp.org || echo NTP command is not available.
goto menu
:menu
menu iPXE v${version}
item --gap OS options
item boot_menu ${space} Install Ubuntu
item netboot ${space} netboot.xyz
item --gap
item --gap Debug
item netconfig ${space} Manual network configuration
item debug ${space} iPXE shell
item reboot ${space} Reboot
item leave ${space} Exit iPXE
choose option || goto start
goto ${option}
:leave
exit
:reboot
reboot
:debug
echo Type "exit" to return to menu
shell
goto menu
:netboot
chain --replace --autofree https://boot.netboot.xyz/menu.ipxe || echo HTTPS failed. Trying HTTP.
sleep 2
chain --replace --autofree http://boot.netboot.xyz/menu.ipxe || echo Connection failed.
sleep 3
goto menu
:boot_menu
menu iPXE v${version}
item --gap Options
item set_server ${space} Server: ${serverURL}
item set_preseed ${space} Preseed: ${preseedURL}
item --gap
item --gap Install
item boot_install ${space} Install
item boot_expert ${space} Expert Install
item boot_rescue ${space} Rescue
choose --default ${boot_option} boot_option || goto menu
goto ${boot_option}
:set_server
isset ${serverURL} || set serverURL http://${net0/gateway}:19000/netboot
menu iPXE v${version}
item set_server_manual ${space} Manual: ${serverURL}
item set_server_focal ${space} Ubuntu 20.04 LTS Focal Fossa amd64
item set_server_eoan ${space} Ubuntu 19.10 Eoan Ermine amd64
item set_server_bionic ${space} Ubuntu 18.04 LTS Bionic Beaver amd64
choose set_server_option || goto boot_menu
goto ${set_server_option}
:set_server_manual
echo -n Netboot server: ${}
read serverURL || goto boot_menu
goto boot_menu
:set_server_focal
set serverURL http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot
goto boot_menu
:set_server_eoan
set serverURL http://archive.ubuntu.com/ubuntu/dists/eoan/main/installer-amd64/current/images/netboot
goto boot_menu
:set_server_bionic
set serverURL http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot
goto boot_menu
:set_preseed
isset ${preseedURL} || set preseedURL http://${net0/gateway}:18000/
echo -n Preseed URL: ${}
read preseedURL || goto boot_menu
set install_params priority=critical
set preseed_params auto=true interface=auto preseed/url=${preseedURL}
goto boot_menu
:boot_rescue
set install_params rescue/enable=true
goto boot_install
:boot_expert
set install_params priority=low
goto boot_install
:boot_install
imgfree
kernel ${serverURL}/ubuntu-installer/amd64/linux ${preseed_params} ${install_params} -- quiet initrd=initrd.gz
initrd ${serverURL}/ubuntu-installer/amd64/initrd.gz
boot
echo Exiting iPXE boot sequence
shell
sleep 5