config.ini Settings

All options supported by the Tiny PXE Server can be set in the configuration file config.ini - this file needs to be located in the same directory as the Tiny PXE Server (pxesrv.exe). The following thread on the Reboot.pro forum lists all options currently supported in Tiny PXE - http://reboot.pro/...tiny-pxe-server-configuration-file/.

It's possible to specify some options not supported in the GUI in the configuration file - for example automatic logging, turning off the TFTP daemon, running a batch file on start-up, etc.

The configuration file can contain the following sections -

Miscellaneous -


[arch]

The following table lists all options that it's possible to set in the [arch] section of the Tiny PXE Server configuration file config.ini -

Entry Information\Settings
00000 Note that specifying this option will overrule any Network Bootstrap Program set in the filename and opt67 options IF the client system architecture is detected as Intel x86 (BIOS firmware) - if this condition is met then the file specified in this option will be loaded instead. Syntax is "00000=FILE".

Example config.ini entry - 00000=pxeboot.n12

00006 Note that specifying this option will overrule any Network Bootstrap Program set in the filename and opt67 options IF the client system architecture is detected as 32-bit UEFI - if this condition is met then the file specified in this option will be loaded instead. Syntax is "00006=FILE".

Example config.ini entry - 00006=bootia32.efi

00007 Note that specifying this option will overrule any Network Bootstrap Program set in the filename and opt67 options IF the client system architecture is detected as 64-bit UEFI - if this condition is met then the file specified in this option will be loaded instead. Syntax is "00007=FILE".

Example config.ini entry - 00007=bootx64.efi

The following is a list of supported [arch] types (see here) -

Note that the architecture information is sent by the client system - it's extracted from dhcp option 60 - usually in the form PXEClient:Arch:0000X:UNDI:XXXXXXX. If the [arch] section is missing, or if the client architecture is not specified in the [arch] section, then Tiny PXE Server will use the information set in the filename parameter (or opt67).


[dhcp]

The following table lists all options that its possible to set in the [dhcp] section of the Tiny PXE Server configuration file config.ini -

Entry Information\Settings
altfilename GUI Name: Boot File - Filename
DHCP/BOOTP Option #: N/A
Reference: N/A

If the Network Bootstrap Program selected in the Filename option is a iPXE/gPXE network bootstrap program then use this option to automatically load a iPXE/gPXE script - e.g. adding "altfilename=menu.ipxe" to the configuration file will load the sample iPXE menu included in the Tiny PXE Server download.

Example config.ini entry - altfilename=menu.ipxe

bind GUI Name: Bind IP
DHCP/BOOTP Option #: N/A
Reference: N/A

Bind to a the Network Adapter specified in Option 54. This option should be selected if the system contains more than one Network Adapter. Add "bind=1" to the configuration file to enable this option, "bind=0" to disable it.

Example config.ini entry - bind=1

binl GUI Name: BINL
DHCP/BOOTP Option #: N/A
Reference: N/A

Boot Image Negotiation Layer (BINL) is required for Remote Installation Services (RIS) and Windows Deployment Services (WDS) - for remotely deploying Windows. Add "binl=1" to the configuration file to start the binl service or "binl=0" to disable it.

Example config.ini entry - binl=1

cmd GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Use this option to run a batch file or program when the Online button is pressed. Syntax is "cmd=path\file". Note that the file specified in this command will not be executed if Tiny PXE Server is automatically online at start-up (config.ini has start=1 entry).

Example config.ini entry - cmd="C:\Program Files\batch.cmd"

Note - refer also to the online and offline commands.
dnsd GUI Name: DNSd
DHCP/BOOTP Option #: N/A
Reference: N/A

Domain Name System (DNS) daemon. Add "dnsd=1" to the configuration file to start the DNS daemon or "dnsd=0" to disable it.

Example config.ini entry - dnsd=1

filename GUI Name: Boot File - Filename
DHCP/BOOTP Option #: N/A
Reference: N/A

Specify the Network Bootstrap Program to be loaded by the client when connecting to Tiny PXE Server. If the Root Path option is not defined then the directory from which this file is loaded will become the root. Note - DO NOT set the filename option and Opt67 at the same time. opt67 is used to specify a DHCP boot file - filename is used to specify a BOOTP (Bootstrap Protocol) boot file.

Example config.ini entry - filename=pxelinux.0

httpd GUI Name: HTTPd
DHCP/BOOTP Option #: N/A
Reference: N/A

Hypertext Transfer Protocol (HTTP) daemon - a web server that waits for incoming file requests. The daemon answers the request automatically and serves the files over the network using HTTP - this protocol is significantly faster than TFTP (Trivial File Transfer Protocol), however network boot programs that support using HTTP are limited (iPXE, gPXE, gpxelinux). Syntax is "httpd=1" - start the HTTP daemon, "httpd=0" to disable service.

