Netboot: Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
= Netboot Menu = |
|||
⚫ | |||
An iPXE image which presents a network boot menu is available on caffeine. It is the default net boot image for dynamically assigned IPs to make it easy for office dwellers to install Linux directly from mirror while in the office. |
|||
This is bootstrapped by DHCP, as usual: |
|||
if exists user-class and option user-class = "iPXE" { |
|||
filename "menu/menu.ipxe"; |
|||
} else { |
|||
filename "menu/undionly.kpxe"; |
|||
} |
|||
This serves an iPXE image (built from ipxe head without modification) to a PXE ROM, and a menu script to iPXE. This menu script shows a number of different distro installers and boots whichever one the user selects. At present, options are Ubuntu, Debian and Arch. |
|||
iPXE supports booting off HTTP (including resolving hostnames via DNS), so all of the supported distributions boot straight over HTTP (from [[Mirror|mirror]], if possible). |
|||
This means that to add new distributions to it, we need only tweak the menu config (<tt>/srv/tftp/menu/menu.ipxe</tt>) slightly: no files need to be copied to the TFTP root. |
|||
The menu script is implemented in the [http://ipxe.org/scripting iPXE scripting language], which supports menus and some primitive flow control. The debian-installer images are loaded through the <tt>debian-common</tt> label, which correctly sets up the <tt>pxelinux</tt> environment so that these boot correctly. |
|||
This image will work only on amd64/i386 systems; for other architectures the standard approach is still necessary. |
|||
⚫ | |||
dhcpd.conf toplevel |
dhcpd.conf toplevel |
||
Line 15: | Line 36: | ||
dhcpd.conf host |
dhcpd.conf host |
||
host guarana { |
|||
hardware ethernet 00:0d:93:72:cc:ec; |
hardware ethernet 00:0d:93:72:cc:ec; |
||
fixed-address 129.97.134.86; |
|||
next-server 129.97.134.17; |
|||
filename "jaunty-yaboot-ppc7400/yaboot"; |
|||
option dhcp-max-message-size 576; |
|||
option dhcp-parameter-request-list |
|||
1, # subnet mask |
1, # subnet mask |
||
3, # routers |
3, # routers |
||
220, 221, 230, 232, 233, 234, 235, 236, 237, 238; # mac options |
220, 221, 230, 232, 233, 234, 235, 236, 237, 238; # mac options |
||
option mac-version 0:0:0:0; |
|||
} |
|||
Press Alt+RightWin+O+F during boot. Type "boot enet:0" at the prompt. |
Press Alt+RightWin+O+F during boot. Type "boot enet:0" at the prompt. |
||
* Note: Yaboot <=1.3.14 may fail if the initrd is too large (read: always) |
* Note: Yaboot <=1.3.14 may fail if the initrd is too large (read: always) |
||
* Note: Yaboot from Git may fail to read the config. Type "conf |
* Note: Yaboot from Git may fail to read the config. Type "conf file=jaunty-yaboot-ppc7400/yaboot.conf" |
||
[[Category:Systems]] |
Latest revision as of 07:39, 23 October 2012
Netboot Menu
An iPXE image which presents a network boot menu is available on caffeine. It is the default net boot image for dynamically assigned IPs to make it easy for office dwellers to install Linux directly from mirror while in the office.
This is bootstrapped by DHCP, as usual:
if exists user-class and option user-class = "iPXE" { filename "menu/menu.ipxe"; } else { filename "menu/undionly.kpxe"; }
This serves an iPXE image (built from ipxe head without modification) to a PXE ROM, and a menu script to iPXE. This menu script shows a number of different distro installers and boots whichever one the user selects. At present, options are Ubuntu, Debian and Arch.
iPXE supports booting off HTTP (including resolving hostnames via DNS), so all of the supported distributions boot straight over HTTP (from mirror, if possible). This means that to add new distributions to it, we need only tweak the menu config (/srv/tftp/menu/menu.ipxe) slightly: no files need to be copied to the TFTP root.
The menu script is implemented in the iPXE scripting language, which supports menus and some primitive flow control. The debian-installer images are loaded through the debian-common label, which correctly sets up the pxelinux environment so that these boot correctly.
This image will work only on amd64/i386 systems; for other architectures the standard approach is still necessary.
Mac
dhcpd.conf toplevel
# mac is insane option mac-nc-client-unknown code 220 = string; option mac-nc-client-id code 221 = string; option mac-version code 230 = string; option mac-username code 232 = text; option mac-password code 233 = text; option mac-nb-img code 234 = string; option mac-apps-img code 235 = string; option mac-machine-name code 237 = text; option mac-client-nb-img code 238 = string;
dhcpd.conf host
host guarana { hardware ethernet 00:0d:93:72:cc:ec; fixed-address 129.97.134.86; next-server 129.97.134.17; filename "jaunty-yaboot-ppc7400/yaboot"; option dhcp-max-message-size 576; option dhcp-parameter-request-list 1, # subnet mask 3, # routers 220, 221, 230, 232, 233, 234, 235, 236, 237, 238; # mac options option mac-version 0:0:0:0; }
Press Alt+RightWin+O+F during boot. Type "boot enet:0" at the prompt.
- Note: Yaboot <=1.3.14 may fail if the initrd is too large (read: always)
- Note: Yaboot from Git may fail to read the config. Type "conf file=jaunty-yaboot-ppc7400/yaboot.conf"