1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343
|
<!-- retain these comments for translator revision tracking -->
<!-- $Id$ -->
<sect1 condition="supports-tftp" id="install-tftp">
<title>Preparing Files for TFTP Net Booting</title>
<para>
If your machine is connected to a local area network, you may be able
to boot it over the network from another machine, using TFTP. If you
intend to boot the installation system from another machine, the
boot files will need to be placed in specific locations on that machine,
and the machine configured to support booting of your specific machine.
</para><para>
You need to set up a TFTP server, and for many machines a DHCP
server<phrase condition="supports-rarp">, or RARP
server</phrase><phrase condition="supports-bootp">, or BOOTP
server</phrase>.
</para><para>
<phrase condition="supports-rarp">The Reverse Address Resolution Protocol (RARP) is
one way to tell your client what IP address to use for itself. Another
way is to use the BOOTP protocol.</phrase>
<phrase condition="supports-bootp">BOOTP is an IP protocol that
informs a computer of its IP address and where on the network to obtain
a boot image.</phrase>
The DHCP (Dynamic Host Configuration Protocol) is a more flexible,
backwards-compatible extension of BOOTP.
Some systems can only be configured via DHCP.
</para><para arch="powerpc">
For PowerPC, if you have a NewWorld Power Macintosh machine, it is a
good idea to use DHCP instead of BOOTP. Some of the latest machines
are unable to boot using BOOTP.
</para><para arch="hppa">
Some older HPPA machines (e.g. 715/75) use RBOOTD rather than BOOTP.
There is an <classname>rbootd</classname> package available in &debian;.
</para><para>
The Trivial File Transfer Protocol (TFTP) is used to serve the boot
image to the client. Theoretically, any server, on any platform,
which implements these protocols, may be used. In the examples in
this section, we shall provide commands for SunOS 4.x, SunOS 5.x
(a.k.a. Solaris), and GNU/Linux.
<note arch="x86"><para>
For a &debian-gnu; server we recommend <classname>tftpd-hpa</classname>.
It's written by the same author as the <classname>syslinux</classname>
bootloader and is therefore least likely to cause issues.
A good alternative is <classname>atftpd</classname>.
</para></note>
</para>
&tftp-rarp.xml;
&tftp-dhcp.xml;
&tftp-bootp.xml;
<sect2 id="tftpd">
<title>Enabling the TFTP Server</title>
<para>
To get the TFTP server ready to go, you should first make sure that
<command>tftpd</command> is enabled.
</para><para>
In the case of <classname>tftpd-hpa</classname> there are two ways the
service can be run. It can be started on demand by the system's
<classname>inetd</classname> daemon, or it can be set up to run as an
independent daemon. Which of these methods is used is selected when the
package is installed and can be changed by reconfiguring the package.
</para>
<note><para>
Historically, TFTP servers used <filename>/tftpboot</filename> as directory
to serve images from. However, &debian-gnu; packages may use other directories
to comply with the <ulink url="&url-fhs-home;">Filesystem Hierarchy
Standard</ulink>. For example, <classname>tftpd-hpa</classname> by default
uses <filename>/srv/tftp</filename>. You may have to adjust the
configuration examples in this section accordingly.
</para></note>
<para>
All <command>in.tftpd</command> alternatives available in &debian; should
log TFTP requests to the system logs by default. Some of them support a
<userinput>-v</userinput> argument to increase verbosity.
It is recommended to check these log messages in case of boot problems
as they are a good starting point for diagnosing the cause of errors.
</para><para arch="mips">
If you intend to install &debian; on an SGI machine and your TFTP server is a
GNU/Linux box running Linux 2.4, you'll need to set the following on your
server:
<informalexample><screen>
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
</screen></informalexample>
to turn off Path MTU discovery, otherwise the SGI's PROM can't
download the kernel. Furthermore, make sure TFTP packets are sent from
a source port no greater than 32767, or the download will stall after
the first packet. Again, it's Linux 2.4.X tripping this bug in the
PROM, and you can avoid it by setting
<informalexample><screen>
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
</screen></informalexample>
to adjust the range of source ports the Linux TFTP server uses.
</para>
</sect2>
<sect2 id="tftp-images">
<title>Move TFTP Images Into Place</title>
<para>
Next, place the TFTP boot image you need, as found in
<xref linkend="where-files"/>, in the <command>tftpd</command>
boot image directory. You may have to make a link from that
file to the file which <command>tftpd</command> will use for booting a
particular client. Unfortunately, the file name is determined by the
TFTP client, and there are no strong standards.
</para><para arch="powerpc">
On NewWorld Power Macintosh machines, you will need to set up the
<command>yaboot</command> boot loader as the TFTP boot image.
<command>Yaboot</command> will then retrieve the kernel and RAMdisk
images via TFTP itself. You will need to download the following files
from the <filename>netboot/</filename> directory:
<itemizedlist>
<listitem><para>
<filename>vmlinux</filename>
</para></listitem>
<listitem><para>
<filename>initrd.gz</filename>
</para></listitem>
<listitem><para>
<filename>yaboot</filename>
</para></listitem>
<listitem><para>
<filename>yaboot.conf</filename>
</para></listitem>
<listitem><para>
<filename>boot.msg</filename>
</para></listitem>
</itemizedlist>
</para><para arch="x86">
For PXE booting, everything you should need is set up in the
<filename>netboot/netboot.tar.gz</filename> tarball. Simply extract this
tarball into the <command>tftpd</command> boot image directory. Make sure
your dhcp server is configured to pass <filename>pxelinux.0</filename>
to <command>tftpd</command> as the filename to boot.
For UEFI machines, you will need to pass an appropriate EFI boot image name
(such as <filename>/debian-installer/amd64/bootnetx64.efi</filename>).
</para><para arch="ia64">
For PXE booting, everything you should need is set up in the
<filename>netboot/netboot.tar.gz</filename> tarball. Simply extract this
tarball into the <command>tftpd</command> boot image directory. Make sure
your dhcp server is configured to pass
<filename>/debian-installer/ia64/elilo.efi</filename>
to <command>tftpd</command> as the filename to boot.
</para>
<sect3 arch="sparc">
<title>SPARC TFTP Booting</title>
<para>
Some SPARC architectures add the subarchitecture names, such as
<quote>SUN4M</quote> or <quote>SUN4C</quote>, to the filename. Thus,
if your system's subarchitecture is a SUN4C, and its IP is 192.168.1.3,
the filename would be <filename>C0A80103.SUN4C</filename>. However,
there are also subarchitectures where the file the client looks for is
just <filename>client-ip-in-hex</filename>. An easy way to determine the
hexadecimal code for the IP address is to enter the following command
in a shell (assuming the machine's intended IP is 10.0.0.4).
<informalexample><screen>
$ printf '%.2x%.2x%.2x%.2x\n' 10 0 0 4
</screen></informalexample>
To get to the correct filename, you will need to change all letters to
uppercase and if necessary append the subarchitecture name.
</para><para>
If you've done all this correctly, giving the command <userinput>boot
net</userinput> from the OpenPROM should load the image. If the image
cannot be found, try checking the logs on your tftp server to see which
image name is being requested.
</para><para>
You can also force some sparc systems to look for a specific file name
by adding it to the end of the OpenPROM boot command, such as
<userinput>boot net my-sparc.image</userinput>. This must still reside
in the directory that the TFTP server looks in.
</para>
</sect3>
<sect3 arch="mips">
<title>SGI TFTP Booting</title>
<para>
On SGI machines you can rely on the <command>bootpd</command> to supply
the name of the TFTP file. It is given either as the
<userinput>bf=</userinput> in <filename>/etc/bootptab</filename> or as
the <userinput>filename=</userinput> option in
<filename>/etc/dhcpd.conf</filename>.
</para>
</sect3>
</sect2>
<!-- FIXME: commented out since it seems too old to be usable and a current
way is not known
<sect2 id="tftp-low-memory">
<title>TFTP Installation for Low-Memory Systems</title>
<para>
On some systems, the standard installation RAMdisk, combined with the
memory requirements of the TFTP boot image, cannot fit in memory. In
this case, you can still install using TFTP, you'll just have to go
through the additional step of NFS mounting your root directory over
the network as well. This type of setup is also appropriate for
diskless or dataless clients.
</para><para>
First, follow all the steps above in <xref linkend="install-tftp"/>.
<orderedlist>
<listitem><para>
Copy the Linux kernel image on your TFTP server using the
<userinput>a.out</userinput> image for the architecture you are
booting.
</para></listitem>
<listitem><para>
Untar the root archive on your NFS server (can be the same system as
your TFTP server):
<informalexample><screen>
# cd /tftpboot
# tar xvzf root.tar.gz
</screen></informalexample>
Be sure to use the GNU <command>tar</command> (other tar programs, like the
SunOS one, badly handle devices as plain files).
</para></listitem>
<listitem><para>
Export your <filename>/tftpboot/debian-sparc-root</filename> directory
with root access to your client. E.g., add the following line to
<filename>/etc/exports</filename> (GNU/Linux syntax, should be similar
for SunOS):
<informalexample><screen>
/tftpboot/debian-sparc-root <replaceable>client</replaceable>(rw,no_root_squash)
</screen></informalexample>
NOTE: <replaceable>client</replaceable> is the host name or IP address recognized
by the server for the system you are booting.
</para></listitem>
<listitem><para>
Create a symbolic link from your client IP address in dotted notation
to <filename>debian-sparc-root</filename> in the
<filename>/tftpboot</filename> directory. For example, if the client
IP address is 192.168.1.3, do
<informalexample><screen>
# ln -s debian-sparc-root 192.168.1.3
</screen></informalexample>
</para></listitem>
</orderedlist>
</para>
</sect2>
<sect2 condition="supports-nfsroot">
<title>Installing with TFTP and NFS Root</title>
<para>
Installing with TFTP and NFS Root is similar to
<xref linkend="tftp-low-memory"/> because you don't want to
load the RAMdisk anymore but boot from the newly created NFS-root file
system. You then need to replace the symlink to the tftpboot image by
a symlink to the kernel image (for example,
<filename>linux-a.out</filename>).
</para><para>
RARP/TFTP requires all daemons to be running on the same server (the
workstation is sending a TFTP request back to the server that replied
to its previous RARP request).
</para>
</sect2>
END FIXME -->
</sect1>
|