TinyPXE Server

 

I have been playing with pxe booting for a while, first starting with pxelinux, then gpxe and lately with ipxe.

I am mostly a windows user and as an IT often needs a quick (=no install) and portable (=run from USB) dhcp server including a tftp server and a http server offering me then pxe booting.
I could use tftp32 or serva but i like to make my own tools and these 2 were missing some features here and there.

So here comes a small portable dhcp server including a tftp and a http server.

This is freeware (and will always be), should be opensource and the unique here idea is to share and contribute.

-dhcp daemon supports an alternative filename based on the user-class thus enabling chainloading (gpxe->pxelinux, ipxe->script, etc), and also support settings dhcp options (which can then be used by your boot loader)
-tftp daemon supports tsize and blksize commands.
-http daemon support head, range (mandatory for ipxe sanboot options) and over 2gb iso.
-new in version 1.0.0.7 : BINL (RIS & WDS) support
-new in version 1.0.0.10 : DNS daemon
-new in version 1.0.0.14 : ProxyDHCP option

The root home of tftp and http is the folder where you main pxe loader sits.
I put all my iso files in a sub folder called images.
I put all my wim files in a sub folder called sources.
I put all my other loaders, in case I want to chain load, in next to my main loader (bootmgr, pxelinux, gpxe, grldr, etc)

In the attached screenshot, i load ipxe then chainloads a script (menu.ipxe).
In the script 3 different methods : the classic memdisk, a newer approach with sanboot and a new kid on the block wimboot.

More info about these loading methods here :
http://www.syslinux….dex.php/MEMDISK
http://ipxe.org/cmd/sanboot
http://ipxe.org/wimboot

Side note about ipxe+sanboot+http : I am big fan.
I have always been looking for a quick and efficient boot from lan methods and this is one is great : executes as it read and faster than memdisk since no preloading of the ISO is required.
iPXE reaches 50/60 MBits/secs on my lan.

« Voila ».
Download here
Any questions, feedback is welcome here
Some quick how to’s here and here
Contact me

