[ipxe-devel] iPXE without DHCP 66/67 Settings

Albert Hernandez Albert.Hernandez at stjoe.org
Mon Dec 20 21:34:20 UTC 2010

Thank you!  I will give it a go!


Albert Hernandez

-----Original Message-----
From: Michael Brown [mailto:mbrown at fensystems.co.uk]
Sent: Monday, December 20, 2010 1:04 PM
To: ipxe-devel at lists.ipxe.org
Cc: Albert Hernandez
Subject: Re: [ipxe-devel] iPXE without DHCP 66/67 Settings

On Monday 20 Dec 2010 19:43:57 Albert Hernandez wrote:
> We are not in control of our DHCP servers and we want to use iPXE to
> push  out software distributions to our servers.  We want to create a
> single  bootable ISO so we can use to deploy the image to the systems.
> I have been able to press CTRL-B and been able to set the minimum
> variable  FILENAME and NEXT-SERVER then issue the AUTBOOT command and
> the imaging  process begins.  Although this is acceptable in a lab
> configuration, it is  not for a production environment.
> Also we have to have a list of NEXT-SERVERS and have the boot process
> try  each one until the list is exhausted.  Once the list is exhausted
> then  fail.  This list is would be sequentially process and if the
> connection  returns any error, then skip that server and proceed to the next.

I would suggest using an embedded script.  You can do this using

  make bin/ipxe.iso EMBEDDED_IMAGE=stjoe.ipxe

where stjoe.ipxe is a text file containing:

  chain tftp://my-server1/my-filename ||
  chain tftp://my-server2/my-filename ||
  chain tftp://my-server3/my-filename ||
  echo Boot failed
  exit 1

This will try each server in turn, falling through to the next entry in the list if it fails for any reason.  Note the trailing "||", which is required to prevent the script from immediately aborting if the "chain" command fails.

Note that this method will *not* set the "next-server" and "filename"
variables.  It is possible that your PXE NBP may require these variables to be set.  If this is the case, you can use a slightly longer version of the above

  set filename my-filename
  set next-server my-server1
  chain ${next-server}/${filename} ||
  set next-server my-server2
  chain ${next-server}/${filename} ||
  set next-server my-server3
  chain ${next-server}/${filename} ||
  echo Boot failed
  exit 1


Notice from St. Joseph Health System:
Please note that the information contained in this message may be privileged and confidential and protected from disclosure.

More information about the ipxe-devel mailing list