Search

network boot without a proper DHCP setup for PXE - 08 Jun 2011

Now that we are running Clear [6-13Mbps down / 1Mbps up + (unlimited North America) VoIP @ $60/month] for our home connection instead of Qwest [1.2 Mbps down / 0.8 Mbps up + Local Phone @ $55/month], I no longer have the niceties of an Actiontec GT701-WG running OpenWRT, and I really don't want to do too much modding to our (Clear) WIXB175 WiMax gateway.

I needed an alternative to the slickness of a network-wide PXE setup. Most of my machines are older and their NICs don't have built-in support for PXE, so I was already throwing floppies in or booting from small flash drives. Thus, I had essentially the same process to go from zero to a sweet CentOS or Debian install. The following is how I have my local file-server configured:
  1. Make your previous tftp directory accessible over HTTP and said HTTP server should be able to run php scripts. I currently have nginx and lighttpd's spawn-fcgi being overseen by supervisor, very similar to Grig Gheorghiu's "Setting up PHP5/FastCGI with nginx"
  2. Throw up a php script in the same directory as where your pxelinux.0 is located. Check out my example ipxe_boot.
  3. Create a custom .ipxe boot script for adding into your iPXE boot image. For more on scripting with iPXE; also take a look at my current custom.ipxe script.
  4. Grab a copy [download/build info page] of the source code from git and build it with your custom .ipxe file attached.
    git clone git://git.ipxe.org/ipxe.git
    cd ipxe/src


    Bootable floopy disk:
    make bin/ipxe.dsk EMBEDDED_IMAGE=../../custom.ipxe
    cat bin/ipxe.dsk > /dev/fd0


    Bootable usb PXE replacement:
    make bin/ipxe.usb EMBEDDED_IMAGE=../../custom.ipxe
    dd if=bin/ipxe.usb of=/dev/sdb
Do be sure that your usb drive is actually /dev/sdb!
Want to comment or have a question? Drop me a line on twitter: @jasonzerbe.