Example config.ini entry - httpd=1

log GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Automatically log output to \log.txt - path is relative to the Tiny PXE Server executable pxesrv.exe. Add "log=1" to the configuration file to enable this option, "log=0" to disable it.

Example config.ini entry - log=1

WARNING - note from the Tiny PXE Server author - "Logging to a file has always given me problems in TPS because it is multi threaded...If you want to log, you can use syslog feature builtin TPS". Enabling a log file may cause I/O errors (e.g. I/O error 103).

NOTE - this command has been deprecated and replaced with syslog.

next-server GUI Name: Next-server
DHCP/BOOTP Option #: N/A
Reference: N/A

Used in ProxyDHCP mode to specify the IP address of the ProxyDHCP server. Alternatively, use Next-Server to specify another TFTP server on the network - see here for more information. This is the address from which the Network Boot File will be loaded.

Syntax is next-server=IP(v4)_Address.

Example config.ini entry - next-server=192.168.1.1

offline GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Automatically execute a program or script when the Offline button is pressed. Syntax is offline=path, where path can be -
  • relative (to pxesrv.exe) - e.g. Offline=offline.cmd
  • absolute - e.g. offline=C:\pxesrv\offline.cmd
online GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Automatically execute a program or script when the online button is pressed. Syntax is online=path, where path can be -
  • relative (to pxesrv.exe) - e.g. online=online.cmd
  • absolute - e.g. online=C:\pxesrv\online.cmd
NOTE - if start=1 then any settings specified in the online parameter will be automatically executed.

opt1 GUI Name: Option 1 (Subnet Mask)
DHCP/BOOTP Option #: 1
Reference: RFC2132

Set subnet mask. E.g. to set subnet as 255.255.255.0, use entry opt1=255.255.255.0 in config.ini.

opt3 GUI Name: Option 3 (Router)
DHCP/BOOTP Option #: 3
Reference: RFC2132

Specifies the IP address for the default router on the client's subnet. Syntax is opt3=IP(v4)_Address.

Example config.ini entry - opt3=192.168.1.1

opt6 GUI Name: Option 6 (DNS Server)
DHCP/BOOTP Option #: 6
Reference: RFC2132

Specifies the IP address for the DNS name server available to the client. Syntax is opt6=IP(v4)_Address.

Example config.ini entry - opt6=192.168.1.1

opt15 GUI Name: Option 15 (DNS Domain Name)
DHCP/BOOTP Option #: 15
Reference: RFC2132

Carries the domain name portion of a client’s fully qualified domain name (FQDN). Syntax is opt15=DNS_DOMAIN_SUFFIX.

opt17 GUI Name: Option 17 (Root Path)
DHCP/BOOTP Option #: 17
Reference: RFC2132

This option should not be confused with the root setting. DHCP Option 17 (Root Path) - "...This option specifies the pathname that contains the client's root disk...". Setting opt17 and root should not cause any conflict.

The following examples could be used with the iPXE network bootstrap program to diskless boot an operating system without the need for an iPXE script -
  • opt17=iscsi:192.168.1.100:tcp:3260:0:test - boot iSCSI target/disk
  • opt17=aoe:e0.0 - boot AoE target/disk
opt28 GUI Name: Option 28 (Broadcast)
DHCP/BOOTP Option #: 28
Reference: RFC2132

"...This option specifies the broadcast address used on the client’s subnet..."

Example config.ini entry - opt28=192.168.1.255

opt43 GUI Name: Option 43 Subopt 1 (PXE MTFTPD IP)
DHCP/BOOTP Option #: 43
Reference: RFC2132

"...Carries some configuration data that is not defined in the standard DHCP RFCs. Individual vendors can define different pieces of data that may be found in this option...."

The current release of Tiny PXE Server uses the syntax opt43=1 to enable DHCP option 43 subopt 1 - setting the value to 0.0.0.0. This setting may be required by some older clients along with setting Opt60=PXEClient. See here for more details.

opt51 GUI Name: Option 51 (Lease time in secs) *
DHCP/BOOTP Option #: 51
Reference: RFC2132

Specifies the length of time (in seconds) from IP address assignment until the client's lease on the address ends. Default value is 86400 seconds (1440 minutes or 24 hours). Syntax is opt51=NUMBER_OF_SECONDS.

Example config.ini entry - opt51=43200

opt54 GUI Name: Option 54 (DHCP Server) *
DHCP/BOOTP Option #: 54
Reference: RFC2132

IP Address of the machine running Tiny PXE Server. This still applies if running the ProxyDhcp service. If multiple Network Adapters are in use on the system running Tiny PXE Server then ensure the correct adapter is selected. Syntax is opt54=IP(v4)_Address.

