pxesrv Package

This page lists all files and folders included in the Tiny PXE Server version 1.0.0.20 (dated 12/2/2017 (19:29)) download package (pxesrv.zip). The Tiny PXE Server executable (pxesrv.exe) forms only a small part of the download package (executable is only 929 KB) - the remainder of the download is made up of Network Bootstrap Programs, sample files, etc.

The following displays the directory structure. Files are shown in RED (with path in BLUE). Root directories are shown in GREEN. Click on the RED or GREEN links below for further information about each file/directory -

Files and folders in the pxesrv.zip package are listed in alphabetical order below -

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

__offline.bat

Sample batch file that can be used (along with a corresponding entry in config.ini (e.g. offline=C:\pxesrv\__offline.bat)) to execute commands when the Offline button is pressed in the Tiny PXE Server GUI.

__online.bat

Sample batch file that can be used (along with a corresponding entry in config.ini (e.g. online=C:\pxesrv\__online.bat)) to execute commands when the Online button is pressed in the Tiny PXE Server GUI.



B

BOOT (Directory)

Directory used for WinPE 2.*\3.*\4.0\5.* files. Copy the BCD store here. This is the default location for WinPE network boot files. If using the wimboot.ipxe script then boot.sdi will also need to be copied here.

bootutil.conf

PXELinux sub-menu loaded via the default menu file (Utilitaires de boot menu option). This is a sample menu. The following disk images can be loaded via this sub-menu (the disk images will need to be downloaded and added to the images directory) -



C

centos.conf