rescue

 Posted by at 0 h 38 min

  9 Responses to “TinyPXE Server”

  1. Good work, have to replace all the trend of similar products, gas!
    If we can improve the following function is very good
    1.psl add an embedded script retry automatically loads default.ipxe file . like this function to avoid DHCP get ip address cycle.
    2.add save config and relode config function
    3.add profile manager ,if chose this profile will display all this profile setting!
    4.gpxe or ipxe can be browser file ,filename and gpxe or ipxe need file path
    5.ipxe 1.0.0.+open network firm to config net0 always filed
    6.languages . pls use ini file translated into different languages
    7.If all the configuration file settings, can in the graphical interface operation completion is very beautiful.
    8.add dhcp option 82 61 116 120 42
    9.add pxe boot need password(option)
    10.add allow multicast(maybe)
    11.documents need more and more !!!!
    12.httpd you can use http://www.rejetto.com/hfs/?f=dl
    download sources: http://downloads.sourceforge.net/hfs/hfs2.3d.src.zip
    13. about SMB, maybe have windows authentic,eg.windows domain

    on vmware system :win7 32bit pro use this tool for Microsoft Deployment Toolkit 2013 PXE Boot capture client and deploy windows 7 & 8 & 8.1
    issue:
    1.The machine boot sequence
    00000=ipxe/pcibios/ipxe.pxe —->00009=default.ipxe After the failure of this will go to your menu.So there may be problems of place, please check and repair pls check log
    2. if file ‘D:\Lib\Soft\TFTP_Server\Tiny-PXE-Server\files\ipxe\default.ipxe-‘ change to ‘D:\Lib\Soft\TFTP_Server\Tiny-PXE-Server\files\ipxe\default.ipxe’
    The contents of the file is changed into will work:
    ————————————————–
    #!ipxe

    echo Hello, world!

    #chain /ipxe/wimboot.txt ||
    #chain http://boot.rackspace.com/menu.ipxe
    #shell
    set boot-url http://${dhcp-server}
    kernel ${boot-url}/wimboot.i386
    initrd ${boot-url}/BOOTMGR BOOTMGR
    initrd ${boot-url}/BOOT/BCD BCD
    initrd ${boot-url}/BOOT/BOOT.SDI BOOT.SDI
    initrd ${boot-url}/SOURCES/BOOT.WIM BOOT.WIM
    boot

    exit
    —————————————————–

    3.your config get operation not supported or nic no found
    The problem of playback way: modify config.ini eg: ;00009=default.ipxe

    log:

    4:01:17 ROOT=D:\Lib\Soft\TFTP_Server\Tiny-PXE-Server\files\
    4:01:17 DHCPd:67 started…
    4:01:17 DHCPd:4011 started…
    4:01:17 TFPTd started…
    4:01:18 HTTPd started…
    4:01:18 SMB failed: 0
    4:01:18 DNSd:53 started…
    4:01:29 DHCPd:DISCOVER received, MAC:00-50-56-3F-4C-2B, XID:573F4C2B
    4:01:29 DHCPd:OFFER sent, IP:0.0.0.0, XID:573F4C2B
    4:01:31 DHCPd:REQUEST discarded, MAC:00-50-56-3F-4C-2B, XID:573F4C2B
    4:01:31 PDHCPd:REQUEST received, MAC:00-50-56-3F-4C-2B, IP:192.168.52.128, XID:573F4C2B
    4:01:31 Proxy boot filename empty?
    4:01:31 PDHCPd:DHCP_ACK sent, IP:192.168.52.128:68, xid:573F4C2B
    4:01:31 TFTPd:DoReadFile:ipxe/pcibios/ipxe.pxe B:0 T:392457
    4:01:31 TFTPd:DoReadFile:ipxe/pcibios/ipxe.pxe B:1456 T:0
    4:01:57 DHCPd:DISCOVER received, MAC:00-50-56-3F-4C-2B, XID:26222502
    4:01:57 DHCPd:iPXE user-class detected
    4:01:57 DHCPd:OFFER sent, IP:0.0.0.0, XID:26222502
    4:01:57 DHCPd:REQUEST discarded, MAC:00-50-56-3F-4C-2B, XID:26222502
    4:02:03 TFTPd:OpenError:Cannot open file « D:\Lib\Soft\TFTP_Server\Tiny-PXE-Server\files\ipxe\default.ipxe ». 系统找不到指定的文件。(conn’t find this file)
    4:02:03 TFTPd:DoReadFile:/menu.ipxe B:1432 T:11675

    ref:

  2. http://rmprepusb.blogspot.nl/2014/09/tiny-pxe-server-tryout.html

    no uefi

    I’ve been trying for days to boot an iso winpe_x86 with Tiny PXE server but so far has not succeeded. I use the attached URL as image. But as it is described here it does not work

    I want to boot with ipxe a winpe.x iso

  3. Love TinyPXE Server .. need to update page to state 1.0.0.19 is out !! 😛

    I have a tech shop and would like to use it there, is there anyway to setup a driver directory for nic adapters as you can imagine we have so many different computer types com in ? And if so is there any directory structure required.. ie…

    windows_x86\nic\intel
    or
    windows _x64\nic\realtek ..etc?

    Thanks for any help you can offer, and again nice job on this project!!

    • Hi,

      In what context do you wish to use drivers?
      While installing xp in RIS in BINL mode?

      If in Xp/BINL mode, TinyPXE Server will either parse the INF folder (next to the executable) or parse the nics.txt (still next to the executable).

      Regards,
      Erwan

  4. […] various attempts using Serva and other software, I came across TinyPXE. Finally something that would work. TinyPXE was written by a guy who needed a simple, effective, […]

  5. I don’t know if I’m stupid, or whats going on, I’m using this on Win 2016 server and any time I click the exe file it doesn’t start up, nothing seems to happen at all.

    • Never tried in on 2k16 : try run as admin?
      If it does not work, try to delete config.ini and try it again.

    • i’m using on 2016 server (via cocolatey package). I tested the config on a win10 system first and then copied over and ran as service with the instructions on this site. Don’t forget to set start=1. That got me for a good hour. (may consider adding that to the service page).

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)