tftpd is a Trivial File Transfer Protocol server and allows network booting. Until now the Wiki of IPFire explained how to install IPFire over Tftpd. This Wiki shows how IPFire can also work as a Tftpd in the network.

Installation

tftpd is installed with the Pakfire web interface or via the console:

pakfire install tftpd

Usage

The only WebGUI available is the tftpd service at the menu Status -> Services in the Addon - Services section. There is no other webGUI for this Addon. To configure this Addon open the client console or terminal.

PXE (Preboot eXecution Environment) image via tftpd server

This is a standard created by Intel that allows a computer to load an operating system over a network before booting its own local operating system. This is very useful for remote management and provisioning of computers, as it means you can install an operating system on a computer without needing to be physically present at that computer.

PXE operates in the client/server model. The client sends a request to the server, and the server responds with the necessary boot information. In addition, PXE uses DHCP at a fundamental level to obtain the IP address and other network information.

The PXE process involves several stages, including initializing the network interface, establishing communication with the DHCP server, downloading the required boot files via TFTP (Trivial File Transfer Protocol), and finally booting the downloaded operating system.

Configuration

First of all the basic conditions needs to be created:

  • From the Syslinux project, the files pxelinux.0 , memdisk will be needed
  • Copy the pxelinux.0 and memdisk files into the /var/tftpboot directory
  • then enter:
mkdir -pv /var/tftpboot/pxelinux.cfg
touch default

In the default file is the configuration for pxelinux.0 (see below).

For example, the following might be a possible content:
Comparison: Pxelinux
File: /var/tftpboot/pxelinux.cfg/default

default suse92
prompt 1
timeout 10

label suse92
kernel /SuSE-9.2/i386/linux
append initrd=/SuSE-9.2/i386/initrd vga=0x314   \
    install=nfs://131.188.3.145/proj.stand/suse/suse9.2

label local
LOCALBOOT 0

Note: The file pxelinux.0 must be registered in IPFire. Go to menu Network -> DHCP Server and locate the field filename.

Now restart the tftpd service with:

/etc/rc.d/init.d/tftpd restart

Is WINPE needed?

If WINPE should be started, you need to adapt the file /etc/rc.d/init.d/tftpd in the line "start" as it follows:

loadproc /usr/sbin/tftpd -l -s /var/tftpboot -m /var/tftpboot/tftpd.remap -vvv

In addition, the file tftpd.remap must be created in /var/tftpboot with the following contents:

File: /var/tftpboot/tftpd.remap

# Remap Rules
re ^bootmgr\.exe Boot/bootmgr.exe
r ^\\Boot\\ Boot/
r ^\\boot\\ Boot/
rg \\ /

and set then a appropriate symlink:

ln -s /mnt/xxxx/tftpboot /var/tftpboot

Over a Symlink you can refer the tftpboot folder to another hard disk. This saves space on the IPFire system.

Firmware image via tftpd server

Copy the firmware to the /var/tftpboot directory.

Now restart the tftpd service with:

/etc/rc.d/init.d/tftpd restart

In the devices configuration:

  • enter the IP address of the IPFire server
  • enter the name of the file
  • click Apply

Note: The current pakfire tftpd release is version 5.2 was released by the tftpd development team in 2011. This is the latest release available from the tftpd development team.