PXELinux sub-menu loaded via default > install.conf (Install CD's > install Centos menu options). Contains a sample menu for booting the CentOS Linux project.

config.sample

Sample configuration file for use with pxesrv.exe. Can be used to preload settings - this is covered in more detail in the pxesrv Config section of this guide. The following has been copied from pxesrv-faq.xhtml -

11.how to pre load settings in Tiny PXE Server
rename config,sample into config,ini
uncomment (remove; in front of the line) the needed lines & set the option(s)

chain.c32

PXELinux COM32 module. The following is from http://www.syslinux.org/.../chain.c32 -

"...chain.c32 is a COM32 module for Syslinux. It can chainload MBRs, partition boot sectors, Windows bootloaders (ntldr, setupldr.bin and bootmgr), MS-DOS and PC-DOS io.sys, Freedos kernel.sys, isolinux.bin (only from ISOLINUX), grldr of grub4dos or a bootsector saved to a file. It can also swap BIOS drive numbers or hide partitions...."



D

debian.conf

PXELinux sub-menu loaded via default > install.conf (Install CD's > install Debian menu options). Contains a sample menu option for booting the Debian Linux project.

debian-installer (Directory)

Empty directory. Debian Linux project files (linux and initrd.gz) can be copied here (to the \files\debian-installer\I386 directory) and booted via the debian.conf submenu.

default (grub4dos)

The plain text boot menu loaded by Grub4dos. This is a sample file.

default (pxelinux)

The plain text boot menu loaded by PXELinux. The majority of the menu options will load sub-menus contained in the menuconf directory. Menu options -

diskutil.conf

PXELinux sub-menu loaded via the default menu file. The following disk images can be loaded via this sub-menu (disk images will need to be downloaded and added to the \files\images\hdd\ directory - the directory \files\images\ exits, however the \hdd\ sub-directory will need to be created manually) -

dsl.conf

PXELinux sub-menu loaded via default > livecds.conf (Live CDs > dsl menu options). Contains a sample menu for booting the Damn Small Linux Linux project.



F

fc6.conf

PXELinux sub-menu loaded via default > install.conf (Install CD's > install Fedora menu options). Contains a sample menu for booting the Fedora Linux project.

files

Directory containing several PXE loaders including pxelinux.0. Assuming the PXE loader is loaded from this directory it will also be the tftp and http root directory.

filter.sample

Sample file used to restrict PXE boot to systems with a specified MAC addresses. The following has been copied from pxesrv-faq.xhtml -

12. how to serve only specified mac addresses (and ignore others)
rename filter.sample to filter.txt and input specific mac address(es)

floppies.conf

PXELinux sub-menu loaded via the default menu file (Floppies menu option). The following disk images can be loaded via this sub-menu (disk images will need to be downloaded and added to the images directory) -

freebsd.conf

PXELinux sample menu containing an entry for installing FreeBSD.



G

gpxe.conf

PXELinux sub-menu loaded via the default menu file (gPXE menu option). This is a sample menu and includes the following options -

Several other options will need to be edited as a number of settings are hardcoded to use IP address http://192.168.1.100.

gpxe-1.0.1-gpxe.pxe

gPXE bootstrap loader. This version contains a range of native drivers and gives better performance than the UNDI version of gPXE, however it may not contain a native driver for client systems NIC.

.pxe builds are designed to be chainloaded. On loading, .pxe builds will unload the underlying UNDI and PXE code.

The following information is from the gPXE website (http://etherboot.org/wiki/index.php) -

"gPXE is an open source (GPL) network bootloader. It provides a direct replacement for proprietary PXE ROMs, with many extra features such as DNS, HTTP, iSCSI, etc. ...gPXE evolved from Etherboot, and is maintained by the Etherboot project."

gPXE project homepage - http://etherboot.org/wiki/start. Please note that gPXE is no longer in development and has been officially replaced with iPXE.

gpxe-1.0.1-gpxe.kpxe

This build is similar to gpxe-1.0.1-gpxe.pxe - the only difference being that .kpxe builds will keep the underloading UNDI code loaded but will unload PXE.

gpxe-1.0.1-undi.pxe

The Universal Network Device Interface (UNDI) version of the gPXE bootstrap loader. This is a "light" version of gPXE with a generic driver that works on cards that have a vendor UNDI ROM - it uses UNDI code contained on the network card it was booted from (i.e. on the client system). UNDI is slower than using a native driver.

.pxe builds are designed to be chainloaded. On loading, .pxe builds will unload the underlying UNDI and PXE code.

See here for more information regarding gPXE.

gpxe-1.0.1+-gpxe.pxe

gPXE bootstrap loader. This version contains a range of native drivers and gives better performance than the UNDI version of gPXE, however it may not contain a native driver for the network card on the client system.

.pxe builds are designed to be chainloaded. On loading, .pxe builds will unload the underlying UNDI and PXE code.

See here for more information regarding gPXE.

gpxe-1.0.1+-gpxe.kpxe

This build is similar to gpxe-1.0.1+-gpxe.pxe - the only difference being that .kpxe builds will keep the underloading UNDI code loaded but will unload PXE.

GPXE.KRN

The linux kernel version of the gPXE bootstrap loader. This version can be loaded via SYSLINUX/LILO/GRUB.

See here for more information regarding gPXE.

gpxelinux.0

Part of the PXELINUX package. gpxelinux.0 is similar to pxelinux.0 with the addition of http support - it can be used to download files using http on a local area network or over the internet.

grldr

Grub4dos boot loader. Will load the configuration file \menu.lst\default



H

hdt.c32

A SYSLinux COM32 module - Hardware Detection Tool. The following is from http://www.syslinux.org/.../Hdt_(Hardware_Detection_Tool) -

"...HDT (for "Hardware Detection Tool") is a Syslinux com32 module designed to display low-level information for any x86 compatible system..."

http.gpxe

Sample gPXE script. Can be specified as altfilename in config.ini.



I

images (Directory)

Directory. A number of menu options will load disk images from this folder. The relevant disk images/files will need to be copied to this folder - refer to bootutil.conf and floppies.conf.

install.conf

PXELinux sub-menu loaded via the default menu file (Install CD's menu option). This particularly menu contains options for loading additional submenus. Menu options -

ipxe-i386.efi

iPXE bootstrap loader - for use with 32-bit UEFI Client systems booting in UEFI mode. iPXE version 1.0.0+ (30f9) is included in the Tiny PXE Server version 1.0.0.20 download package (dated 12/2/2017 (19:29)). See also ipxe-x86-64.efi

ipxe-snponly-i386.efi

iPXE bootstrap loader - for use with 32-bit UEFI Client systems booting in UEFI mode. iPXE version 1.0.0+ (30f9) is included in the Tiny PXE Server version 1.0.0.20 download package (dated 12/2/2017 (19:29)). See also ipxe-snponly-x86-64.efi

ipxe-snponly-x86-64.efi

iPXE supports booting from the following (NOTE - not all features may be supported in UEFI builds) -

iPXE website - http://ipxe.org/start

"iPXE is the official replacement for gPXE. Any feature present in gPXE is also present in iPXE, and users can seamlessly upgrade from gPXE to iPXE...."

ipxe-snponly-x86-64.efi is an iPXE network boot program for use on systems with 64-bit UEFI firmware. SNP (Simple Network Protocol) builds are the UEFI equivalent of the UNDI driver used on BIOS systems - using generic code instead of a native driver for the Client NIC. SNP builds should be used on unsupported or misbehaving NICs. SNP is likely to be slower than using a native driver.

ipxe-undionly.kpxe

The Universal Network Device Interface (UNDI) version of the iPXE bootstrap loader - iPXE version 1.0.0+ (30f9) is included in Tiny PXE Server version 1.0.0.20 (dated 12/2/2017 (19:29)).

ipxe-undionly.kpxe is a "light" version of iPXE with a generic driver that works on cards that have a vendor UNDI ROM - it uses UNDI code contained on the network card it was booted from (i.e. on the client system). UNDI is slower than using a native driver.

.kpxe builds are designed to be chainloaded. On loading, .kpxe builds will keep the underloading UNDI code loaded but will unload PXE.

See here for more information regarding iPXE.

ipxe-x86-64.efi

iPXE bootstrap loader - for use with 64-bit UEFI Client systems booting in UEFI mode. iPXE version 1.0.0+ (30f9) is included in the Tiny PXE Server version 1.0.0.20 download package (dated 12/2/2017 (19:29)).

Unlike the snponly versions of ipxe, this includes a full driver set with native drivers supporting a variety of NICs. If this build includes a native driver for the Client NIC then it's likely to be faster than using the snponly build.

ipxe.conf

PXELinux sub-menu loaded via the default menu file. This submenu contains two menu options for (chain)loading ipxe.lkrn - one will load menu.ipxe, the other will just load the ipxe.lkrn kernel without passing any parameters to it.

ipxe.iso

iPXE bootable iso file - contains (and automatically loads) ipxe.lkrn.

See here for more information regarding iPXE.

ipxe.lkrn

The linux kernel version of the iPXE bootstrap loader - iPXE version 1.0.0+ (30f9) is included in Tiny PXE Server version 1.0.0.20 (dated 12/2/2017 (19:29)).

ipxe.lkrn can be loaded via SYSLINUX/LILO/GRUB. It's also included in ipxe.iso.

See here for more information regarding iPXE.

ipxe.pxe

iPXE bootstrap loader - iPXE version 1.0.0+ (30f9) is included in the Tiny PXE Server version 1.0.0.20 download package (dated 12/2/2017 (19:29)).

ipxe.pxe contains a range of native drivers and gives better performance than the UNDI version of iPXE, however it may not contain a native driver for the network card on the client system.

.pxe builds are designed to be chainloaded. On loading, .pxe builds will unload the underlying UNDI and PXE code.

See here for more information regarding iPXE.

ipxe.usb

Can be used to PXE boot a client system without native PXE boot support. Write this file to a USB device and boot it on a client system - the file needs to be written (i.e. using a dd type command), not just copied to the device.

iscsi.ipxe

Sample iPXE script with an example for booting from an iSCSI Target. Can be specified as altfilename in config.ini.

iso.ipxe

iPXE script. Sample script to load an ISO file via http - using memdisk. Thie file can be specified as altfilename in config.ini.

isosan.ipxe

iPXE script. Sample script to load an ISO file using the SANBOOT command.



L

licensing.txt

License for Tiny PXE Server.

livecds.conf

PXELinux sub-menu loaded via the default menu file (Live CDs menu option). Contains a sample menu with options for booting a range of Linux Live distros.



M

mboot.c32

PXELinux COM32 module. The following is from http://www.syslinux.org/.../Mboot.c32 -

"...mboot.c32 is a Syslinux module that loads images using the Multiboot specification. A really good use case for this is booting Xen, or any other hypervisor-based virtualization pieces that also require an initrd/initramfs. If your Xen boot doesn't require an initrd, then it is possible to utilize the existing kernel/append method. Another use case for mboot.c32 is to boot FreeBSD ELF kernels with rootfs....."

memdisk

Part of the SYSLINUX package. The following is from http://www.syslinux.org/.../MEMDISK -

"...MEMDISK is meant to allow booting legacy operating systems. MEMDISK can boot floppy images, hard disk images and some ISO images...

...MEMDISK is an auxiliary module used in conjunction with a boot loader that can load linux kernels (EXTLINUX/ISOLINUX/PXELINUX/SYSLINUX, grub, grub4dos grub2, ...). You need a disk image as well as the memdisk file itself. As far as the bootloader is concerned, MEMDISK is the "kernel" and disk image is the initial ramdisk (initrd)....
"

menu.c32

PXELinux COM32 module. The following is from http://www.syslinux.org/.../menu.c32 -

"...menu.c32 is a comboot module for Syslinux that renders a menu on the screen...."

menu.gpxe

Sample gPXE script. Can be specified as altfilename in config.ini.

menu.ipxe

iPXE sample menu with a range of options - many of which duplicate the PXELINUX menus included in the Tiny PXE Server download.

menu.lst (Directory)

The default location for the Grub4dos configuration file - \files\menu.lst\default.

menuconf (Directory)

Directory containing sub-menus for the PXELinux boot loader - loaded via the Default menu file.



N

nics.sample

Sample file. When BINL is used, a request containing VID and PID information is sent to the server. The Tiny PXE Server includes BINL support, however the default behaviour is to parse driver inf files. Rename this file as nics.txt to overrule the built in inf parsing.

O

opensuse-installer (Directory)

Empty directory. OpenSuse Linux project files (linux and initrd) can be copied here and booted via the suse.conf submenu.



P

part.conf

PXELinux sub-menu loaded via the default menu file (Partition Tools menu option).

pxelinux.0

pxelinux.0 is the PXELINUX Network Bootstrap Program (NBP). The following is from http://www.syslinux.org/.../PXELINUX

"...PXELINUX is a Syslinux derivative, for booting Linux off a network server, using a network ROM conforming to the Intel PXE (Pre-Execution Environment) specification..."

PXELINUX version 4.06 is included in the download package - newer versions have issues with chainload compatibility with other boot loaders.

pxelinux.cfg (Directory)

The default location for the PXELINUX configuration file - \files\pxelinux.cfg\default.

pxelinux.gpxe

Sample gPXE script. Can be specified as altfilename in config.ini.

pxespec.pdf

Preboot Execution Environment (PXE) Specification (Version 2.1) - 103 page .pdf document covering Intel's PXE Specification. A useful reference document.

pxesrv-faq.xhtml

Frequently Asked Questions - contains a range of examples for setting up the Tiny PXE Server to boot various Network Bootstrap Programs (and Windows XP installation via RIS, booting WinPE, etc). The instructions are a very brief how to that can be used as a prompt if you are familiar with PXE booting.

pxesrv.exe

The Tiny PXE Server executable.

pxesrv.txt

Changelog for the Tiny PXE Server package.



R

reboot.c32

PXELinux COM32 module. The following is from http://www.syslinux.org/.../Reboot.c32 -

"...reboot.c32 is a COM32 module for Syslinux that is able to reboot the PC. It supports cold and warm rebooting....."

reboot.com

Used to reboot a client system.

rescue.conf

PXELinux sub-menu loaded via the default menu file.



S

sanboot.c32

PXELinux COM32 module. The following is from http://www.syslinux.org/.../Sanboot.c32 -

"...sanboot.c32 is a comboot module for gpxelinux.0 that enables gPXE's SAN booting options (iSCSI and AoE currently). This is only available in >=syslinux-3.71 for gpxelinux.0...."

sanboot.gpxe

Sample gPXE script. Can be specified as altfilename in config.ini.

sdi.c32

PXELinux COM32 module. Can be used to boot Microsoft System Deployment Images (.SDI type files) - SDI files are often used in Windows Embedded and can be used to boot WinPE 1.*.

SOURCES (Directory)

Empty directory. May be used if booting WinPE - depending on the settings in the BCD store located in the boot directory - this is the default location for the WinPE .wim file if the BCD store contained in the Microsoft WAIK/ADK is used.

suse.conf

PXELinux sub-menu loaded via default > install.conf (Install CD's > install OpenSuse menu options). Contains a sample menu for booting the OpenSuse Linux project.

syslogd.exe

syslog daemon used for logging Tiny PXE Server output.

sysutils.conf

PXELinux sub-menu loaded via the default menu file.



U

ubuntu.conf

PXELinux sub-menu loaded via default > install.conf (Install CD's > install ubuntu menu options). Contains a sample menu for booting the Ubuntu Linux project.

ubuntu-installer (Directory)

Empty directory. Ubuntu Linux project files (linux and initrd.gz) can be copied here (to the \files\ubuntu-installer\I386 directory) and booted via the ubuntu.conf submenu.



V

version.txt

Text file containing build/version details.



W

wimboot

wimboot is a module loaded by iPXE that can be used to boot WinPE (.wim) images. The following is from http://ipxe.org/wimboot -

"...wimboot is a boot loader for Windows Imaging Format (.wim) files. It enables you to boot a Windows PE (WinPE) environment from a RAM disk, without wasting the memory used for the RAM disk image..."

wimboot version 2.5.2 is included in the Tiny PXE Server version 1.0.0.20 (dated 12/2/2017 (19:29)) download package.

wimboot.ipxe

iPXE script used in conjunction with wimboot (see http://ipxe.org/wimboot).

See also winpe4.ipxe.

WinNFSd-2.0.zip

WinNSFd is a free open source Network File System (NFS) server for Windows.

"...You can use any NFS client to mount a directory of Windows and read/write files via NFS protocol..."

winnt.sif

Sample file for loading BARTXPE.ISO (in path \images\BARTXPE.ISO). Used for BartPE builds with the Windows 2003 SP1 ramdisk drivers integrated.

winnt_ris.sif

Sample file used to automate the installation of Windows NT 5.* systems (Windows 2000/XP/2003) via Remote Installation Service (RIS).

winpe4.ipxe

Sample iPXE script. Can be specified as altfilename in config.ini.

This script is used to load the wimboot kernel (see http://ipxe.org/wimboot) - loading WinPE. See also wimboot.ipxe.

Document date - 28th February 2017(DRAFT)