I had been meaning to set up a network boot system for FlingOS for a while. Yesterday I finally got around to it and after several hours of trying different software and solutions, I finally found one which worked nicely.
There is a modest selection of software out there which will let you set up PXE Network booting. The majority of it focuses around Windows installation and updating. What I needed was a system that would allow me to switch on any network-connected laptop and have it boot the latest version of FlingOS that I just compiled on my PC or main laptop. FlingOS already uses Syslinux as its bootloader so it made sense to use the Pxelinux variant of Syslinux. Unfortunately, Pxelinux requires something that most PXE Server programs don’t support – something called the tsize command.
PXE relies on a combination of DHCP, Binl and TFTP to allow a PC to detect the availability of a PXE server and to retrieve the boot image(s). Pxelinux requires that the TFTP server supports the unusual tsize command. “tsize” allows Pxelinux to request the size of a file ahead of time i.e. before it starts to retrieve it.
After 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, no-install solution to running a PXE server. Perfect. It even comes with support for Pxelinux, Grub and others. What’s even better, is that it can auto-load everything from a human-readable config file. So once you’ve worked out what setup you need, you can just put it in the config file and never have to worry after that.
Here’s a copy of the contents of my config file (config.ini):
[arch] ;will over rule the bootp filename or opt67 if the client arch matches one of the below 00006=bootia32.efi 00007=bootx64.efi [dhcp] ;needed to tell TFTPd where is the root folder root=G:\Fling OS\Fling OS\Kernel\Kernel\bin\Debug\DriversCompiler\ISO ;bootp filename as in http://tools.ietf.org/html/rfc951 ;filename=ipxe-undionly.kpxe filename=pxelinux.0 ;alternative bootp filename if request comes from ipxe or gpxe ; altfilename=menu.ipxe ;start HTTPd httpd=0 binl=1 start=1 dnsd=0 proxydhcp=1 ;default=1 bind=0 ;tftpd=1 by default ;will share (netbios) the root folder as PXE smb=0 ;will log to log.txt log=0 opt1=255.255.255.0 opt3=192.168.43.1 opt6=192.168.43.1 opt28=192.168.43.255 ;opt15= ;opt17= ;opt43= ;opt51= opt54=192.168.43.120 ;opt67= ;opt66= ;opt252= poolstart=192.168.43.121 poolsize=20 ;alternative bootp filename if request comes thru proxydhcp (udp:4011) ;proxybootfilename= ;any extra dhcp options ;my gpxe / ipxe dhcp options optextra=175.6.1.1.1.8.1.1 ;the below will be executed when clicking on the online button ;cmd=_test.bat ;if log=1, will log to log.txt log=1 [frmDHCPServer] top=441 left=258
Hi,
I am happen to be the author of TinyPXE Server : thanks for your kind words 🙂
Regards,
Erwan
Hi Erwan, No problem! Thanks for the software! It really is very useful and the best, simplest solution I’ve found. Just out of interest, how did you come across my post about it? Google, social media, analysis of blog stats or something else? 🙂
Many thanks, Ed
Just looked at your blog’s comments. I didn’t realise WordPress could auto-post referrer comments like that! 😀
Tiny better than Serva??
you kidding right?
Serva is million times more powerful than Tiny…
Powerful perhaps but it didn’t do what I needed it to. Powerful at the expense of effectiveness is not always a good compromise and in this case, I was unable to configure Serva to do what I needed it to. TinyPXE worked much more easily. I have used Serva for other tasks.
>Powerful perhaps but it didn’t do what I needed it to.
what were you trying to do???
>Powerful at the expense of effectiveness
I do not know what you mean. Serva is very powerful and of course effective.
>I was unable to configure Serva to do what I needed it to
Please tell us what you couldn’t do…
>TinyPXE worked much more easily.
This sounds like advertising 😉 it is a fact TinyPXE developer implement in his software what he can somehow copy (Wireshark) from Serva. i.e. http://reboot.pro/topic/18962-bug-reports-requests-howtos-about-tiny-pxe-server/page-19
TinyPXE is good for playing; if you have to work you need Serva.