Example config.ini entry - opt54=192.168.1.1

opt60 GUI Name: Option 60 (ClassID)
DHCP/BOOTP Option #: 60
Reference: RFC2132

"...Carries some identifier from the client that may identify the client’s device class. The DHCP specification does not define what values go into this field, but other specifications do..."

config.ini syntax - opt60=STRING

opt66 GUI Name: Option 66 (Boot Server HostName)
DHCP/BOOTP Option #:
Reference: RFC2132

Specify the fully qualified domain name (FQDN) or IP address of the server hosting the file specified in Option 67. Syntax is opt66=FQDN.

Example config.ini entry - opt66=SERVER-PC

opt67 GUI Name: Option 67 (Boot File Name)
DHCP/BOOTP Option #: 67
Reference: RFC2132

The name of the file to be downloaded from the server specified in Option 66. Note - DO NOT set the filename option and Opt67 at the same time. opt67 is used to specify a DHCP boot file - filename is used to specify a BOOTP (Bootstrap Protocol) boot file.

Example config.ini entry - opt67=wdsnbp.com

Note that some older PXE Clients require a null terminated string after the filename - this can be implemented in Tiny PXE Server by ending the entry with \0 - e.g. if setting opt67 as pxelinux.0, use opt67=pxelinux.0\0 (see discussion here).

opt252 GUI Name: BINL/WDS - Option 252 (Private)
DHCP/BOOTP Option #: 252
Reference: N/A

Note from dhcp-options.html included in the Tiny PXE Server package - "...Individual vendors can define different pieces of data that may be found in this option...". This option can be used to specify the path to a BCD store when using WDS to boot Windows PE - allowing the option to specify a path other than the default BOOT\BCD. Syntax is opt252=data.

Example config.ini entry - opt252=winpe3_boot\BCD

optextra GUI Name: Extra Option
DHCP/BOOTP Option #: N/A
Reference: N/A

Instruction on usage for the Extra Option field is limited. The following posts are from the Reboot.pro forum -

"...Tiny PXE Server has a field "extra option" where you can specify any dhcp option. I aggree that this is not obvious nor friendly...for example : 211.90 would set the pxelinux.reboottime to 90. Alphacharacters need to be translated to numeric..."

"...In the extra option field, you may want to try these ipxe options : 175.6.1.1.1.176.1.1.
175 means we want ipxe options, has total length =6, option 1 length 1 value 1, option 176, length 1, value 1. It will tell ipxe to use your tiny pxe server dhcp first (option 1) and also to not wait for any proxydhcp packet (option 176).
More details here :
http://ipxe.org/howto/dhcpd..."

Example config.ini entry - optextra=175.6.1.1.1.8.1.1

poolstart GUI Name: IP Pool Start *
DHCP/BOOTP Option #: N/A
Reference: N/A

Assign IP addresses starting from the IP address specified here. I.e. if this option is set as 192.168.2.10 then the first client connecting to the server will be assigned the IP address 192.168.2.10, the next client will be assigned the IP address 192.168.2.11, etc. NOTE - this option is ignored if using the ProxyDhcp service. Syntax is poolstart=IP(v4)_Address.

Example config.ini entry - poolstart=192.168.1.100

poolsize GUI Name: IP Pool Size *
DHCP/BOOTP Option #: N/A
Reference: N/A

This setting will determine the number of machines that can simultaneously connect to the server. NOTE - this option is ignored if using the ProxyDhcp service. Syntax is poolsize=INTEGER.

Example config.ini entry - poolsize=10

proxybootfilename GUI Name: BINL/WDS - Boot File Name
DHCP/BOOTP Option #: N/A
Reference: N/A

Note from config.sample included in the Tiny PXE Server package - "...alternative bootp filename if request comes thru proxydhcp (udp:4011)..." - e.g. specify pxeboot.com if using Windows Deployment Service (WDS) with wdsnbp.com specified as Option 67. Syntax is proxybootfilename=FILE.

Example config.ini entry - proxybootfilename=pxeboot.com

proxydhcp GUI Name: ProxyDhcp
DHCP/BOOTP Option #: N/A
Reference: N/A

Dynamic Host Configuration Protocol (DHCP) is a protocol that automatically provides a client PC with configuration information including an Internet Protocol (IP) address and default gateway. Tiny PXE Server includes a DHCP server - unfortunately this can cause conflicts if the network has an existing DHCP server. The Proxy DHCP service can be used if another DHCP server is running on the same network - Tiny PXE Server will then handle PXE requests whilst the existing server handles IP address assignment. "...Simply put proxydhcp is using a separate dhcp from the regular dhcp server to hand out boot parameters. An existing dhcp server isn't modified. Very handy for setting up a PXE environment without access to the existing dhcp infrastructure..." Syntax is "proxydhcp=1" - start the Proxy DHCP service, "proxydhcp=0" disable it.

