Version 9 (modified by 5 years ago) ( diff ) | ,
---|
New PXE build and usage process as of July 2019
Note: OMF config is separate but similar, look at contents of "/etc/omf-expctl-5.4/services.yaml"
Overview of process
- Build
- dependencies:
- checkout git repo
- ensure dependencies are installed (docker, make)
- alternately, ssh to
buildvm1804-64.orbit-lab.org
and cd to/opt/orbit-pxe
- run
make build
to initialize environment, compile code - run
make extract
to extract artifacts (initfs.gz, kernel, configs…) - run
make publish-orbit-test
to push artifacts to orbit testing path - run
make publish-orbit-prod
to push artifacts to orbit "real" path
- dependencies:
- Background
- Uses alpine linux as base, due to built in customizable tool for building initfs
- pulls in updated frisbee, imagezip code from emulab repo
- pull omf-resctl from orbit repo
- Loading / saving
- Node boots
- Pulls tftp next-server from dhcp
- pulls config file from tftp server
- config file instructs to pull kernel and initfs over either http or tftp
- boots initfs
- discovers interfaces, requests dhcp lease on same interface as pxe boot occured ( from IPAPPEND 3 and rcS)
- pulls command line arguments from
/proc/cmdline
- Launches omf-resctl with above arguments
- omf-resctl connects to xmpp with above arguments and waits for commands
- Saving
OLD BELOW THIS LINE
Highlights
- PXE over http, instead of tftp
- lpxelinux.0 instead of pxelinux.0
- pxelinux.cfg supports urls, http:// etc.
- find DHCP option to specify URL directly, instead of filename, more reliable bootstrap?
- replace filename field with url
- Support for EFI
- New PXE image build procedure
- Use of mkinitramfs
Client Features
Request list from dhcpdump for i5 NUC, UEFI
TIME: 2016-04-12 10:48:59.621 IP: 0.0.0.0 (b8:ae:ed:7d:5f:80) > 255.255.255.255 (ff:ff:ff:ff:ff:ff) OP: 1 (BOOTPREQUEST) HTYPE: 1 (Ethernet) HLEN: 6 HOPS: 0 XID: b4683658 SECS: 12 FLAGS: 7f80 CIADDR: 0.0.0.0 YIADDR: 0.0.0.0 SIADDR: 0.0.0.0 GIADDR: 0.0.0.0 CHADDR: b8:ae:ed:7d:5f:80:00:00:00:00:00:00:00:00:00:00 SNAME: . FNAME: . OPTION: 53 ( 1) DHCP message type 1 (DHCPDISCOVER) OPTION: 57 ( 2) Maximum DHCP message size 1464 OPTION: 55 ( 35) Parameter Request List 1 (Subnet mask) 2 (Time offset) 3 (Routers) 4 (Time server) 5 (Name server) 6 (DNS server) 12 (Host name) 13 (Boot file size) 15 (Domainname) 17 (Root path) 18 (Extensions path) 22 (Maximum datagram reassembly size) 23 (Default IP TTL) 28 (Broadcast address) 40 (NIS domain) 41 (NIS servers) 42 (NTP servers) 43 (Vendor specific info) 50 (Request IP address) 51 (IP address leasetime) 54 (Server identifier) 58 (T1) 59 (T2) 60 (Vendor class identifier) 66 (TFTP server name) 67 (Bootfile name) 97 (UUID/GUID) 128 (???) 129 (???) 130 (???) 131 (???) 132 (???) 133 (???) 134 (???) 135 (???) OPTION: 97 ( 17) UUID/GUID 0066ffad1ee719ad .f...... 849831b8aeed7d5f ..1...}_ 80 . OPTION: 94 ( 3) Client NDI 010310 ... OPTION: 93 ( 2) Client System 0007 .. OPTION: 60 ( 32) Vendor class identifier PXEClient:Arch:00007:UNDI:003016
ftp://download.intel.com/design/archives/wfm/downloads/pxespec.pdf
DHCPOFFER must specify option 60.
Note:
See TracWiki
for help on using the wiki.