/[d-i]/trunk/doc/manual/en/install-methods/install-tftp.xml
ViewVC logotype

Contents of /trunk/doc/manual/en/install-methods/install-tftp.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8166 - (show annotations) (download) (as text)
Sun Jan 25 14:30:10 2004 UTC (9 years, 4 months ago) by mck-guest
File MIME type: text/xml
File size: 15004 byte(s)
Move together bits which belong together, minor updates
1 <!-- retain these comments for translator revision tracking -->
2 <!-- $Id: install-tftp.xml,v 1.11 2004/01/25 14:30:10 mck-guest Exp $ -->
3
4 <sect1 condition="supports-tftp" id="install-tftp">
5 <title>Preparing Files for TFTP Net Booting</title>
6 <para>
7
8 If your machine is connected to a local area network, you may be able
9 to boot it over the network from another machine, using TFTP. If you
10 intend to boot the installation system from another machine, the
11 boot files will need to be placed in specific locations on that machine,
12 and the machine configured to support booting of your specific machine.
13
14 </para><para>
15
16 You need to setup a TFTP server, and for CATS machines, a BOOTP server
17 <phrase condition="supports-rarp">, or RARP server</phrase>
18 <phrase condition="supports-dhcp">, or DHCP server</phrase>.
19
20 </para><para>
21
22 <phrase condition="supports-rarp">The Reverse Address Resolution Protocol (RARP) is
23 one way to tell your client what IP address to use for itself. Another
24 way is to use the BOOTP protocol. </phrase>
25
26 <phrase condition="supports-bootp">BOOTP is an IP protocol that
27 informs a computer of its IP address and where on the network to obtain
28 a boot image. </phrase>
29
30 <phrase arch="m68k"> Yet another alternative exists on VMEbus
31 systems: the IP address can be manually configured in boot ROM. </phrase>
32
33 <phrase condition="supports-dhcp">The DHCP (Dynamic Host Configuration
34 Protocol) is a more flexible, backwards-compatible extension of BOOTP.
35 Some systems can only be configured via DHCP. </phrase>
36
37 </para><para arch="powerpc">
38
39 For PowerPC, if you have a NewWorld Power Macintosh machine, it is a
40 good idea to use DHCP instead of BOOTP. Some of the latest machines
41 are unable to boot using BOOTP.
42
43 </para><para arch="alpha">
44
45 Unlike the Open Firmware found on Sparc and PowerPC machines, the SRM
46 console will <emphasis>not</emphasis> use RARP to obtain its IP
47 address, and therefore you must use BOOTP for net booting your Alpha.
48 You can also enter the IP configuration for network interfaces
49 directly in the SRM console.
50
51 <footnote>
52 <para>
53
54 Alpha systems can also be net-booted using the DECNet MOP (Maintenance
55 Operations Protocol), but this is not covered here. Presumably, your
56 local OpenVMS operator will be happy to assist you should you have
57 some burning need to use MOP to boot Linux on your Alpha.
58
59 </para>
60 </footnote></para><para arch="hppa">
61
62 Some older HPPA machines (e.g. 715/75) use RBOOTD rather than BOOTP.
63 An RBOOTD package is available on the parisc-linux web site.
64
65 </para><para>
66
67 The Trivial File Transfer Protocol (TFTP) is used to serve the boot
68 image to the client. Theoretically, any server, on any platform,
69 which implements these protocols, may be used. In the examples in
70 this section, we shall provide commands for SunOS 4.x, SunOS 5.x
71 (a.k.a. Solaris), and GNU/Linux.
72
73 </para>
74
75 &tftp-rarp.xml;
76 &tftp-bootp.xml;
77 &tftp-dhcp.xml;
78
79 <sect2 id="tftpd">
80 <title>Enabling the TFTP Server</title>
81 <para>
82
83 To get the TFTP server ready to go, you should first make sure that
84 <command>tftpd</command> is enabled. This is usually enabled by having the
85 following line in <filename>/etc/inetd.conf</filename>:
86
87 <informalexample><screen>
88
89 tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /tftpboot
90
91 </screen></informalexample>
92
93 Look in that file and remember the directory which is used as the
94 argument of <command>in.tftpd</command>; you'll need that below. The
95 <userinput>-l</userinput> argument enables some versions of
96 <command>in.tftpd</command> to log all requests to the system logs;
97 this is useful for diagnosing boot errors. If you've had to change
98 <filename>/etc/inetd.conf</filename>, you'll have to notify the
99 running <command>inetd</command> process that the file has changed.
100 On a Debian machine, run <userinput>/etc/init.d/inetd
101 reload</userinput> (for slink/2.1 and older systems use
102 <userinput>/etc/init.d/netbase reload</userinput>); on other machines,
103 find out the process ID for <command>inetd</command>, and run
104 <userinput>kill -HUP <replaceable>inetd-pid</replaceable></userinput>.
105
106 </para><para arch="i386">
107
108 To use the Pre-boot Execution Environment (PXE) method of TFTP
109 booting, you will need a TFTP server with <userinput>tsize</userinput>
110 support. On a &debian; server, <command>tftp-hpa</command> qualifies.
111
112 </para><para arch="mips">
113
114 If your TFTP server is a GNU/Linux box running Linux 2.4.X you'll need
115 to set the following on your server:
116
117 <informalexample><screen>
118
119 echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
120
121 </screen></informalexample>
122
123 to turn off Path MTU discovery, otherwise the Indy's PROM can't
124 download the kernel. Furthermore, make sure TFTP packets are sent from
125 a source port no greater than 32767, or the download will stall after
126 the first packet. Again, it's Linux 2.4.X tripping this bug in the
127 PROM, and you can avoid it by setting
128
129 <informalexample><screen>
130
131 echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
132
133 </screen></informalexample>
134
135 to adjust the range of source ports the Linux TFTP server uses.
136
137 </para>
138 </sect2>
139
140 <sect2 id="tftp-images">
141 <title>Move TFTP Images Into Place</title>
142 <para>
143
144 Next, place the TFTP boot image you need, as found in
145 <xref linkend="file-descs"/>, in the <command>tftpd</command>
146 boot image directory. Generally, this directory will be
147 <filename>/tftpboot</filename>. You'll have to make a link from that
148 file to the file which <command>tftpd</command> will use for booting a
149 particular client. Unfortunately, the file name is determined by the
150 TFTP client, and there are no strong standards.
151
152 </para><para arch="powerpc">
153
154 On NewWorld Power Macintosh machines, you will need to set up the
155 <command>yaboot</command> boot loader as the TFTP boot image.
156 <command>Yaboot</command> will then retrieve the kernel and RAMdisk
157 images via TFTP itself. For net booting, use the
158 <filename>yaboot-netboot.conf</filename>. Just rename this to
159 <filename>yaboot.conf</filename> in the TFTP directory.
160
161 </para><para arch="not-powerpc">
162
163 Often, the file that the TFTP client will look for is
164 <replaceable>client-ip-in-hexclient-architecture</replaceable>. To
165 compute <replaceable>client-ip-in-hex</replaceable>, take each byte of
166 the client IP address and translate it into hexadecimal notation. If
167 you have a machine handy with the <command>bc</command> program, you
168 can use the program. First issue the <userinput>obase=16</userinput>
169 command to set the output to hex, then enter the individual components
170 of the client IP one at a time. As for
171 <replaceable>client-architecture</replaceable>, try out some values.
172
173 </para><para arch="i386">
174
175 For PXE booting, you can use the boot loader included with
176 <classname>syslinux</classname>: <filename>pxelinux.0</filename>. The boot
177 loader should be copied into the <filename>/tftpboot</filename>
178 folder. Then create a subdirectory within
179 <filename>/tftpboot</filename> named
180 <filename>/tftpboot/pxelinux.cfg</filename>, and within that directory
181 create a text file <filename>default</filename>. Here is an example of
182 a <filename>default</filename> file's contents:
183
184 <informalexample><screen>
185
186 default lanlinux
187 prompt 1
188
189 label lanlinux
190 kernel tftpboot.img
191 append load initrd=root.bin devfs=nomount
192
193 </screen></informalexample>
194
195 <userinput>devfs=nomount</userinput> is important, because without it
196 there may be problems mounting the root.bin file system once the
197 kernel is booted.
198
199 </para><para arch="i386">
200
201 Finally, copy the <filename>tftpboot.img</filename> and
202 <filename>root.bin</filename> files from the Debian ftp archive into
203 the <filename>/tftpboot</filename> folder, where the bootloader will
204 be looking for them.
205
206 </para>
207
208
209 <sect3 arch="mipsel">
210 <title>DECstation TFTP Images</title>
211 <para>
212
213 For DECstations, there are tftpimage files for each subarchitecture,
214 which contain both kernel and installer in one file. The naming
215 convention is tftpimage-<replaceable>subarchitecture</replaceable> or
216 tftpimage-<replaceable>subarchitecture</replaceable>.gz. If the
217 tftpimage is gzipped (the name ends with .gz), you need to unpack it
218 first with <userinput>gunzip
219 tftpimage-<replaceable>subarchitecture</replaceable>.gz</userinput>,
220 as DECstations cannot boot compressed files by TFTP. Copy the
221 tftpimage file you would like to use to
222 <userinput>/tftpboot/tftpboot.img</userinput> if you work with the
223 example BOOTP/DHCP setups described above.
224
225 </para><para>
226
227 The DECstation firmware boots by TFTP with the command <userinput>boot
228 <replaceable>#</replaceable>/tftp</userinput>, where
229 <replaceable>#</replaceable> is the number of the TurboChannel device
230 from which to boot. On most DECstations this is "3". If the
231 BOOTP/DHCP server does not supply the filename or you need to pass
232 additional parameters, they can optionally be appended with the
233 following syntax:
234
235 </para><para>
236
237 <userinput>boot #/tftp/filename param1=value1 param2=value2 ...</userinput>
238
239 </para><para>
240
241 Several DECstation firmware revisions show a problem with regard to
242 net booting: the transfer starts, but after some time it stops with
243 an <computeroutput>a.out err</computeroutput>. This can have several reasons:
244
245 <orderedlist>
246 <listitem><para>
247
248 The firmware does not respond to ARP requests during a TFTP
249 transfer. This leads to an ARP timeout and the transfer stops. The
250 solution is to add the MAC address of the Ethernet card in the
251 DECstation statically to the ARP table of the TFTP server. This is
252 done by running <userinput>arp -s
253 <replaceable>IP-address</replaceable>
254 <replaceable>MAC-address</replaceable></userinput> as root on the
255 machine acting as TFTP server. The MAC-address of the DECstation can
256 be read out by entering <command>cnfg</command> at the DECstation
257 firmware prompt.
258
259 </para></listitem>
260 <listitem><para>
261
262 The firmware has a size limit on the files that can be booted
263 by TFTP.
264
265 </para></listitem>
266 </orderedlist>
267
268 There are also firmware revisions that cannot boot via TFTP at all. An
269 overview about the different firmware revisions can be found at the
270 NetBSD web pages:
271 <ulink url="http://www.netbsd.org/Ports/pmax/board-list.html#proms"></ulink>.
272
273 </para>
274 </sect3>
275
276 <sect3 arch="alpha">
277 <title>Alpha TFTP Booting</title>
278 <para>
279 On Alpha, you must specify the filename (as a relative path to the
280 boot image directory) using the <userinput>-file</userinput> argument
281 to the SRM <userinput>boot</userinput> command, or by setting the
282 <userinput>BOOT_FILE</userinput> environment variable. Alternatively,
283 the filename can be given via BOOTP (in ISC <command>dhcpd</command>,
284 use the <userinput>filename</userinput> directive). Unlike Open
285 Firmware, there is <emphasis>no default filename</emphasis> on SRM, so
286 you <emphasis>must</emphasis> specify a filename by either one of
287 these methods.
288
289 </para>
290 </sect3>
291
292 <sect3 arch="sparc">
293 <title>SPARC TFTP Booting</title>
294 <para>
295
296 SPARC architectures for instance use the subarchitecture names, such
297 as ``SUN4M'' or ``SUN4C''; in some cases, the architecture is left
298 blank, so the file the client looks for is just
299 <filename>client-ip-in-hex</filename>. Thus, if your system
300 subarchitecture is a SUN4C, and its IP is 192.168.1.3, the filename
301 would be <filename>C0A80103.SUN4C</filename>.
302
303 </para><para>
304
305 You can also force some sparc systems to look for a specific file name
306 by adding it to the end of the OpenPROM boot command, such as
307 <userinput>boot net my-sparc.image</userinput>. This must still reside
308 in the directory that the TFTP server looks in.
309
310 </para>
311 </sect3>
312
313 <sect3 arch="m68k">
314 <title>BVM/Motorola TFTP Booting</title>
315 <para>
316
317 For BVM and Motorola VMEbus systems copy the files
318 &bvme6000-tftp-files; to <filename>/tftpboot/</filename>.
319
320 </para><para>
321
322 Next, configure your boot ROMs or BOOTP server to initially load the
323 <filename>tftplilo.bvme</filename> or
324 <filename>tftplilo.mvme</filename> files from the TFTP server. Refer
325 to the <filename>tftplilo.txt</filename> file for your subarchitecture
326 for additional system-specific configuration information.
327
328 </para>
329 </sect3>
330
331 <sect3 arch="mips">
332 <title>SGI Indys TFTP Booting</title>
333 <para>
334
335 On SGI Indys you can rely on the <command>bootpd</command> to supply
336 the name of the TFTP file. It is given either as the
337 <userinput>bf=</userinput> in <filename>/etc/bootptab</filename> or as
338 the <userinput>filename=</userinput> option in
339 <filename>/etc/dhcpd.conf</filename>.
340
341 </para>
342 </sect3>
343 </sect2>
344
345 <sect2 id="tftp-low-memory">
346 <title>TFTP Installation for Low-Memory Systems</title>
347 <para>
348
349 On some systems, the standard installation RAMdisk, combined with the
350 memory requirements of the TFTP boot image, cannot fit in memory. In
351 this case, you can still install using TFTP, you'll just have to go
352 through the additional step of NFS mounting your root directory over
353 the network as well. This type of setup is also appropriate for
354 diskless or dataless clients.
355
356 </para><para>
357
358 First, follow all the steps above in <xref linkend="install-tftp"/>.
359
360 <orderedlist>
361 <listitem><para>
362
363 Copy the Linux kernel image on your TFTP server using the
364 <userinput>a.out</userinput> image for the architecture you are
365 booting.
366
367 </para></listitem>
368 <listitem><para>
369
370 Untar the root archive on your NFS server (can be the same system as
371 your TFTP server):
372
373 <informalexample><screen>
374
375 # cd /tftpboot
376 # tar xvzf root.tar.gz
377
378 </screen></informalexample>
379
380 Be sure to use the GNU <command>tar</command> (other tar programs, like the
381 SunOS one, badly handle devices as plain files).
382
383 </para></listitem>
384 <listitem><para>
385
386 Export your <filename>/tftpboot/debian-sparc-root</filename> directory
387 with root access to your client. E.g., add the following line to
388 <filename>/etc/exports</filename> (GNU/Linux syntax, should be similar
389 for SunOS):
390
391 <informalexample><screen>
392
393 /tftpboot/debian-sparc-root client(rw,no_root_squash)
394
395 </screen></informalexample>
396
397 NOTE: "client" is the host name or IP address recognized by the server for
398 the system you are booting.
399
400 </para></listitem>
401 <listitem><para>
402
403 Create a symbolic link from your client IP address in dotted notation
404 to <filename>debian-sparc-root</filename> in the
405 <filename>/tftpboot</filename> directory. For example, if the client
406 IP address is 192.168.1.3, do
407
408 <informalexample><screen>
409
410 # ln -s debian-sparc-root 192.168.1.3
411
412 </screen></informalexample>
413
414 </para></listitem>
415 </orderedlist>
416
417 </para>
418
419 </sect2>
420
421 <sect2>
422 <title>Installing with TFTP and NFS Root</title>
423 <para>
424
425 Installing with TFTP and NFS Root is similar to
426 <xref linkend="tftp-low-memory"/> because you don't want to
427 load the RAMdisk anymore but boot from the newly created NFS-root file
428 system. You then need to replace the symlink to the tftpboot image by
429 a symlink to the kernel image (for example,
430 <filename>linux-a.out</filename>).
431
432 </para><para>
433
434 RARP/TFTP requires all daemons to be running on the same server (the
435 workstation is sending a TFTP request back to the server that replied
436 to its previous RARP request).
437
438 </para><para>
439
440 To boot the client machine, go to <xref linkend="boot-tftp"/>.
441
442 </para>
443
444 </sect2>
445 </sect1>

  ViewVC Help
Powered by ViewVC 1.1.5