Difference between revisions of "TFTP"

From ArchWiki
Jump to: navigation, search
(Run: Add systemd start command.)
(22 intermediate revisions by 19 users not shown)
Line 1: Line 1:
[[Category:HOWTOs (English)]]
+
[[Category:File Transfer Protocol]]
Okay i want to describe here how to set up a tftpd server under archlinux.
+
The [[Wikipedia:Trivial File Transfer Protocol|Trivial File Transfer Protocol]] (TFTP) provides a minimalistic means for transferring files.  It is generally used as a part of [[PXE]] booting or for updating configuration and firmware on devices which have limited memory such as routers and printers.
  
At first thing is to install all neccesary stuff:
+
This article describes how to set up a tftpd server under Arch Linux using the {{Pkg|tftp-hpa}} package.
  
pacman -S mkpxelinux tftpd-hpa dhcpd
+
== Installation ==
 +
[[pacman|Install]] the package {{Pkg|tftp-hpa}} which can be found in the [[Official Repositories|official repositories]].
  
Now we need to do some configure stuff at first we will create our dhcpd.conf file.
+
== Configuration ==
 +
The configuration for tftpd is in {{ic|/etc/conf.d/tftpd}}
  
The config is located in /etc/
+
The default configuration is:
 +
#
 +
# Parameters to be passed to TFTPD
 +
#
 +
TFTPD_ARGS="-l -s /srv/tftp/"
  
and have to look like this (basic dhcpd config)
+
The directory {{ic|/srv/tftp}} is created automatically when {{Pkg|tftp-hpa}} is installed.
  
 +
For a complete list of parameters:
 +
$ man in.tftpd
  
ddns-update-style interim;
+
== Run ==
+
subnet *your subnet here* netmask *here your netmask* {
+
        option routers                  *here ip of your router*;
+
        option subnet-mask              *your subnet here again ;)*;
+
+
        option domain-name              "here you can put your domain name if you dont have one take example.com";
+
+
        option time-offset              -18000;    # Eastern Standard Time
+
        next-server *here ip of your maschine where dhcpd is running*;
+
        filename "pxelinux.0";
+
+
        allow booting;
+
        allow bootp;
+
+
+
        range *here the range of ip adresses your dhcpd is allow to take example: 10.0.0.10 10.0.0.200;
+
}
+
  
remove the ** form the config ;).
+
=== Systemd ===
 +
To start the daemon at boot, run:
 +
# systemctl enable tftpd.socket
  
after this you have to run
+
To start the daemon manually:
 +
# systemctl start tftpd.socket
  
mkpxeboot -a
+
=== Sysvinit ===
 +
To start the daemon at boot, add {{ic|tftpd}} to the {{ic|DAEMONS}} array in {{ic|/etc/[[rc.conf]]}}.
  
this will create all images and stuff to boot.
+
To start the daemon manually:
Now we replace the kernel and the initrd.img with the newes from the install iso.
+
# /etc/rc.d/tftpd start
  
  wget ftp://ftp.archlinux.org/other/0.8/i686/ftp-0.8-beta2-20070222-i686.iso
+
To start the daemon without a configuration file:
 +
  # /usr/sbin/in.tftpd -l -s path/to/folder/to/export
  
when download is finished we nearly finished.
+
== Troubleshooting ==
 +
=== tftpd startup fails if ipv6 is disabled ===
 +
If tftpd startup fails without leaving error messages, it might be because ipv6 is disabled and you are not explicitly telling tftpd not to use ipv6. You can make tftpd start by enabling ipv6 or by telling tftpd to only use ipv4, adding the '-4' switch to /etc/conf.d/tftpd
  
mount -o loop /where/the/iso/is/located /path/to/mount/
+
{{hc|/etc/conf.d/tftpd|<nowiki>
cp /path/to/mount/isolinux/initd.img /var/tftpboot/
+
TFTPD_ARGS="-l -4 -s /srv/tftp/"
cp /path/to/mount/isolinux/vmlinuz /var/tftpboot/
+
</nowiki>}}
 
+
now last config and then we can fireup all the stuff
+
 
+
nano/vi/joe... /etc/hosts.allow
+
+
and add this line:
+
tftpd: ALL
+
in.tftpd: ALL
+
 
+
now do
+
 
+
/etc/rc.d/tftpd start
+
and in a terminal
+
dhcpd
+
 
+
Now you can start the pc you want to install.
+
 
+
Good Luck
+
espo
+

Revision as of 04:24, 24 November 2012

The Trivial File Transfer Protocol (TFTP) provides a minimalistic means for transferring files. It is generally used as a part of PXE booting or for updating configuration and firmware on devices which have limited memory such as routers and printers.

This article describes how to set up a tftpd server under Arch Linux using the tftp-hpa package.

Installation

Install the package tftp-hpa which can be found in the official repositories.

Configuration

The configuration for tftpd is in /etc/conf.d/tftpd

The default configuration is:

#
# Parameters to be passed to TFTPD
#
TFTPD_ARGS="-l -s /srv/tftp/"

The directory /srv/tftp is created automatically when tftp-hpa is installed.

For a complete list of parameters:

$ man in.tftpd

Run

Systemd

To start the daemon at boot, run:

# systemctl enable tftpd.socket

To start the daemon manually:

# systemctl start tftpd.socket

Sysvinit

To start the daemon at boot, add tftpd to the DAEMONS array in /etc/rc.conf.

To start the daemon manually:

# /etc/rc.d/tftpd start

To start the daemon without a configuration file:

# /usr/sbin/in.tftpd -l -s path/to/folder/to/export

Troubleshooting

tftpd startup fails if ipv6 is disabled

If tftpd startup fails without leaving error messages, it might be because ipv6 is disabled and you are not explicitly telling tftpd not to use ipv6. You can make tftpd start by enabling ipv6 or by telling tftpd to only use ipv4, adding the '-4' switch to /etc/conf.d/tftpd

/etc/conf.d/tftpd
TFTPD_ARGS="-l -4 -s /srv/tftp/"