1 |
cam 06/10/30 16:58:27 |
2 |
|
3 |
Modified: diskless-howto.xml |
4 |
Log: |
5 |
Some cleaning, NO content change for translators. |
6 |
|
7 |
Revision Changes Path |
8 |
1.29 xml/htdocs/doc/en/diskless-howto.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/diskless-howto.xml?rev=1.29&view=markup |
11 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/diskless-howto.xml?rev=1.29&content-type=text/plain |
12 |
diff : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/en/diskless-howto.xml?r1=1.28&r2=1.29 |
13 |
|
14 |
Index: diskless-howto.xml |
15 |
=================================================================== |
16 |
RCS file: /var/cvsroot/gentoo/xml/htdocs/doc/en/diskless-howto.xml,v |
17 |
retrieving revision 1.28 |
18 |
retrieving revision 1.29 |
19 |
diff -u -r1.28 -r1.29 |
20 |
--- diskless-howto.xml 30 Oct 2006 16:39:22 -0000 1.28 |
21 |
+++ diskless-howto.xml 30 Oct 2006 16:58:27 -0000 1.29 |
22 |
@@ -1,26 +1,25 @@ |
23 |
<?xml version="1.0" encoding="UTF-8"?> |
24 |
-<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/diskless-howto.xml,v 1.28 2006/10/30 16:39:22 cam Exp $ --> |
25 |
+<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/diskless-howto.xml,v 1.29 2006/10/30 16:58:27 cam Exp $ --> |
26 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
27 |
|
28 |
<guide link="/doc/en/diskless-howto.xml"> |
29 |
- |
30 |
<title>Diskless Nodes with Gentoo</title> |
31 |
|
32 |
<author title="Researcher"> |
33 |
- <mail link="ma53@××××××.edu">Michael Andrews</mail> |
34 |
+ <mail link="ma53@××××××.edu">Michael Andrews</mail> |
35 |
</author> |
36 |
<author title="Editor"> |
37 |
- <mail link="unsolo@×××××.no">Kristian Jerpetjoen</mail> |
38 |
+ <mail link="unsolo@×××××.no">Kristian Jerpetjoen</mail> |
39 |
</author> |
40 |
<author title="Reviewer"> |
41 |
- <mail link="swift@g.o">Sven Vermeulen</mail> |
42 |
+ <mail link="swift@g.o">Sven Vermeulen</mail> |
43 |
</author> |
44 |
<author title="Reviewer"> |
45 |
- <mail link="neysx@g.o">Xavier Neys</mail> |
46 |
+ <mail link="neysx@g.o">Xavier Neys</mail> |
47 |
</author> |
48 |
|
49 |
<abstract> |
50 |
-This HOWTO will help you create setup diskless nodes with Gentoo Linux |
51 |
+This HOWTO will help you create setup diskless nodes with Gentoo Linux. |
52 |
</abstract> |
53 |
|
54 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
55 |
@@ -32,18 +31,17 @@ |
56 |
|
57 |
<chapter> |
58 |
<title>Introduction</title> |
59 |
- |
60 |
<section> |
61 |
<title>About this HOWTO</title> |
62 |
<body> |
63 |
|
64 |
<p> |
65 |
-This HOWTO will help you setup <e>diskless</e> workstations based on |
66 |
-the Gentoo Linux distribution. We intend to make this as user friendly |
67 |
-as possible and cater to the Linux newbie, because every one of us was one at a |
68 |
-certain point :) While an experienced user could easily tie the multiple HOWTOs |
69 |
-available on diskless nodes and networking together we hope that this guide can |
70 |
-ease the installation for all interested users, geeks or not. |
71 |
+This HOWTO will help you setup <e>diskless</e> workstations based on the Gentoo |
72 |
+Linux distribution. We intend to make this as user friendly as possible and |
73 |
+cater to the Linux newbie, because every one of us was one at a certain point :) |
74 |
+While an experienced user could easily tie the multiple HOWTOs available on |
75 |
+diskless nodes and networking together we hope that this guide can ease the |
76 |
+installation for all interested users, geeks or not. |
77 |
</p> |
78 |
|
79 |
</body> |
80 |
@@ -54,13 +52,13 @@ |
81 |
|
82 |
<p> |
83 |
A diskless machine is a PC without any of the usual boot devices such as hard |
84 |
-disks, floppy drives or CD-ROMs. The diskless node boots off the network and |
85 |
-needs a server that will provide it with storage space as a local hard disk |
86 |
-would. From now on we call the server the <e>master</e>, while the diskless |
87 |
-machine gets called the <e>slave</e> (what's in a name :). The slave node |
88 |
-needs a network adapter that supports PXE booting or Etherboot; check <uri |
89 |
-link="http://www.etherboot.org">Etherboot.org</uri> for support listings. Most |
90 |
-modern cards support PXE and many built-in adapters on motherboards will also |
91 |
+disks, floppy drives or CD-ROMs. The diskless node boots off the network and |
92 |
+needs a server that will provide it with storage space as a local hard disk |
93 |
+would. From now on we call the server the <e>master</e>, while the diskless |
94 |
+machine gets called the <e>slave</e> (what's in a name :). The slave node needs |
95 |
+a network adapter that supports PXE booting or Etherboot; check <uri |
96 |
+link="http://www.etherboot.org">Etherboot.org</uri> for support listings. Most |
97 |
+modern cards support PXE and many built-in adapters on motherboards will also |
98 |
work. |
99 |
</p> |
100 |
|
101 |
@@ -71,10 +69,10 @@ |
102 |
<body> |
103 |
|
104 |
<p> |
105 |
-You should have Gentoo installed on your master node and enough space on the |
106 |
-master to store the file systems of the slave nodes you want to host. Also make |
107 |
-sure you have one interface to the internet separated from the local area |
108 |
-connection. |
109 |
+You should have Gentoo installed on your master node and enough space on the |
110 |
+master to store the file systems of the slave nodes you want to host. Also make |
111 |
+sure you have one interface to the internet separated from the local area |
112 |
+connection. |
113 |
</p> |
114 |
|
115 |
</body> |
116 |
@@ -96,17 +94,17 @@ |
117 |
</note> |
118 |
|
119 |
<p> |
120 |
-The kernel is the software that sits between your hardware and all other |
121 |
-software you have loaded on your machine, essentially the heart of a kernel |
122 |
-based operating system. When your computer is started, the BIOS executes the |
123 |
-instructions found at the reserved boot space of your hard drive. These |
124 |
-instructions are typically a boot loader that loads your kernel. After your |
125 |
-kernel has been loaded all processes are handled by the kernel. |
126 |
+The kernel is the software that sits between your hardware and all other |
127 |
+software you have loaded on your machine, essentially the heart of a kernel |
128 |
+based operating system. When your computer is started, the BIOS executes the |
129 |
+instructions found at the reserved boot space of your hard drive. These |
130 |
+instructions are typically a boot loader that loads your kernel. After your |
131 |
+kernel has been loaded all processes are handled by the kernel. |
132 |
</p> |
133 |
|
134 |
<p> |
135 |
-For more information on kernels and kernel configuration you might want to |
136 |
-check out the <uri link="http://www.tldp.org/HOWTO/Kernel-HOWTO.html">kernel |
137 |
+For more information on kernels and kernel configuration you might want to check |
138 |
+out the <uri link="http://www.tldp.org/HOWTO/Kernel-HOWTO.html">kernel |
139 |
HOWTO</uri>. |
140 |
</p> |
141 |
|
142 |
@@ -117,9 +115,9 @@ |
143 |
<body> |
144 |
|
145 |
<p> |
146 |
-The master kernel can be as large and as customized as you would like but |
147 |
-there are a few required kernel options you need to select. Go into your |
148 |
-kernel configuration menu by typing: |
149 |
+The master kernel can be as large and as customized as you would like but there |
150 |
+are a few required kernel options you need to select. Go into your kernel |
151 |
+configuration menu by typing: |
152 |
</p> |
153 |
|
154 |
<pre caption="Editing the master's kernel configuration"> |
155 |
@@ -128,10 +126,10 @@ |
156 |
</pre> |
157 |
|
158 |
<p> |
159 |
-You should get a grey and blue GUI that offers a safe alternative to manually |
160 |
-editing the <path>/usr/src/linux/.config</path> file. If your kernel is |
161 |
-currently functioning well you might want to save the current configuration |
162 |
-file by exiting the GUI and type: |
163 |
+You should get a grey and blue GUI that offers a safe alternative to manually |
164 |
+editing the <path>/usr/src/linux/.config</path> file. If your kernel is |
165 |
+currently functioning well you might want to save the current configuration file |
166 |
+by exiting the GUI and type: |
167 |
</p> |
168 |
|
169 |
<pre caption="Backing up the master's kernel configuration"> |
170 |
@@ -139,9 +137,9 @@ |
171 |
</pre> |
172 |
|
173 |
<p> |
174 |
-Go into the following sub-menus and make sure the listed items are checked |
175 |
-as built-in (and <e>NOT</e> as modular). The options show below are taken from |
176 |
-the 2.6.10 kernel version. If you use a different version, the text or sequence |
177 |
+Go into the following sub-menus and make sure the listed items are checked as |
178 |
+built-in (and <e>NOT</e> as modular). The options show below are taken from the |
179 |
+2.6.10 kernel version. If you use a different version, the text or sequence |
180 |
might differ. Just make sure you select at least those shown below. |
181 |
</p> |
182 |
|
183 |
@@ -156,14 +154,14 @@ |
184 |
[*] TCP/IP networking |
185 |
[*] IP: multicasting |
186 |
[ ] Network packet filtering (replaces ipchains) |
187 |
- |
188 |
+ |
189 |
File systems ---> |
190 |
Network File Systems ---> |
191 |
<*> NFS server support |
192 |
[*] Provide NFSv3 server support |
193 |
|
194 |
<comment> |
195 |
-If you want to access the internet through your master node and/or have a |
196 |
+If you want to access the internet through your master node and/or have a |
197 |
secure firewall make sure to add support for iptables |
198 |
</comment> |
199 |
[*] Network packet filtering (replaces ipchains) |
200 |
@@ -175,19 +173,18 @@ |
201 |
<p> |
202 |
If you want to use packet filtering, you can add the rest as modules later. |
203 |
Make sure to read the <uri |
204 |
-link="/doc/en/security/security-handbook.xml?part=1&chap=12">Gentoo |
205 |
-Security Handbook Chapter about Firewalls</uri> on how to set this up |
206 |
-properly. |
207 |
+link="/doc/en/security/security-handbook.xml?part=1&chap=12">Gentoo Security |
208 |
+Handbook Chapter about Firewalls</uri> on how to set this up properly. |
209 |
</p> |
210 |
|
211 |
<note> |
212 |
-These kernel configuration options should only be added to your system |
213 |
-specific configuration options and are not meant to completely replace your |
214 |
-kernel configuration. |
215 |
+These kernel configuration options should only be added to your system specific |
216 |
+configuration options and are not meant to completely replace your kernel |
217 |
+configuration. |
218 |
</note> |
219 |
|
220 |
<p> |
221 |
-After you have re-configured the master's kernel you will want to rebuild it: |
222 |
+After you have re-configured the master's kernel you will want to rebuild it: |
223 |
</p> |
224 |
|
225 |
<pre caption="Recompiling the master's kernel and modules"> |
226 |
@@ -211,15 +208,15 @@ |
227 |
<body> |
228 |
|
229 |
<p> |
230 |
-It is recommended that you compile the slave kernel without any modules, since |
231 |
-loading and setting them up via remote boot is a difficult and unnecessary |
232 |
-process. Additionally, the slave kernel should be as small and compact as |
233 |
-possible in order to efficiently boot from the network. We are going to compile |
234 |
+It is recommended that you compile the slave kernel without any modules, since |
235 |
+loading and setting them up via remote boot is a difficult and unnecessary |
236 |
+process. Additionally, the slave kernel should be as small and compact as |
237 |
+possible in order to efficiently boot from the network. We are going to compile |
238 |
the slave's kernel in the same place where the master was configured. |
239 |
</p> |
240 |
|
241 |
<p> |
242 |
-To avoid confusion and wasting time it is probably a good idea to backup the |
243 |
+To avoid confusion and wasting time it is probably a good idea to backup the |
244 |
master's configuration file by typing: |
245 |
</p> |
246 |
|
247 |
@@ -228,10 +225,10 @@ |
248 |
</pre> |
249 |
|
250 |
<p> |
251 |
-Now we will want to configure the slave's kernel in the same fashion we |
252 |
-configured the master's kernel. If you want to start with a fresh |
253 |
-configuration file you can always recover the default |
254 |
-<path>/usr/src/linux/.config</path> file by typing: |
255 |
+Now we will want to configure the slave's kernel in the same fashion we |
256 |
+configured the master's kernel. If you want to start with a fresh configuration |
257 |
+file you can always recover the default <path>/usr/src/linux/.config</path> file |
258 |
+by typing: |
259 |
</p> |
260 |
|
261 |
<pre caption="Getting a clean kernel configuration"> |
262 |
@@ -249,8 +246,8 @@ |
263 |
</pre> |
264 |
|
265 |
<p> |
266 |
-You will want to make sure you select the following options as built-in |
267 |
-and <e>NOT</e> as kernel modules: |
268 |
+You will want to make sure you select the following options as built-in and |
269 |
+<e>NOT</e> as kernel modules: |
270 |
</p> |
271 |
|
272 |
<pre caption="slave's kernel options"> |
273 |
@@ -269,7 +266,7 @@ |
274 |
|
275 |
File systems ---> |
276 |
Network File Systems ---> |
277 |
- <*> file system support |
278 |
+ <*> file system support |
279 |
[*] Provide NFSv3 client support |
280 |
[*] Root file system on NFS |
281 |
</pre> |
282 |
@@ -279,14 +276,14 @@ |
283 |
</note> |
284 |
|
285 |
<impo> |
286 |
-It is important that you add your network adapter into the kernel (and not as |
287 |
-a module) on the nodes. Using modules however is generally not a problem for |
288 |
+It is important that you add your network adapter into the kernel (and not as a |
289 |
+module) on the nodes. Using modules however is generally not a problem for |
290 |
diskless nodes. |
291 |
</impo> |
292 |
|
293 |
<p> |
294 |
-Now the slave's kernel needs to be compiled. You have to be careful here |
295 |
-because you don't want to mess up the modules (if any) you have built for the |
296 |
+Now the slave's kernel needs to be compiled. You have to be careful here |
297 |
+because you don't want to mess up the modules (if any) you have built for the |
298 |
master: |
299 |
</p> |
300 |
|
301 |
@@ -297,14 +294,14 @@ |
302 |
|
303 |
<p> |
304 |
Now create the directory on the master that will be used to hold slaves' files |
305 |
-and required system files. We use <path>/diskless</path> but you may choose |
306 |
-any location you like. Now copy the slave's bzImage into the |
307 |
-<path>/diskless</path> directory: |
308 |
+and required system files. We use <path>/diskless</path> but you may choose any |
309 |
+location you like. Now copy the slave's bzImage into the <path>/diskless</path> |
310 |
+directory: |
311 |
</p> |
312 |
|
313 |
<note> |
314 |
If you are using different architectures you might want to save each config into |
315 |
-<path>.config_arch</path>. Do the same with the images: save them into the |
316 |
+<path>.config_arch</path>. Do the same with the images: save them into the |
317 |
<path>/diskless</path> as <path>bzImage_arch</path>. |
318 |
</note> |
319 |
|
320 |
@@ -320,15 +317,14 @@ |
321 |
<body> |
322 |
|
323 |
<p> |
324 |
-The master and slave filesystems can be tweaked and changed a lot. Right now |
325 |
-we are only interested in getting a preliminary filesystem of appropriate |
326 |
-configuration files and mount points. First we need to create a directory |
327 |
-within <path>/diskless</path> for the first slave. Each slave needs it's own |
328 |
-root file system because sharing certain system files will cause permission |
329 |
-problems and hard crashes. You can call these directories anything you want |
330 |
-but I suggest using the slaves IP addresses as they are unique and not |
331 |
-confusing. The static IP of our first slave will be, for instance, |
332 |
-<c>192.168.1.21</c>: |
333 |
+The master and slave filesystems can be tweaked and changed a lot. Right now we |
334 |
+are only interested in getting a preliminary filesystem of appropriate |
335 |
+configuration files and mount points. First we need to create a directory within |
336 |
+<path>/diskless</path> for the first slave. Each slave needs it's own root file |
337 |
+system because sharing certain system files will cause permission problems and |
338 |
+hard crashes. You can call these directories anything you want but I suggest |
339 |
+using the slaves IP addresses as they are unique and not confusing. The static |
340 |
+IP of our first slave will be, for instance, <c>192.168.1.21</c>: |
341 |
</p> |
342 |
|
343 |
<pre caption="Creating a remote root directory"> |
344 |
@@ -336,9 +332,9 @@ |
345 |
</pre> |
346 |
|
347 |
<p> |
348 |
-Various configuration files in <path>/etc</path> need to be altered to work on |
349 |
-the slave. Copy the master's <path>/etc</path> directory onto your |
350 |
-new slave root by typing: |
351 |
+Various configuration files in <path>/etc</path> need to be altered to work on |
352 |
+the slave. Copy the master's <path>/etc</path> directory onto your new slave |
353 |
+root by typing: |
354 |
</p> |
355 |
|
356 |
<pre caption="Creating /etc for the slave's filesystem"> |
357 |
@@ -395,7 +391,6 @@ |
358 |
</section> |
359 |
</chapter> |
360 |
|
361 |
- |
362 |
<chapter> |
363 |
<title>Configuring the DHCP server</title> |
364 |
<section> |
365 |
@@ -403,12 +398,12 @@ |
366 |
<body> |
367 |
|
368 |
<p> |
369 |
-DHCP stands for Dynamic Host Configuration Protocol. The DHCP server is the |
370 |
-first computer the slaves will communicate with when they PXE boot. The |
371 |
-primary purpose of the DHCP server is to assign IP addresses. The DHCP server |
372 |
-can assign IP addresses based on hosts ethernet MAC addresses. Once the slave |
373 |
-has an IP address, the DHCP server will tell the slave where to get its |
374 |
-initial file system and kernel. |
375 |
+DHCP stands for Dynamic Host Configuration Protocol. The DHCP server is the |
376 |
+first computer the slaves will communicate with when they PXE boot. The primary |
377 |
+purpose of the DHCP server is to assign IP addresses. The DHCP server can |
378 |
+assign IP addresses based on hosts ethernet MAC addresses. Once the slave has |
379 |
+an IP address, the DHCP server will tell the slave where to get its initial file |
380 |
+system and kernel. |
381 |
</p> |
382 |
|
383 |
</body> |
384 |
@@ -418,7 +413,7 @@ |
385 |
<body> |
386 |
|
387 |
<p> |
388 |
-There are several things you will want to make sure are working before you |
389 |
+There are several things you will want to make sure are working before you |
390 |
begin. First check your network connectivity: |
391 |
</p> |
392 |
|
393 |
@@ -428,7 +423,7 @@ |
394 |
</pre> |
395 |
|
396 |
<p> |
397 |
-You will want to make sure you have have an <e>eth0</e> device running. It |
398 |
+You will want to make sure you have have an <e>eth0</e> device running. It |
399 |
should look something like this: |
400 |
</p> |
401 |
|
402 |
@@ -455,8 +450,8 @@ |
403 |
<body> |
404 |
|
405 |
<p> |
406 |
-If your network does not already have a DHCP server installed you will need |
407 |
-to install one: |
408 |
+If your network does not already have a DHCP server installed you will need to |
409 |
+install one: |
410 |
</p> |
411 |
|
412 |
<pre caption="Installing the dhcp server"> |
413 |
@@ -464,7 +459,7 @@ |
414 |
</pre> |
415 |
|
416 |
<p> |
417 |
-If your network already has a DHCP server installed you will have to edit the |
418 |
+If your network already has a DHCP server installed you will have to edit the |
419 |
configuration file to get the PXE boot to function correctly. |
420 |
</p> |
421 |
|
422 |
@@ -486,8 +481,8 @@ |
423 |
</pre> |
424 |
|
425 |
<p> |
426 |
-The general layout of the file is set up in an indented fashion and looks |
427 |
-like this: |
428 |
+The general layout of the file is set up in an indented fashion and looks like |
429 |
+this: |
430 |
</p> |
431 |
|
432 |
<pre caption="Sample dhcpd.conf layout"> |
433 |
@@ -508,7 +503,7 @@ |
434 |
</pre> |
435 |
|
436 |
<p> |
437 |
-The <c>shared-network</c> block is optional and should be used for IPs you want |
438 |
+The <c>shared-network</c> block is optional and should be used for IPs you want |
439 |
to assign that belong to the same network topology. At least one <c>subnet</c> |
440 |
must be declared and the optional <c>group</c> block allows you to group options |
441 |
between items. A good example of <path>dhcpd.conf</path> looks like this: |
442 |
@@ -585,21 +580,20 @@ |
443 |
|
444 |
<note> |
445 |
There is nothing prohibiting the use of both PXE boot and Etherboot together. |
446 |
-The above Code Listing is merely an example; if you have issues, please |
447 |
-consult the DHCPd documentation. |
448 |
+The above Code Listing is merely an example; if you have issues, please consult |
449 |
+the DHCPd documentation. |
450 |
</note> |
451 |
|
452 |
<p> |
453 |
-The IP address after <c>next-server</c> will be asked for the specified |
454 |
-<c>filename</c>. This IP address should be the IP of the tftp server, usually |
455 |
+The IP address after <c>next-server</c> will be asked for the specified |
456 |
+<c>filename</c>. This IP address should be the IP of the tftp server, usually |
457 |
the same as the master's IP address. The <c>filename</c> is relative to the |
458 |
-<path>/diskless</path> directory (this is due to the tftp server specific |
459 |
-options which will be covered later). Inside the <c>host</c> block, the |
460 |
-<c>hardware ethernet</c> option specifies a MAC address, and |
461 |
+<path>/diskless</path> directory (this is due to the tftp server specific |
462 |
+options which will be covered later). Inside the <c>host</c> block, the |
463 |
+<c>hardware ethernet</c> option specifies a MAC address, and |
464 |
<c>fixed-address</c> assigns a fixed IP address to that particular MAC address. |
465 |
-There is a pretty good man page on |
466 |
-<path>dhcpd.conf</path> with options that are beyond the scope of this HOWTO. |
467 |
-You can read it by typing: |
468 |
+There is a pretty good man page on <path>dhcpd.conf</path> with options that are |
469 |
+beyond the scope of this HOWTO. You can read it by typing: |
470 |
</p> |
471 |
|
472 |
<pre caption="Viewing the man pages for dhcpd.conf"> |
473 |
@@ -613,9 +607,8 @@ |
474 |
<body> |
475 |
|
476 |
<p> |
477 |
-Before you start the dhcp initialisation script edit the |
478 |
-<path>/etc/conf.d/dhcp</path> file so that it looks something like |
479 |
-this: |
480 |
+Before you start the dhcp initialisation script edit the |
481 |
+<path>/etc/conf.d/dhcp</path> file so that it looks something like this: |
482 |
</p> |
483 |
|
484 |
<pre caption="Sample /etc/conf.d/dhcp"> |
485 |
@@ -624,10 +617,10 @@ |
486 |
</pre> |
487 |
|
488 |
<p> |
489 |
-The <c>IFACE</c> variable is the device |
490 |
-you wish to run your DHCP server on, in our case <c>eth0</c>. Adding more |
491 |
-arguments to the <c>IFACE</c> variable can be useful for a complex network |
492 |
-topology with multiple Ethernet cards. To start the dhcp server type: |
493 |
+The <c>IFACE</c> variable is the device you wish to run your DHCP server on, in |
494 |
+our case <c>eth0</c>. Adding more arguments to the <c>IFACE</c> variable can be |
495 |
+useful for a complex network topology with multiple Ethernet cards. To start the |
496 |
+dhcp server type: |
497 |
</p> |
498 |
|
499 |
<pre caption="Starting the dhcp server on the master"> |
500 |
@@ -666,8 +659,8 @@ |
501 |
</note> |
502 |
|
503 |
<p> |
504 |
-If you get the following message it probably means there is something wrong |
505 |
-in the configuration file but that the DHCP server is broadcasting correctly. |
506 |
+If you get the following message it probably means there is something wrong in |
507 |
+the configuration file but that the DHCP server is broadcasting correctly. |
508 |
</p> |
509 |
|
510 |
<pre caption="Sample dhpc server error"> |
511 |
@@ -688,20 +681,18 @@ |
512 |
</chapter> |
513 |
|
514 |
<chapter> |
515 |
-<title>Configuring the TFTP server and PXE Linux Bootloader and/or Etherboot </title> |
516 |
+<title>Configuring the TFTP server and PXE Linux Bootloader and/or Etherboot</title> |
517 |
<section> |
518 |
<title>About the TFTP server</title> |
519 |
<body> |
520 |
|
521 |
<p> |
522 |
-TFTP stands for Trivial File Transfer Protocol. The TFTP server is going to |
523 |
-supply the slaves with a kernel and an initial filesystem. All of the |
524 |
-slave kernels and filesystems will be stored on the TFTP server, so it's |
525 |
-probably a good idea to make the master the TFTP server. |
526 |
+TFTP stands for Trivial File Transfer Protocol. The TFTP server is going to |
527 |
+supply the slaves with a kernel and an initial filesystem. All of the slave |
528 |
+kernels and filesystems will be stored on the TFTP server, so it's probably a |
529 |
+good idea to make the master the TFTP server. |
530 |
</p> |
531 |
|
532 |
- |
533 |
- |
534 |
</body> |
535 |
</section> |
536 |
<section> |
537 |
@@ -709,9 +700,9 @@ |
538 |
<body> |
539 |
|
540 |
<p> |
541 |
-A highly recommended tftp server is available as the tftp-hpa package. |
542 |
-This tftp server happens to be written by the author of SYSLINUX and it works |
543 |
-very well with pxelinux. To install simply type: |
544 |
+A highly recommended tftp server is available as the tftp-hpa package. This |
545 |
+tftp server happens to be written by the author of SYSLINUX and it works very |
546 |
+well with pxelinux. To install simply type: |
547 |
</p> |
548 |
|
549 |
<pre caption="Installing the tfp server"> |
550 |
@@ -736,9 +727,9 @@ |
551 |
</pre> |
552 |
|
553 |
<p> |
554 |
-The <c>-l</c> option indicates that this server listens in stand alone mode so |
555 |
-you don't have to run inetd. The <c>-v</c> indicates that log/error messages |
556 |
-should be verbose. The <c>-s /diskless</c> specifies the root of your tftp |
557 |
+The <c>-l</c> option indicates that this server listens in stand alone mode so |
558 |
+you don't have to run inetd. The <c>-v</c> indicates that log/error messages |
559 |
+should be verbose. The <c>-s /diskless</c> specifies the root of your tftp |
560 |
server. |
561 |
</p> |
562 |
|
563 |
@@ -773,11 +764,10 @@ |
564 |
<body> |
565 |
|
566 |
<p> |
567 |
-This section is not required if you are only using Etherboot. |
568 |
-PXELINUX is the network bootloader equivalent to LILO or GRUB and will be |
569 |
-served via TFTP. It is essentially a tiny set of instructions that tells the |
570 |
-client where to locate its kernel and initial filesystem and allows for |
571 |
-various kernel options. |
572 |
+This section is not required if you are only using Etherboot. PXELINUX is the |
573 |
+network bootloader equivalent to LILO or GRUB and will be served via TFTP. It |
574 |
+is essentially a tiny set of instructions that tells the client where to locate |
575 |
+its kernel and initial filesystem and allows for various kernel options. |
576 |
</p> |
577 |
|
578 |
</body> |
579 |
@@ -787,8 +777,8 @@ |
580 |
<body> |
581 |
|
582 |
<p> |
583 |
-You will need to get the pxelinux.0 file which comes in the SYSLINUX package |
584 |
-by H. Peter Anvin. You can install this package by typing: |
585 |
+You will need to get the pxelinux.0 file which comes in the SYSLINUX package by |
586 |
+H. Peter Anvin. You can install this package by typing: |
587 |
</p> |
588 |
|
589 |
<pre caption="Installing syslinux"> |
590 |
@@ -806,8 +796,8 @@ |
591 |
</note> |
592 |
|
593 |
<p> |
594 |
-Before you start your tftp server you need to setup pxelinux. First copy |
595 |
-the pxelinux binary into your <path>/diskless</path> directory: |
596 |
+Before you start your tftp server you need to setup pxelinux. First copy the |
597 |
+pxelinux binary into your <path>/diskless</path> directory: |
598 |
</p> |
599 |
|
600 |
<pre caption="Setting up the remote bootloader"> |
601 |
@@ -817,13 +807,13 @@ |
602 |
</pre> |
603 |
|
604 |
<p> |
605 |
-This will create a default bootloader configuration file. The binary |
606 |
-<path>pxelinux.0</path> will look in the <path>pxelinux.cfg</path> directory |
607 |
-for a file whose name is the client's IP address in hexadecimal. If it does not |
608 |
-find that file it will remove the rightmost digit from the file name and try |
609 |
-again until it runs out of digits. Versions 2.05 and later of syslinux first |
610 |
-perform a search for a file named after the MAC address. If no file is found, |
611 |
-it starts the previously mentioned discovery routine. If none is found, the |
612 |
+This will create a default bootloader configuration file. The binary |
613 |
+<path>pxelinux.0</path> will look in the <path>pxelinux.cfg</path> directory for |
614 |
+a file whose name is the client's IP address in hexadecimal. If it does not find |
615 |
+that file it will remove the rightmost digit from the file name and try again |
616 |
+until it runs out of digits. Versions 2.05 and later of syslinux first perform a |
617 |
+search for a file named after the MAC address. If no file is found, it starts |
618 |
+the previously mentioned discovery routine. If none is found, the |
619 |
<path>default</path> file is used. |
620 |
</p> |
621 |
|
622 |
@@ -863,7 +853,7 @@ |
623 |
compiled the slave kernel with <c>NFS_ROOT_SUPPORT</c>, we will specify the |
624 |
nfsroot here. The first IP is the master's IP and the second IP is the |
625 |
directory that was created in <path>/diskless</path> to store the slave's |
626 |
-initial filesystem. |
627 |
+initial filesystem. |
628 |
</p> |
629 |
|
630 |
</body> |
631 |
@@ -878,8 +868,8 @@ |
632 |
</note> |
633 |
|
634 |
<p> |
635 |
-Etherboot boots network boot images from a TFTP server. As the PXE this is |
636 |
-equivalent to LILO or GRUB. The <c>mknbi</c> utility enables you to create |
637 |
+Etherboot boots network boot images from a TFTP server. As the PXE this is |
638 |
+equivalent to LILO or GRUB. The <c>mknbi</c> utility enables you to create |
639 |
different images using different options. |
640 |
</p> |
641 |
|
642 |
@@ -890,10 +880,10 @@ |
643 |
<body> |
644 |
|
645 |
<p> |
646 |
-You will need to get the <c>mknbi</c> (utility for making tagged kernel images |
647 |
-useful for netbooting) package to create your Etherboot images. This tool will |
648 |
-create a preconfigured kernel image from your original kernel. This contains |
649 |
-the boot options as shown further down. |
650 |
+You will need to get the <c>mknbi</c> (utility for making tagged kernel images |
651 |
+useful for netbooting) package to create your Etherboot images. This tool will |
652 |
+create a preconfigured kernel image from your original kernel. This contains the |
653 |
+boot options as shown further down. |
654 |
</p> |
655 |
|
656 |
<pre caption="Installing mknbi"> |
657 |
@@ -907,9 +897,9 @@ |
658 |
<body> |
659 |
|
660 |
<p> |
661 |
-In this section we will create a simple etherboot image. As the dhcp server |
662 |
-gives out the clients root-path in the "option root-path" dhcp.conf, we do |
663 |
-not have to include this here. More details can be found in the mknbi manual. |
664 |
+In this section we will create a simple etherboot image. As the dhcp server |
665 |
+gives out the clients root-path in the "option root-path" dhcp.conf, we do not |
666 |
+have to include this here. More details can be found in the mknbi manual. |
667 |
</p> |
668 |
|
669 |
<pre caption="mknbi manual"> |
670 |
@@ -917,9 +907,9 @@ |
671 |
</pre> |
672 |
|
673 |
<p> |
674 |
-Making the boot images. This will create a ELF bootable image capable of |
675 |
-passing dhcp and the rootpath to the kernel. Also forcing the kernel to browse |
676 |
-the network for a dhcp server. |
677 |
+Making the boot images. This will create a ELF bootable image capable of passing |
678 |
+dhcp and the rootpath to the kernel. Also forcing the kernel to browse the |
679 |
+network for a dhcp server. |
680 |
</p> |
681 |
|
682 |
<pre caption="making netboot images"> |
683 |
@@ -927,7 +917,7 @@ |
684 |
</pre> |
685 |
|
686 |
<note> |
687 |
-For the arch specific images you have to type <c>bzImage_arch</c> and |
688 |
+For the arch specific images you have to type <c>bzImage_arch</c> and |
689 |
<c>vmlinuz_arch</c>. |
690 |
</note> |
691 |
|
692 |
@@ -947,12 +937,12 @@ |
693 |
</pre> |
694 |
|
695 |
<p> |
696 |
-Now you can listen to various network traffic and make sure your client/server |
697 |
-interactions are functioning. If something isn't working there are a few |
698 |
-things you might want to check. First make sure that the client/server is |
699 |
-physically connected properly and that the networking cables are not damaged. |
700 |
-If your client/server is not receiving requests on a particular port make sure |
701 |
-that there is no firewall interference. To listen to interaction between two |
702 |
+Now you can listen to various network traffic and make sure your client/server |
703 |
+interactions are functioning. If something isn't working there are a few things |
704 |
+you might want to check. First make sure that the client/server is physically |
705 |
+connected properly and that the networking cables are not damaged. If your |
706 |
+client/server is not receiving requests on a particular port make sure that |
707 |
+there is no firewall interference. To listen to interaction between two |
708 |
computers type: |
709 |
</p> |
710 |
|
711 |
@@ -961,7 +951,7 @@ |
712 |
</pre> |
713 |
|
714 |
<p> |
715 |
-You can also use <c>tcpdump</c> to listen on particular port such as the tftp |
716 |
+You can also use <c>tcpdump</c> to listen on particular port such as the tftp |
717 |
port by typing: |
718 |
</p> |
719 |
|
720 |
@@ -970,11 +960,11 @@ |
721 |
</pre> |
722 |
|
723 |
<p> |
724 |
-A common error you might receive is: "PXE-E32: TFTP open time-out". |
725 |
-This is probably due to firewall issues. If you are using <c>TCPwrappers</c>, |
726 |
-you might want to check <path>/etc/hosts.allow</path> and |
727 |
-<path>etc/hosts.deny</path> and make sure that they are configured properly. |
728 |
-The client should be allowed to connect to the server. |
729 |
+A common error you might receive is: "PXE-E32: TFTP open time-out". This is |
730 |
+probably due to firewall issues. If you are using <c>TCPwrappers</c>, you might |
731 |
+want to check <path>/etc/hosts.allow</path> and <path>etc/hosts.deny</path> and |
732 |
+make sure that they are configured properly. The client should be allowed to |
733 |
+connect to the server. |
734 |
</p> |
735 |
|
736 |
</body> |
737 |
@@ -988,8 +978,8 @@ |
738 |
<body> |
739 |
|
740 |
<p> |
741 |
-NFS stands for Network File System. The NFS server will be used to serve |
742 |
-directories to the slave. This part can be somewhat personalized later, but |
743 |
+NFS stands for Network File System. The NFS server will be used to serve |
744 |
+directories to the slave. This part can be somewhat personalized later, but |
745 |
right now all we want is a preliminary slave node to boot diskless. |
746 |
</p> |
747 |
|
748 |
@@ -1000,11 +990,11 @@ |
749 |
<body> |
750 |
|
751 |
<p> |
752 |
-Various client/server services do not listen on a particular port, but instead |
753 |
-rely on RPCs (Remote Procedure Calls). When the service is initialised it |
754 |
-listens on a random port and then registers this port with the Portmapper |
755 |
-utility. NFS relies on RPCs and thus requires Portmapper to be running |
756 |
-before it is started. |
757 |
+Various client/server services do not listen on a particular port, but instead |
758 |
+rely on RPCs (Remote Procedure Calls). When the service is initialised it |
759 |
+listens on a random port and then registers this port with the Portmapper |
760 |
+utility. NFS relies on RPCs and thus requires Portmapper to be running before |
761 |
+it is started. |
762 |
</p> |
763 |
|
764 |
</body> |
765 |
@@ -1014,8 +1004,8 @@ |
766 |
<body> |
767 |
|
768 |
<p> |
769 |
-The NFS Server needs kernel level support so if you don't have this you should |
770 |
-recompile your master's kernel. To double check your master's kernel |
771 |
+The NFS Server needs kernel level support so if you don't have this you should |
772 |
+recompile your master's kernel. To double check your master's kernel |
773 |
configuration type: |
774 |
</p> |
775 |
|
776 |
@@ -1024,7 +1014,7 @@ |
777 |
</pre> |
778 |
|
779 |
<p> |
780 |
-You should see output that looks something like this if your kernel has been |
781 |
+You should see output that looks something like this if your kernel has been |
782 |
properly configured: |
783 |
</p> |
784 |
|
785 |
@@ -1057,7 +1047,7 @@ |
786 |
</pre> |
787 |
|
788 |
<p> |
789 |
-This package will emerge a portmapping utility, nfs server, and nfs client |
790 |
+This package will emerge a portmapping utility, nfs server, and nfs client |
791 |
utilities and will automatically handle initialisation dependencies. |
792 |
</p> |
793 |
|
794 |
@@ -1078,13 +1068,13 @@ |
795 |
</pre> |
796 |
|
797 |
<p> |
798 |
-The <path>/etc/exports</path> file specifies how, to who and what to export |
799 |
-through NFS. The slave's fstab will be altered so that it can mount the NFS |
800 |
+The <path>/etc/exports</path> file specifies how, to who and what to export |
801 |
+through NFS. The slave's fstab will be altered so that it can mount the NFS |
802 |
filesystems that the master is exporting. |
803 |
</p> |
804 |
|
805 |
<p> |
806 |
-A typical <path>/etc/exports</path> for the master should look something like |
807 |
+A typical <path>/etc/exports</path> for the master should look something like |
808 |
this: |
809 |
</p> |
810 |
|
811 |
@@ -1100,15 +1090,14 @@ |
812 |
</pre> |
813 |
|
814 |
<p> |
815 |
-The first field indicates the directory to be exported and the next field |
816 |
+The first field indicates the directory to be exported and the next field |
817 |
indicates to who and how. This field can be divided in two parts: who should be |
818 |
-allowed to mount that particular directory, and what the mounting |
819 |
-client can do to the filesystem: <c>ro</c> for read only, <c>rw</c> for |
820 |
-read/write; <c>no_root_squash</c> and <c>no_all_squash</c> are |
821 |
-important for diskless clients that are writing to the disk, so that they |
822 |
-don't get "squashed" when making I/O requests. The slave's fstab file, |
823 |
-<path>/diskless/192.168.1.21/etc/fstab</path>, should look like |
824 |
-this: |
825 |
+allowed to mount that particular directory, and what the mounting client can do |
826 |
+to the filesystem: <c>ro</c> for read only, <c>rw</c> for read/write; |
827 |
+<c>no_root_squash</c> and <c>no_all_squash</c> are important for diskless |
828 |
+clients that are writing to the disk, so that they don't get "squashed" when |
829 |
+making I/O requests. The slave's fstab file, |
830 |
+<path>/diskless/192.168.1.21/etc/fstab</path>, should look like this: |
831 |
</p> |
832 |
|
833 |
<pre caption="Sample slave fstab"> |
834 |
@@ -1131,14 +1120,14 @@ |
835 |
mounted and the second field indicates where. The third field describes the |
836 |
filesystem and should be NFS for any NFS mounted directory. The fourth field |
837 |
indicates various options that will be used in the mounting process (see |
838 |
-mount(1) for info on mount options). Some people have had difficulties with |
839 |
+mount(1) for info on mount options). Some people have had difficulties with |
840 |
soft mount points so we made them all hard, but you should look into various |
841 |
-<path>/etc/fstab</path> options to make your cluster more efficient. |
842 |
+<path>/etc/fstab</path> options to make your cluster more efficient. |
843 |
</p> |
844 |
|
845 |
<p> |
846 |
-The last file you should edit is <path>/etc/conf.d/nfs</path> which |
847 |
-describes a few options for nfs when it is initialised and looks like this: |
848 |
+The last file you should edit is <path>/etc/conf.d/nfs</path> which describes a |
849 |
+few options for nfs when it is initialised and looks like this: |
850 |
</p> |
851 |
|
852 |
<pre caption="Sample master /etc/conf.d/nfs"> |
853 |
@@ -1163,7 +1152,7 @@ |
854 |
<body> |
855 |
|
856 |
<p> |
857 |
-You should start the nfs server with its init script located in |
858 |
+You should start the nfs server with its init script located in |
859 |
<path>/etc/init.d</path> by typing: |
860 |
</p> |
861 |
|
862 |
@@ -1190,7 +1179,7 @@ |
863 |
<body> |
864 |
|
865 |
<p> |
866 |
-We will now make the slave's file system in sync with the master's and provide |
867 |
+We will now make the slave's file system in sync with the master's and provide |
868 |
the necessary binaries while still preserving slave specific files. |
869 |
</p> |
870 |
|
871 |
@@ -1201,8 +1190,7 @@ |
872 |
</pre> |
873 |
|
874 |
<note> |
875 |
-The reason for rsync -avz instead of cp is to maintain symlinks and |
876 |
-permissions |
877 |
+The reason for rsync -avz instead of cp is to maintain symlinks and permissions. |
878 |
</note> |
879 |
|
880 |
</body> |
881 |
@@ -1215,8 +1203,8 @@ |
882 |
The default scripts will try to run <e>checkroot</e> which does not make sense |
883 |
on your slave nodes. The hard way out is to manually edit the |
884 |
<path>/diskless/192.168.1.21/sbin/rc</path> script but this is cumbersome, |
885 |
-dangerous and could break if you decided to sync your node file system again |
886 |
-and forgot to leave this script alone. The trick is to have a |
887 |
+dangerous and could break if you decided to sync your node file system again and |
888 |
+forgot to leave this script alone. The trick is to have a |
889 |
<path>/fastboot</path> file when your system boots. This file tells |
890 |
<e>checkroot</e> not to run any file system check. But it will also erase the |
891 |
file when it has finished the initialisation process. That is why we need to |
892 |
@@ -1258,10 +1246,10 @@ |
893 |
</p> |
894 |
|
895 |
<warn> |
896 |
-Do not use the <c>rc-update</c> program to add or remove scripts from the |
897 |
-slave runlevels when logged on your master. This would change your master |
898 |
-runlevels. You need to create the links manually or log into your slave nodes |
899 |
-using ssh or connect a screen and keyboard to your slave. |
900 |
+Do not use the <c>rc-update</c> program to add or remove scripts from the slave |
901 |
+runlevels when logged on your master. This would change your master runlevels. |
902 |
+You need to create the links manually or log into your slave nodes using ssh or |
903 |
+connect a screen and keyboard to your slave. |
904 |
</warn> |
905 |
|
906 |
<pre caption="Typical slave runlevels"> |
907 |
@@ -1271,7 +1259,7 @@ |
908 |
drwxr-xr-x 2 root root 4096 2003-10-01 21:10 default |
909 |
drwxr-xr-x 2 root root 4096 2003-03-13 19:05 nonetwork |
910 |
drwxr-xr-x 2 root root 4096 2003-02-23 12:26 single |
911 |
- |
912 |
+ |
913 |
/diskless/192.168.1.21/etc/runlevels/boot: |
914 |
total 0 |
915 |
lrwxrwxrwx 1 root root 20 2003-10-18 17:28 bootmisc -> /etc/init.d/bootmisc |
916 |
@@ -1285,7 +1273,7 @@ |
917 |
lrwxrwxrwx 1 root root 20 2003-10-18 17:28 netmount -> /etc/init.d/netmount |
918 |
lrwxrwxrwx 1 root root 21 2003-10-18 17:28 rmnologin -> /etc/init.d/rmnologin |
919 |
lrwxrwxrwx 1 root root 19 2003-10-18 17:28 urandom -> /etc/init.d/urandom |
920 |
- |
921 |
+ |
922 |
/diskless/192.168.1.21/etc/runlevels/default: |
923 |
total 0 |
924 |
lrwxrwxrwx 1 root root 23 2003-10-18 17:28 consolefont -> /etc/init.d/consolefont |
925 |
@@ -1295,11 +1283,11 @@ |
926 |
lrwxrwxrwx 1 root root 16 2003-10-18 17:28 sshd -> /etc/init.d/sshd |
927 |
lrwxrwxrwx 1 root root 21 2003-10-18 17:28 syslog-ng -> /etc/init.d/syslog-ng |
928 |
lrwxrwxrwx 1 root root 17 2003-10-18 17:28 vixie-cron -> /etc/init.d/vixie-cron |
929 |
- |
930 |
+ |
931 |
/diskless/192.168.1.21/etc/runlevels/nonetwork: |
932 |
total 0 |
933 |
lrwxrwxrwx 1 root root 17 2003-10-18 17:28 local -> /etc/init.d/local |
934 |
- |
935 |
+ |
936 |
/diskless/192.168.1.21/etc/runlevels/single: |
937 |
total 0 |
938 |
</pre> |
939 |
@@ -1312,7 +1300,7 @@ |
940 |
</body> |
941 |
</section> |
942 |
|
943 |
-<!-- |
944 |
+<!-- |
945 |
|
946 |
<section> |
947 |
<title>An alternative : ClusterNFS</title> |
948 |
@@ -1327,7 +1315,7 @@ |
949 |
|
950 |
<p> |
951 |
If you don't fancy having a distinct root for each slave because it needs some |
952 |
-maintenance when upgrading files from the master directories, you could share |
953 |
+maintenance when upgrading files from the master directories, you could share |
954 |
the same root across all nodes, master and slaves included. This means all your |
955 |
machines need to be compatible because you will have only one set of binaries. |
956 |
You also need to be aware that this might have security issues because all of |
957 |
@@ -1350,7 +1338,7 @@ |
958 |
</p> |
959 |
|
960 |
<p> |
961 |
-Very shortly, this is what differs from the installation procedure described |
962 |
+Very shortly, this is what differs from the installation procedure described |
963 |
above: |
964 |
</p> |
965 |
|
966 |
@@ -1407,6 +1395,6 @@ |
967 |
</body> |
968 |
</section> |
969 |
--> |
970 |
-</chapter> |
971 |
|
972 |
+</chapter> |
973 |
</guide> |
974 |
|
975 |
|
976 |
|
977 |
-- |
978 |
gentoo-doc-cvs@g.o mailing list |