Example config.ini entry - proxydhcp=1

rfc951 GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: RFC951

Enables support for bootp requests (next to dhcp) for some particular devices like routers, etc. For more information refer to the following post on the Reboot.pro forum - here. Syntax is "rfc951=1" - enable, "rfc951=0" - disable (default setting).

Example config.ini entry - rfc951=1

root GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Select the root directory - this should be the directory containing the Network Bootstrap Program loaded in the filename option. Syntax is root=path, where path can be -
  • relative (to pxesrv.exe) - e.g. root=files
  • absolute - e.g. root=C:\pxesrv\files
  • http address - e.g. root=http://my.web.address/files
In GUI mode, the root defaults to the directory containing the Network Bootstrap Program specified in the filename setting.

If the root path does not exist, then this setting will default to the directory from which pxesrv.exe is running.

smb GUI Name: SMB
DHCP/BOOTP Option #: SMB
Reference: N/A

Server Message Block (SMB) can be used to share access to files between computers on a network. Enabling SMB in Tiny PXE Server will share the root folder - using the sharename PXE. This can be useful in Remote Installation Service (RIS) installations, which require a Windows share. Syntax is "smb=1" - share the root folder as PXE, "smb=0" - disable service (note that if "smb=0" the folder may still be shared depending on the configuration in Windows).

Example config.ini entry - smb=1

start GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Use this option to Online the Server when pxesrv.exe is executed. Syntax is "start=1" - server is Online when started, "start=0" (default setting) - server is Offline when started.

Example config.ini entry - start=1

syslog GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Redirect message to a syslog server. Syntax is "syslog=IP(v4)_Address".

Example config.ini entry - syslog=191.168.2.2

NOTE - Tiny PXE Server (version 1.0.0.20 - dated 12/2/2017 (19:29)) includes a syslog daemon. Use syslog=127.0.0.1 in config.ini and start the syslog daemon before running pxesrv.exe to start logging to log.txt.



tftpd GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Trivial File Transfer Protocol (TFTP) daemon - a TFTP server that waits for incoming file requests. The daemon answers the request automatically and serves the files over the network using TFTP. Syntax is "tftpd=1" (default setting) - start the TFTP daemon, "tftpd=0" - disable service.

Example config.ini entry - tftpd=1

verbose GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Enabling this setting will give more detailed feedback (i.e. in the log file) - potentially helping to troubleshoot problems. Syntax is "verbose=1" - enable verbose mode, "verbose=0" (default setting) - disable verbose mode.

Example config.ini entry - verbose=1

vscroll GUI Name: Not configurable in GUI
DHCP/BOOTP Option #: N/A
Reference: N/A

Intended for use on low resolution displays - a scrollbar will be displayed to facilitate access to the additional options that are usually hidden in the GUI until the More button is pushed. Syntax is "vscroll=1" - enable vscroll mode, "vscroll=0" (default setting) - disable vscroll mode.

Example config.ini entry - vscroll=1

Note - the following site lists a comprehensive range of DHCP and BOOTp codes - http://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml.


[web]

The following table lists all options that its possible to set in the [web] section of the Tiny PXE Server configuration file config.ini -

Entry Information\Settings
port The default port used by the HTTPd daemon is port 80. This may cause conflicts if another web server is running on the network - use this setting to change the port used for HTTP connections. Syntax is "port=PORT_NUMBER"

Example config.ini entry - port=1024


variables

Some variables are supported in some of the Tiny PXE Server settings/parameters -

Variable Information\Settings
@arch Can be used in the altfilename or opt252 parameters. For a list of supported @arch types see here.
  • altfilename - use the client system architecture to serve an iPXE script or menu to a specific architecture type. Example script/menu filename 00007.txt - menu will be loaded by client systems with 64-bit EFI architecture
  • opt252 - use the client system architecture to serve a BCD store for a specific architecture type. E.g. opt252=@arch\bcd will load a BCD store from the path 00007/BCD on 64-bit EFI clients, or 00000/BCD on intel x86 (BIOS) systems.


@ip Use in the altfilename parameter (e.g. altfilename=@ip.txt). Use the IP address assigned to the client PC - e.g. to serve an iPXE script or menu to a specific client. This is of limited use as IP addresses are assigned dynamically. Example file name 192.168.2.5.txt.

@mac Used in the altfilename parameter (e.g. altfilename=@mac.txt). Use the (unique) MAC address of a client PC - e.g. to serve an iPXE script or menu to a specific client. Filename should use the mac address in hexadecimal format using dash (-) separators - e.g. 00-0C-29-4F-5D-FE.txt

Document date - 28th February 2017(DRAFT)