Hi Gents,
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 daemons support head, range (mandatory for ipxe sanboot options) and over 2gb iso.
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".
Any questions, feedback is welcome.
Regards,
Erwan
The menu.ipxe script :
<code>
#!ipxe
set boot-url http://192.168.1.100
######## MAIN MENU ###################
:start
menu Welcome to iPXE's Boot Menu
item
item --gap -- ------------------------- Operating systems ------------------------------
item 7pe_x86_E Boot 7pe_x86 via sanboot
item pmagic Boot pmagic via memdisk
item wimboot wimboot
item --gap -- ------------------------------ Utilities ---------------------------------
item shell Enter iPXE shell
item reboot Reboot
item
item exit Exit (boot local disk)
choose --default 7pe_x86_E_1 --timeout 30000 target && goto ${target}
########## UTILITY ITEMS ####################
:shell
echo Type exit to get the back to the menu
shell
set menu-timeout 0
goto start
:failed
echo Booting failed, dropping to shell
goto shell
:reboot
reboot
:exit
exit
########## MENU ITEMS #######################
:7pe_x86_E
sanboot --no-describe ${boot-url}/images/7pe_x86.iso || goto failed
goto start
:pmagic
initrd ${boot-url}/images/pmagic/pmagic_2013_02_28.iso
chain ${boot-url}/memdisk iso || goto failed
goto start
:wimboot
#case sensitive
kernel wimboot
initrd BOOTMGR BOOTMGR
initrd BOOT/BCD BCD
initrd BOOT/BOOT.SDI BOOT.SDI
initrd SOURCES/BOOT.WIM BOOT.WIM
boot
goto start
</code>