====== Filename specification ======
Depending of its version, Etherboot supports several file transfer protocols.
By default, etherboot will download by ''tftp'', but this can be altered by
* specifying a full URI, including the protocol prefix
* change default to NFS at compile time: There is an appropriate option available.
===== TFTP =====
TFTP stands for ''Trivial File Transfer Protocol'' and has been the standard file transfer protocol for etherboot from the beginning. It is also used by proprietary PXE implementations, and often for firmware updating and similar tasks on network appliances.
On the server side, there are lots of tftp daemons that could be used. Good experience has been reported with the ''tftpd-hpa'' daemon for Linux. There are users having a Windows-based server that runs the complimentary tftp daemon, which seems to also work fine. In theory, every TFTP server respecting standards should work, anyway.
If you want to use TFTP, that is already enabled in the standard configuration. You can specify the filename like filename "/image.nbi";
.
Most TFTP servers will prepend a so-called "tftp root dir" to this path, so this might refer to the file ''/tftpboot/image.nbi'' on a Linux host, or e.g. ''C:\windows\tftproot\image.nbi'' on a windows machine.
Alternatively, you can use the full syntax like
tftp://192.168.0.201/filename.nbi
If you make use of the optional [[dnsresolver|DNS resolver support]] in Etherboot, you may even specify a server name instead of the IP address.
//Beware:// If you want to use the ''next-server'' as the DHCP information contains, you must either use the short form (without ''tftp://'' prefix), or use three slashes in a row, to mark the fact that no ip address is specified (like ''tftp:///filename.nbi'').
===== NFS =====
NFS is a traditional Unix Network file system protocol. It must be specifically compiled in (which is not the case in default config).
With another option, you can make it the default protocol. //Only in this case,//
filename "/image.nbi";
will refer to NFS downloads. If you do not activate the NFS-as-default option, you will have to use a full URI, like
filename "nfs://192.168.0.201/path/filename.nbi"
On the server side please //export// the appropriate directory so that the boot clients can access the files. Read-only access is sufficient, of course. If in our example the bootfile resides in the directory ''/tftpboot/files/'', the following line in ''/etc/exports'' could do:
/tftpboot/files 192.168.0.0/24(ro)
FIXME NFS accesses occur as "root" user (thus, on most systems, automatically remapped to "nobody"-user). Make sure that permissions allow access to the boot files for this user.
===== HTTP =====
HTTP, the hypertext transfer protocol, has been supported by Etherboot for a rather short while. Because of a quite minimalistic TCP implementation performance is not as impressive - which will probably change with the switch to uIP stack.
filename "http://192.168.0.201:80/path/filename.nbi";
gives a complete filename specification. The '':80'' part may be omitted, defaulting to the HTTP standard port 80. In combination with the [[dnsresolver|DNS resolver option]], you can even use host names. In theory you could boot a machine over the internet, there is no strictly technical reason why booting from ''http://www.ltsp.org/downloads/v4.2/kernel-2.6.14-1.nbi'' (or similar) should not work. Of course the network bandwith in a local area network tends to be better :-)
===== Multicast protocols =====
Please see also [[multicast|the Multicast information page]]
==== TFTM ====
A full URI must always be specified:
filename "x-tftm://192.168.0.201//lts/vmlinuz.ltsp";
Note the double slash behind the IP address. In case you specify a single slash, the filename really requested from the server will NOT begin with a slash. This fact depends on the usage of / as path separator and the fact that TFTM implementations might give requested files without path a special meaning. To go sure, just use the double slash.
By the way, the ''x-'' prefix has been selected because there has not been an official protocol acronym delegation like ''nfs'', ''http'' and the like: ''x-'' means experimental.
==== SLAM ====
Also for SLAM, a full URI must be used. See the [[multicast]] page for details.
filename "x-slam://192.168.0.201:10000/239.255.1.1:10000";