aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man8/diskless.8
blob: f38e912f0fe2d3447e799ffa3faef063b2a3961f (plain) (blame)
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
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
.\"	%NetBSD: diskless.8,v 1.11 1997/06/16 07:50:35 mrg Exp %
.\"
.\" Copyright (c) 1994 Gordon W. Ross, Theo de Raadt
.\" Updated by Luigi Rizzo
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\"    derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.20 2003/06/30 21:47:06 brooks Exp %
.\"
.\" $FreeBSD$
.Dd December 23, 2002
.Dt DISKLESS 8
.Os
.Sh 名称
.Nm diskless
.Nd ネットワークを介してシステムをブートする
.Sh 解説
ネットワークを介してマシンをブートする能力は、
.Em diskless
もしくは
.Em dataless
マシンのためや、ローカルのファイルシステムの再インストールまたは
修復中に一時的に利用するために有用です。
このファイルは、クライアントがネットワークを介してブートする時に、
クライアントとサーバとの間で行われる通信の一般的な解説を提供します。
.Sh 操作
ネットワークを介してシステムをブートする時に、
クライアントとサーバの間で 3 フェーズのやりとりがあります:
.Bl -enum
.It
ステージ 1 のブートストラップ、
典型的にはイーサネットカード組み込みの PXE が、
ブートプログラムを読み込みます。
.It
ステージ 2 ブートプログラム、
典型的には
.Xr pxeboot 8
が、モジュールとカーネルを読み込み、
カーネルをブートします。
.It
カーネル
.Tn NFS
がルートディレクトリをマウントし、そこから処理を継続します。
.El
.Pp
これらの各フェーズについて、以降で詳しく記述します。
.Pp
最初に、ステージ 1 ブートストラップがステージ 2 ブートプログラムを
ネットワーク経由でロードします。
ステージ 1 ブートストラップは典型的には
.Tn BOOTP
か
.Tn DHCP
を使用して読み取るファイル名を取得し、
.Tn TFTP
を使用してそのファイルをロードします。
このファイルは典型的には
.Pa pxeboot
と呼ばれ、
.Pa /boot/pxeboot
からサーバの
.Tn TFTP
ディレクトリに、典型的には
.Pa /tftpdir
にコピーされるべきです。
.Pp
それから、
ステージ 2 ブートプログラムが追加モジュールとカーネルをロードします。
これらのファイルは
.Tn DHCP
サーバや
.Tn BOOTP
サーバには存在しないかもしれません。
.Tn DHCP
設定で使用可能な
.Sy next-server
オプションを使用して、
ステージ 2 ブートファイルとカーネルを持つサーバを指定可能です。
ステージ 2 プログラムは、 
.Tn NFS
または
.Tn TFTP
を使用してこれらのファイルを取得します。
デフォルトでは
.Tn NFS
が使用されます。
.Xr pxeboot 8
を使用している場合、
.Pa /etc/make.conf
に
.Li LOADER_TFTP_SUPPORT=YES
を設定し、
下記の方法で
.Xr pxeboot 8
を再コンパイルおよび再インストールすることで
.Tn TFTP
を使用するバージョンをインストール可能です。
しばしば
.Tn TFTP
を使用することが必要となりますので、
.Pa /tftpdir/
にカスタムカーネルを置くことができます。
.Tn NFS
を使用するが
.Nm
クライアント用にカスタムルートファイルシステムを持たない場合、
ステージ 2 ブートは、サーバのカーネルを
.Nm
マシン用のカーネルとしてロードしますが、
これはあなたの期待する動作ではないかもしれません。
.Bd -literal -offset indent
cd /usr/src/sys/i386/boot
make clean; make; make install
cp /boot/pxeboot /tftpdir/
.Ed
.Pp
フェーズ 3 では、カーネルが再度
.Tn DHCP
や
.Tn BOOTP
を用いて設定情報を獲得し、
ルートファイルシステムのマウントに進み、動作を開始します。
ブートスクリプトは
.Nm
起動を認識し、
.Pa /etc/rc.d/initdiskless
および
.Pa /etc/rc.d/diskless
中の動作を実行します。
古いシステムでは、スクリプトは
.Pa /etc/rc.diskless1
と
.Pa /etc/rc.diskless2
です。
.Sh 設定
.Nm
クライアントを実行させるためには、次に示すものが必要です。
.Bl -bullet
.It
.Tn NFS
サーバ。これは、適切なパーミッションを付けて
ルートパーティションと
.Pa /usr
パーティションをエクスポートします。
いくつかのシステムファイルにアクセスできるようにするために、
ルートパーティションが
.Fl maproot Ns =0
でエクスポートされている限り、
スクリプト
.Nm diskless
は読み込み専用パーミッションで動作します。
例として
.Pa /etc/exports
は次に示す行を含みます。
.Bd -literal -offset indent
<ROOT> -ro -maproot=0 -alldirs <list of diskless clients>
/usr -ro -alldirs <list of diskless clients>
.Ed
.Pp
ここで
.Aq ROOT
は、ルートパーティションのサーバ上でのマウントポイントです。
スクリプト
.Pa /usr/share/examples/diskless/clone_root
を使い、共用可能な読み込み専用ルートパーティションを
生成することができます。
しかし、多くの場合、サーバ自身が使用するルートディレクトリを
(読み込み専用で) エクスポートさせると決めることもできます。
.It
.Tn BOOTP
または
.Tn DHCP
サーバ。
.Xr bootpd 8
は
.Pa /etc/inetd.conf
の
.Dq Li bootps
行のコメントを外すことで使用可能にすることができます。
.Pa /etc/bootptab
の例は次のようになります。
.Bd -literal -offset indent
 .default:\\
    hn:ht=1:vm=rfc1048:\\
    :sm=255.255.255.0:\\
    :sa=<SERVER>:\\
    :gw=<GATEWAY>:\\
    :rp="<SERVER>:<ROOT>":

