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 : BINL (RIS & WDS) support
-new in version : DNS daemon
-new in version : 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 :

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
Excellent and exhaustive guide here by Misty.
Contact me


 Posted by at 0 h 38 min

  20 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
    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:

    echo Hello, world!

    #chain /ipxe/wimboot.txt ||
    #chain http://boot.rackspace.com/menu.ipxe
    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


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


    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:, 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:, XID:573F4C2B
    4:01:31 Proxy boot filename empty?
    4:01:31 PDHCPd:DHCP_ACK sent, IP:, 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:, 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


  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 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 _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).


  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).

  6. Hi,

    I want to boot acronis with pxe but pc is turning boot screen cant download NBP file.

    what is the reason of this?

    Thank you for yours reply

    Best regards

  7. […] That could be handy at some point with either CloneDisk or TinyPXE Server. […]

  8. root=D:\pxeboot\2019linuxserver\tftpboot\

  9. This is set in the config: »

    But the program is started, the startup directory is still: »

  10. My tftpboot directory is D:\tftpboot, but the file I want to start is D:\tftpboot\grub\grldr. If the grldr file is selected, the tftpboot directory will become D:\tftpboot\grub\, can I not change tftp In the case of a directory, use the startup file in the subdirectory

  11. 你好,我用alive修改的Grub2实现了网络安装微软原版iso(不再需要另外放置boot.wim),
    loopback netiso (http)/cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso
    set grubfm_file=(netiso)/sources/boot.wim

    16:32:37 HTTPd:Connect:, TID=12644
    16:32:37 HTTPd:Client: [GET] //cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso RangeStart:13152813056
    16:32:37 HTTPd:Server : Returning //cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso
    16:32:38 HTTPd:Exception: , Connection Closed Gracefully.
    16:32:38 HTTPd:DisConnect: TID=12644
    16:32:38 HTTPd:Connect:, TID=2208
    16:32:38 HTTPd:Client: [GET] //cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso RangeStart:13153206272
    16:32:38 HTTPd:Server : Returning //cn_windows_10_business_editions_version_1903_x64_dvd_e001dd2c.iso

  12. I use it with « AIOBoot » to boot a computer from the network and at first it didn’t work, I thought it was a problem with the configuration in « Tiny PXE Server » ( but I tried activating the DHCP of my router and it worked, but disabling the DHCP of the router no longer starts from the network, could you give me a suggestion to configure « Tiny PXE Server » to work with my router with DHCP disabled please?
    Thank you very much, it’s a great program. Then I leave the LOG.

    With DHCP disabled on my Router.

    21:20:45 DHCPc:discovering for another DHCPd on LAN
    21:20:45 ROOT=V:\AIO\
    21:20:45 DHCPd started…
    21:20:45 DHCPd started…
    21:20:45 TFPTd started…
    21:20:45 HTTPd:80 started…
    21:20:50 DHCPc:no other DHCPd discovered
    21:20:58 DHCPd:DISCOVER discarded, MAC:C0-25-A5-08-EF-72, XID:C2B9748D
    21:21:02 DHCPd:DISCOVER discarded, MAC:C0-25-A5-08-EF-72, XID:C2B9748D
    21:21:10 DHCPd:DISCOVER discarded, MAC:C0-25-A5-08-EF-72, XID:C2B9748D
    21:21:25 DHCPd:DISCOVER discarded, MAC:C0-25-A5-08-EF-72, XID:C2B9748D
    21:21:43 DHCPd:DISCOVER received, MAC:C0-25-A5-08-EF-72, XID:5346D720
    21:21:43 DHCPd:OFFER sent, IP:, XID:5346D720
    21:21:47 DHCPd:DISCOVER received, MAC:C0-25-A5-08-EF-72, XID:5346D720
    21:21:47 DHCPd:OFFER sent, IP:, XID:5346D720
    21:21:55 DHCPd:DISCOVER received, MAC:C0-25-A5-08-EF-72, XID:5346D720
    21:21:55 DHCPd:OFFER sent, IP:, XID:5346D720
    21:22:11 DHCPd:DISCOVER received, MAC:C0-25-A5-08-EF-72, XID:5346D720
    21:22:11 DHCPd:OFFER sent, IP:, XID:5346D720
    21:23:01 DHCPd:DISCOVER received, MAC:90-78-B2-43-96-54, XID:179F096A
    21:23:01 DHCPd:OFFER sent, IP:, XID:179F096A
    21:23:19 DHCPd:DISCOVER received, MAC:C0-25-A5-08-EF-72, XID:DDD8F155
    21:23:20 DHCPd:OFFER sent, IP:, XID:DDD8F155

    With DHCP enabled on my Router.

    21:23:19 DHCPd:DISCOVER received, MAC:C0-25-A5-08-EF-72, XID:DDD8F155
    21:23:20 DHCPd:OFFER sent, IP:, XID:DDD8F155
    21:23:23 DHCPd:REQUEST discarded, MAC:C0-25-A5-08-EF-72, XID:DDD8F155
    21:23:23 PDHCPd:REQUEST received, MAC:C0-25-A5-08-EF-72, IP:, XID:76B13B4B
    21:23:23 Proxy boot filename empty?
    21:23:23 PDHCPd:DHCP_ACK sent, IP:, xid:76B13B4B
    21:23:24 TFTPd:DoReadFile:ipxe64.efi B:1468 T:1064704
    21:23:24 TFTPd:DoReadFile:ipxe64.efi B:1468 T:0
    21:23:30 DHCPd:DISCOVER received, MAC:C0-25-A5-08-EF-72, XID:4511B04A
    21:23:30 DHCPd:OFFER sent, IP:, XID:4511B04A
    21:23:30 DHCPd:REQUEST discarded, MAC:C0-25-A5-08-EF-72, XID:4511B04A
    21:23:30 TFTPd:DoReadFile:menu.ipxe B:1432 T:7615
    21:23:30 HTTPd:Connect:, TID=10280
    21:23:30 HTTPd:Client: [GET] /grub/themes/splash.png
    21:23:30 HTTPd:Server : Returning /grub/themes/splash.png
    21:23:41 HTTPd:Exception: , Connection Closed Gracefully.
    21:23:41 HTTPd:DisConnect: TID=10280
    21:31:24 DHCPd:DISCOVER discarded, MAC:90-78-B2-43-96-54, XID:9144048B
    21:31:29 DHCPd:DISCOVER discarded, MAC:90-78-B2-43-96-54, XID:9144048B

  13. […] ques PfSense. Si vous préférez Windows, il existe de petites applications tout-en-un comme Tiny PXE Server (version complément, il nous faut les bibliothèques pxelinux, pour le démarrage du […]

  14. […] glanées sur des forums : Synology (NFS+HTTP) + un routeur Tomato (DHCP) couplé à l'excellent TinyPXE Server sur […]

 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>



Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.