aboutsummaryrefslogtreecommitdiff
path: root/ja/man/man8/fdisk.8
blob: 00c158a08f0b0be2531cad317fe00fc79bd17c52 (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
.Dd October 4, 1996
.\" jpman %Id: fdisk.8,v 1.4 1997/07/26 21:56:04 horikawa Stab %
.Dt FDISK 8
.\".Os BSD 4
.Sh 名称
.Nm fdisk
.Nd DOS パーティションのメンテナンスプログラム
.Sh 書式
.Nm fdisk
.Op Fl i
.Op Fl u
.Op Fl a
.Op Fl 1234
.Op Ar disk
.Bl -tag -width time
.Nm fdisk
.Op Fl f Ar configfile
.Op Fl i
.Op Fl v
.Op Fl t
.Op Ar disk
.Sh 前置き
BIOS がカーネルをブートするために、
一定の約束をちゃんと守らねばなりません。
ディスクのセクタ 0 はブートコード、パーティションテーブル、
マジックナンバを含んでいなければならないのです。
BIOS パーティションはディスクをいくつかの部分に分けるのにも使われます。
BIOS はセクタ 0 を読み込んできて、(本当にそのコードを使うか?)
マジックナンバを確かめます。
それから、
セクタ 0 に書き込まれた 4 つの BIOS パーティションを探して、
それらのどれが
.Em アクティブ
かを決定します。
それから、二次ブートブロックを
.Em アクティブ
パーティションから読み込み、それを実行します。
DOS では一つの以上のパーティションと一つの
.Em アクティブ
を持てます。
DOS の
.Nm
プログラムは、
ディスク空間を一つ以上のパーティションに分割して、一つの
.Em アクティブ
を設定することができます。
.Sh 解説
.Pp
FreeBSD のプログラム
.Nm
は、DOS のそれと似た目的に役立ちます。
第一の形は、パーティション情報の表示や、
パーティションテーブルの対話的な編集に使われます。
第二の形は、
.Ar configfile
を使ってパーティションテーブルを書き込むという使い方であり、
他のスクリプト/プログラムから利用するよう設計されています。
.Pp
オプション:
.It Fl u
ディスクのセクタ 0 を更新 (編集) するのに使われます。
.Fl f
があるときには無視されます。
.It Fl i
ディスクのセクタ 0 を初期化します。
もし
.Fl f
がなければ、
.Fl u
の意味も含みます。
.It Fl a
アクティブパーティションの変更のみを行ないます。
.Fl f
があるときには無視されます。
.It Fl 1234
一つの fdisk エントリの操作だけを行ないます。
.Fl f
があるときには無視されます。
.It Fl f Ar configfile
パーティションの値をファイル
.Ar configfile
を使って設定します。
.Fl i
もあるときには、
.Ar configfile
が読み込まれるに先立って、
存在するパーティションは全部消され(つまり「未使用」の印をつけられる)
ますが、この場合を除いて、
.Ar configfile
はいつも存在するパーティションの変更を行ないます。
.Ar configfile
は "-" であってもよく、この場合
.Ar 標準入力
が読まれます。
ファイルの構文は、以降の
.Em コンフィギュレーションファイル
の節をご覧下さい。
.Pp
.Em 警告:
.Fl f
が使われたときには、
(対話モードで尋ねられるように)
本当にパーティションテーブルを書き込むのかどうかを尋ねられません。
用心して使うこと!
.It Fl t
テストモード; パーティションテーブル値を書き込みません。一般に
.Fl f
オプションを付けて、パーティションテーブルに書き込まれるはずのものを
見るのに使われます。
.Fl v
の意味を含みます。
.It Fl v
冗長になります。
.Fl f
が使われたときには、
.Nm
はディスクに書き込まれるパーティションテーブルを表示します。
.El
.Pp
最後のディスク名
.Ar disk
は、
.Sq 裸の
ディスク名だけ、
つまり
.Ql sd0
か、あるいは
.Pa /dev
の下に完全に限定されたデバイスノードで与えることができます。
もし省略された場合、ディスク
.Ql wd0 ,
.Ql sd0 ,
と
.Ql od0
が、一つが応答して見付かるまで
この順序で検索されます。
.Pp
引数なしで呼び出されたときには、
セクタ 0 パーティションテーブルを表示します。
例えば:

.Bd -literal
	******* Working on device /dev/rwd0 *******
	parameters extracted from in-core disklabel are:
	cylinders=769 heads=15 sectors/track=33 (495 blks/cyl)

	parameters to be used for BIOS calculations are:
	cylinders=769 heads=15 sectors/track=33 (495 blks/cyl)
		
	Warning: BIOS sector numbering starts with sector 1
	Information from DOS bootblock is:
	The data for partition 1 is:
	sysid 165,(FreeBSD/NetBSD/386BSD)
    	    start 495, size 380160 (185 Meg), flag 0
		beg: cyl 1/ sector 1/ head 0;
		end: cyl 768/ sector 33/ head 14
	The data for partition 2 is:
	sysid 164,(unknown)
    	    start 378180, size 2475 (1 Meg), flag 0
		beg: cyl 764/ sector 1/ head 0;
		end: cyl 768/ sector 33/ head 14
	The data for partition 3 is:
	<UNUSED>
	The data for partition 4 is:
	sysid 99,(ISC UNIX, other System V/386, GNU HURD or Mach)
    	    start 380656, size 224234 (109 Meg), flag 80
		beg: cyl 769/ sector 2/ head 0;
		end: cyl 197/ sector 33/ head 14
.Ed
.Pp
このディスクは、たまたまディスク全体を満す
3 つのパーティションに分割されています。
二つ目のパーティションは最初のパーティションの最後に重なっています。
(デバッグ目的に使われます)
.Bl -tag -width "cyl, sector と head"
.It Em "sysid"
パーティションのラベル付に使われます。
FreeBSD ではマジックナンバ 165 (10進) A5 (16進)を予約しています。
.It Em "start と size"
パーティションのセクタ単位での
開始アドレスとサイズです。
.It Em "flag 80"
これがアクティブパーティションであることを指定します。
.It Em "cyl, sector と head"
パーティションの
開始アドレスと終了アドレスを指定するのに使われます。
.It Em "注釈:"
これらの数字は、
BIOS の理解するディスクジオメトリを使って計算され、
ブートブロックに保存されます。
.El
.Pp
フラグ
.Fl i
または
.Fl u
は、
もし
.Fl f
オプションが使われていない限り、
パーティションデータを更新すべきであることを指示します。
もし
.Fl f
がなければ、
.Nm
プログラムは対話モードに入ります。
このモードでは明示的に指示しない限り、どんなデータも変更しないように
設計されています。
.Nm
はこのような振舞いを保証するよう、質問のデフォルトを選択しています。
.Pp
.Nm
は各々のパーティションを表示し、
それを編集したいかどうかを尋ねます。
yes と答えたら、
古い値を表示し、新しい値を尋ねて
各々のフィールドを進みます。
一つのパーティションが終了したら、
.Nm
はそれを表示して、それで正しいかどうかを尋ねます。
そして
.Nm
は次のエントリに進みます。
.Pp
.Em cyl, sector,
と
.Em head
のフィールドを正しく得るにはちょっとした芸当が要ります。
そのためデフォルトでは、
.Nm
が代わって計算しますが、選択してそれらの値を指定することもできます。
.Pp
全てのパーティションが進行した後、
.Em アクティブ
パーティション変更をすることができます。
最後に、
最初のセクタのデータが全部集めれらたときに、
本当にセクタ 0 を書換えても良いか尋ねられます。
yes と答えた場合だけ、データはディスクに書き込まれます。
.Pp
.Fl u
フラグと
.Fl i
の間の違いは、
.Fl u
フラグはディスク上にあるフィールドの値を編集するだけですが、
一方
.Fl i
フラグはセクタ 0 を "初期化" するのに使われます;
ディスク全体を FreeBSD 用に使えるように、
最後の BIOS パーティションをセットアップして、それをアクティブにします。
.Sh 注釈
.Pp
開始シリンダ等の自動計算は、
BIOS がそのドライブのジオメトリであると思っている数字をもとに行なわれます。
これらの数字はデフォルトでは、メモリ上のディスクラベルから取りますが、
プログラムの起動時にそれらを変更する機会が与えられます。
このおかげでユーザは、
BIOS がジオメトリ変換を行なうドライブでも動作できるブートブロックを
作ることができます。
.Pp
もしディスクのレイアウトを手作業で変更するのなら、
どうか FreeBSD パーティションがシリンダ境界から開始することを確認してください。
その後のたくさんの決定がこのことを仮定しています。
(これは必要ではなかったのかもしれませんが)
.Pp
すでにあるパーティションを編集すると、
たぶんそのパーティションのデータを失うことになるでしょう。
.Pp
このプログラムがどう働くかを調べるために、
一度か二度は対話的に実行するべきです。
これは、最後の質問に否定で答える限り完全に安全です。
このマニュアルでは完全に説明されていませんが、
プログラムが検出する微妙な点があります。
.Sh コンフィギュレーションファイル
.Pp
.Fl f
オプションが与えられたとき、
.Ar configfile
の値を使ってディスクのパーティションテーブルを書換えることができます。
このファイルの構文はたいへん単純です。
各行はコメントか仕様のどちらかで、空白 (改行を除く) は無視されます。
.Bl -tag -width Ds
.It Xo
.Ic #
.No Ar comment ...
.Xc
"#" で開始している行はコメントで無視されます。
.It Xo
.Ic g
.No Ar spec1
.No Ar spec2
.No Ar spec3
.Xc
パーティション計算で使う BIOS ジオメトリを設定します。
前に文字を伴った数字で、三つの値を指定しなければいけません。
.Bl -tag -width Ds
.Sm off
.It Cm c No Ar num
.Sm on
シリンダの数を
.Ar num
に設定します。
.Sm off
.It Cm h No Ar num
.Sm on
ヘッドの数を
.Ar num
に指定します。
.Sm off
.It Cm s No Ar num
.Sm on
トラックあたりのセクタの数を
.Ar num 
に設定します。
.El
.Pp
これらの指定はどんな順序でもよく、先頭の文字がどの値かを決定します;
しかし、三つ全てを指定しなければなりません。
.Pp
この行はパーティション情報を指定するどんな行よりも前に現れなくてはなりません。
.Pp
次の条件が真でなければ、エラーです:
.Pp
.nf
        1 <= シリンダの数
        1 <= ヘッドの数 <= 256
        1 <= トラックあたりのセクタの数 < 64
.fi
.Pp
シリンダの数は 1024 以下でなければなりませんが、
しかしこれは強制されるものではなく、警告が出力されるでしょう。
ブート可能な FreeBSD パーティション ("/" ファイルシステム) は
最初の 1024 シリンダ以内に収まっていなといけません;
もしそうでなければ、ブートに失敗するかもしれません。
ブートしないパーティションには、この制限はありません。
.Pp
1019 シリンダ、39 ヘッド、63 セクタのディスクの例 (これらの全てはみな等価):
.Pp
.nf
        g       c1019   h39     s63
        g       h39     c1019   s63
        g       s63     h39     c1019
.fi
.It Xo
.Ic p
.No Ar partition
.No Ar type
.No Ar start
.No Ar length
.Xc
.Ar partition
(1-4) で与えられたパーティションに、タイプ
.Ar type
、開始セクタ
.Ar start
、長さ (セクタ数)
.Ar length
を設定します。
.Pp
これらの行で明示的に言及されたパーティションだけが変更されます;
"p" 行で参照されていないパーティションは変更されません。
しかし、無効なパーティションテーブルがあるか、
.Fl i
オプションが指定されているなら、
存在するパーティションエントリは全て取り除かれ (未使用の印がつけられ)、
パーティション情報を明示的に設定するのに、
"p" 行が使われなければなりません。
もし複数のパーティションを設定する必要があるなら、
複数の "p" 行が指定されなければなりません;
一つの行で一つのパーティションを設定します。
.Pp
これらのパーティション行は、もしあればジオメトリ指定行の後に現れなければ
なりません。
.Pp
FreeBSD パーティションの
.Ar type
は 165 です。0 のパーティションタイプを指定すると、
パーティションを取り除き未使用の印をつけたのと同じことになります;
しかし、("0" とかの) ダミーの値が
.Ar start
と
.Ar length
に指定されなければなりません。
.Pp
注: パーティションの開始オフセットはヘッド境界まで必要なら繰り上げられ、
終了オフセットはシリンダ境界まで必要なら繰り下げられます。
.Pp
例: パーティション 4 を取り除いて、未使用の印をつける:
.Pp
.nf
        p       4       0       0       0
.fi
.Pp
例: パーティション 1 を FreeBSD パーティションであって、
セクタ 1 から始まって 2503871 セクタの長さに設定する
(注: これらの値は、
対応するヘッドとシリンダ境界に繰り上げ/繰り下げられます):
.Pp
.nf
        p       1       165     1       2503871
.fi
.It Xo
.Ic a
.No Ar partition
.Xc
.Ar partition
パーティションをアクティブにします。
コンフィギュレーションファイルのどこに現われても構いませんが、
一つだけしか現われてはいけません。
.Pp
例: パーティション 1 をアクティブパーティションにします:
.Pp
.nf
        a       1
.fi

.El
.Pp
.Sh 関連項目
.Xr disklabel 8
.Sh バグ
プログラム全体をよりユーザフレンドリにするべきです。
.Pp
このマニュアルを通して使われている術語
.Sq パーティション
は、他で使われる術語に一致させるため、
本当は
.Sq スライス
であるべきです。
.Pp
ディスク全体を FreeBSD に捧げるためには、このコマンドは使えません。
これには
.Xr disklabel 8
コマンドを使わなればなりません。