<CLIENT>:ha=0123456789ab:tc=.default
.Ed
.Pp
.Aq SERVER ,
.Aq GATEWAY ,
.Aq CLIENT ,
.Aq ROOT
の意味は明らかでしょう。
.Pp
.It
適切に初期化されたルートパーティション。
スクリプト
.Pa /usr/share/examples/diskless/clone_root
が、サーバのルートパーティションを参照として使用することで、
この作成の助けとなります。
作業を始めたばかりならば、サーバ自身のルートディレクトリ
.Pa /
を使用すべきであり、この複製を作成すべきではありません。
.Pp
普通は、ディスクレスブートにおいてはサーバの
.Pa rc.conf
や
.Pa rc.local
とは異なるものを使いたいでしょう。
.Nm
ブートスクリプトは、(ルートの他のサブディレクトリと同様)
.Pa /etc
中の様々なファイルをオーバライドする機構を提供します。
スクリプトは 4 個のオーバライドディレクトリ
.Pa /conf/base ,
.Pa /conf/default ,
.Pa /conf/<broadcast-ip> ,
.Pa /conf/<machine-ip>
を提供します。
サーバの
.Pa /etc
を
.Nm
マシン上で完全に置き換える
.Pa /conf/base/etc
を、常に作成すべきです。
ここで、サーバの
.Pa /etc
を複製することが可能ですし、サーバの
.Pa /etc
を
.Pa /conf/base/etc
へマウントすることを
.Nm
ブートスクリプトに対して指示する
特殊ファイルを作成することも可能です。
これは、
.Nm
マシンの
.Pa /etc
の元となるマウントポイントを含むファイル
.Pa /conf/base/etc/diskless_remount
を作成することで実現されます。
例えば、このファイルの中身は次のようになります:
.Dl 10.0.0.1:/etc
.Pp
代りに、サーバが独立したルートを複数持ち場合、
このファイルは次のようになります:
.Pp
.Dl 10.0.0.1:/usr/diskless/4.7-RELEASE/etc
.Pp
これは動作しますが、
.Pa /usr/diskless/4.7-RELEASE
を
.Pa /usr/diskless/4.8-RELEASE
へコピーしてインストールを更新すると、この移動を反映するように
.Pa diskless_remount
を変更する必要があるでしょう。
これを避けるために、
.Pa diskless_remount
ファイル中のパスで
.Pa /
で開始するものの実際のパスは、
クライアントのルートをこれらの前に付けたものになります。
これにより、このファイルには次のように書けます:
.Pp
.Dl /etc
.Pp
.Nm
スクリプトは、
オーバライドされたディレクトリを保持するために、
メモリファイルシステムを作成します。
わずか 2MB パーティションがデフォルトで作成されますが、
用途によっては足りないかもしれません。
この動作を変えるには、
このディレクトリ用のメモリディスクの大きさを
512 バイトセクタ数単位で示す、ファイル
.Pa /conf/base/etc/md_size
を作成します。
.Pp
その次に、典型的には、ファイル毎のオーバライドを
.Pa /conf/default/etc
ディレクトリにて提供します。
最低でも、
.Pa /etc/fstab ,
.Pa /etc/rc.conf ,
.Pa /etc/rc.local
のオーバライドを
.Pa /conf/default/etc/fstab ,
.Pa /conf/default/etc/rc.conf ,
.Pa /conf/default/etc/rc.local
で指定する必要があります。
.Pp
オーバライドは階層的です。
ネットワーク固有のデフォルトを
.Pa /conf/ Ns Ao Ar BROADCASTIP Ac Ns Pa /etc
ディレクトリ中で提供可能です。
ここで、
.Aq Ar BROADCASTIP
は、
.Tn BOOTP
にてディスクレスシステムに与えられる、
.Nm
システムのブロードキャストアドレスを示します。
.Pa diskless_remount
および
.Pa md_size
の機構はこれらのディレクトリ中のいかなるものに対しても動作します。
コンフィギュレーション機能は
.Pa /etc
以外のディレクトリに対して動作します。
置換やオーバライドしたいディレクトリを
.Pa /conf/{base,default,<broadcast>,<ip>}/*
中に作成することで、
.Pa /etc
と同様に動作します。
.Pp
通常は
.Pa /conf/base/etc/diskless_remount
を使用してサーバの
.Pa /etc
を複製しますので、
メモリファイルシステムか不要なファイルを削除したいかもしれません。
例えば、サーバはファイアウォールを持つがディスクレスではそうでない場合、
.Pa /etc/ipfw.conf
を削除したいと思うでしょう。
.Pa /conf/base/ Ns Ao Ar DIRECTORY Ac Ns Pa .remove
ファイルを作成することで、これは実現可能です。
例えば、
.Pa /conf/base/etc.remove
に相対パスを列挙すると、
ブートスクリプトがこれらをメモリファイルシステムから削除します。
.Pp
最低でも、
.Pa /conf/default/etc/fstab
に次の内容を含める必要があります。
.Bd -literal -offset indent
<SERVER>:<ROOT> /     nfs    ro 0 0
<SERVER>:/usr   /usr  nfs    ro 0 0
proc            /proc procfs rw 0 0
.Ed
.Pp
また、
.Pa /conf/default/etc/rc.conf
を変更し、
.Nm
クライアント用のスタートアップオプションを
含むようにしたバージョンを用意する必要もあります。
.Pa /conf/default/etc/rc.local
は空にできますが、サーバ自身の
.Pa /etc/rc.local
が
.Nm
システムに使用されることを防げます。
.Pp
スタートアップコードで既に設定されているため、
.Va hostname
や
.Va ifconfig_*
を
指定する必要はまずないでしょう。
一方、サーバのローカルスタートアップファイルを使用しないようにするため、
.Va local_startup Ns = Ns Qq
を設定する必要があるでしょう。
.Pp
スタートアップスクリプトが
.Xr md 4
のファイルシステムの
.Pa /var
をマウントしますが、サイトによっては
.Pa /etc/defaults/rc.conf
に
.Va entropy_dir Ns = Ns Qq Li NO
を設定することによりエントリピの保存を無効化したいかもしれません。
.Pp
最後になりますが、
複数の
.Nm
クライアントで同じ設定ファイルを共有する場合、
.Li `hostname`
の値をスイッチ変数に使う
.Ic case
文を用いて、
マシン固有の設定を行なうようにすると良いかもしれません。
.Pp
.It
.Tn NFS
または
.Tn TFTP
を使用されロードされる、
.Nm
クライアント用のカーネル。
これは最低以下のオプション付きで構築されるべきです:
.Pp
.D1 Cd "options BOOTP"
.D1 Cd "options BOOTP_NFSROOT"
.D1 Cd "options BOOTP_COMPAT"
.Pp
デバイスセクションには以下を追加します:
.Pp
.D1 Cd "device md"
.Pp
ファイアウォールを使用する場合、デフォルトを
.Dq open
にしておかねばならないことは覚えておいて下さい。
オープンにしておかないと、カーネルで
.Tn BOOTP
パケットの読み書きができなくなります。
.El
.Sh セキュリティ上の問題
暗号化されない
.Tn NFS
を使用してルートパーティションと
ユーザパーティションをマウントすると、暗号化キーなどの
情報が洩れるかもしれないことに注意して下さい。
.Sh バグ
このマニュアルページはおそらく不完全です。
.Pp
.Fx
はときどきルートパーティションに書き込みを要求します。
ですから、スタートアップスクリプトでは、元の内容を保存する間、
MFS ファイルシステムをいくつかの位置 (
.Pa /etc
や
.Pa /var
など) に
マウントします。この処理はすべての場合を扱えないかもしれません。
.Sh 関連項目
.Xr ethers 5 ,
.Xr exports 5 ,
.Xr bootpd 8 ,
.Xr mountd 8 ,
.Xr nfsd 8 ,
.Xr pxeboot 8 ,
.Xr reboot 8 ,
.Xr tftpd 8
.Pp
.Pa ports/net/etherboot