File: fdisk.8

package info (click to toggle)
manpages-ja 0.5.0.0.20120606-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 25,964 kB
  • sloc: perl: 161; makefile: 116
file content (288 lines) | stat: -rw-r--r-- 15,011 bytes parent folder | download | duplicates (4)
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
.\" Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu)
.\" Copyright 1998 Andries E. Brouwer (aeb@cwi.nl)
.\" May be distributed under the GNU General Public License
.\"
.\" Japanese Version Copyright (c) 1997-1998 NAKANO Takeo all rights reserved.
.\" Translated Thu Sep 11 1997 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\" Updated & Modified Fri 3 Jul 1998 by NAKANO Takeo
.\" Updated & Modified Thu 7 Oct 1999 by NAKANO Takeo 
.\" Updated & Modified Sat 18 Mar 2000 by NAKANO Takeo 
.\" Updated & Modified Jun 14 May 2000 by NAKANO Takeo 
.\" Updated & Modified Tue May  4 23:47:43 JST 2004
.\"         by Yuichi SATO <ysato444@yahoo.co.jp>
.\"
.TH FDISK 8 "11 June 1998" "Linux 2.0" "Linux Programmer's Manual"
.SH 名前
fdisk \- Linux 用のパーティションテーブル操作ツール
.SH 書式
.BI "fdisk [\-u] [\-b " sectorsize ]
.BI "[\-C " cyls "] [\-H " heads "] [\-S " sects "] " device
.sp
.BI "fdisk \-l [\-u] [" "device ..." ]
.sp
.BI "fdisk \-s " "partition ..."
.sp
.BI "fdisk \-v
.SH 説明
ハードディスクは、一つ以上の論理的なディスクに分割することができる。
これは
.I
パーティション (partition)
と呼ばれる。この分割に関する情報は、ディスクのセクタ 0 に置かれる
.I
パーティションテーブル
に保存される。

BSD の世界では、それぞれ「ディスクスライス (disk slice)」、
「ディスクラベル (disklabel)」といった用語が用いられる。

Linux は少なくとも一つのパーティションを必要とする。
すなわちルートファイルシステムとするパーティションである。
また Linux ではスワップファルやスワップパーティションを
利用することができるが、後者の方が効率が良い。
したがって、通常は二つめのパーティションを
スワップ用に利用したくなる場合が多いだろう。
Intel 互換のハードウェアでは、システムをブートさせる BIOS はディスクの
先頭 1024 シリンダにしかアクセスできない場合が多い。
したがって大きなディスクを使っているユーザーは、
数メガバイト程度の第三のパーティションを追加することになる。
これは典型的には
.IR /boot
にマウントされ、カーネルイメージと、
ブートに必要ないくつかの外部ファイルを保存する。
このようにして、ブートに必要なファイルが BIOS によって
アクセス可能であることを保証するのである。
またセキュリティ、保守の都合、バックアップ、テストなど、
より多くのパーティションを使う理由は他にも存在する。

(最初の形式で起動された場合には)
.B fdisk
はメニュー駆動型のプログラムであり、
パーティションテーブルの作成と操作を行う。
DOS 形式のパーティションや、BSD, 
SUN 形式のディスクラベルを扱うこともできる。

.I device
に指定するのは通常以下のうちのどれかである。
.br
.nf
.RS
/dev/hda
/dev/hdb
/dev/sda
/dev/sdb
.RE
.fi
(/dev/hd[a\-h] は IDE ディスク、/dev/sd[a\-p] は SCSI ディスク、
/dev/ed[a\-d] は ESDI ディスク、/dev/xd[ab] は XT ディスクである)
デバイス名はディスク全体を参照する。

.I partition
.I device
名にパーティション番号を付加したものである。例えば
.B /dev/hda1
はシステムの第一 IDE ハードディスクの第一パーティションを指す。
IDE ディスクは 63 個までのパーティションを保持することができる。
SCSI ディスクは 15 までである。
.I /usr/src/linux/Documentation/devices.txt
も参考にすると良い。

BSD/SUN 形式のディスクラベルは 8 パーティションを扱うことができる。
そのうち 3 番目は「ディスク全体」を表すパーティションとなる。
先頭セクタを実際に利用するパーティション (スワップなど) を
シリンダ 0 から割り当ててはならない。ディスクラベルを破壊してしまう。

IRIX/SGI 形式のディスクラベルは、16 パーティションを記述できる。
そのうちの第 11 番目は `volume' 全体に対応するパーティションであり、
第 9 番目は `volume header' とラベル付けされる。
volume header はパーティションテーブルの領域もカバーする。
つまり volume header はブロック 0 から始まり、デフォルトでは
シリンダ 5 までの部分を占める。volume header の残りの部分は
ヘッダディレクトリエントリに用いられる。
volume header は他のパーティションと重なってはならない。
またパーティションテーブルが含まれているので、形式を変更したり、
ファイルシステムを作ったりもできない。
このラベル形式は、IRIX/SGI マシンで動作している Linux か、
IRIX/SGI ディスクを Linux で使う場合に限って用いること。

DOS 形式のパーティションテーブルは、パーティションの数に制限がない。
セクタ 0 には、4 つのパーティション
(「基本 (primary) パーティション」と呼ばれる) に関する情報が記述されている。
これら基本パーティションは、拡張 (extended) パーティションにすることもできる。
これは論理 (logical) パーティションの入れ物となる。
拡張パーティションにはディスクリプターが
セクタのリンクリストの形式で置かれ、
それぞれ対応する論理パーティションの情報を保持する。
四つの基本パーティションには (存在していなくても)
番号 1\-4 が割り当てられる。論理パーティションの番号は 5 から始まる。

DOS 形式のパーティションテーブルでは、それぞれのパーティションの
スタートオフセットとサイズは、二種類の方法で保存される。
一つはセクタの絶対数 (32 ビット) であり、
もう一つは「シリンダ数/ヘッド数/セクタ数 
(C/H/S)」の三つの組み合わせである (それぞれ 10, 8, 6 ビット)。
前者には問題は特になく、512 バイトのセクタで 2 TB を扱うことができる。
後者には二種類の問題がある。まず第一に、この C/H/S を与えるためには、
ヘッド数とトラックあたりのセクタ数を知っていなければならない。
第二に、これらの数値がわかったとしても、24 ビットでは足りないかもしれない。
DOS は C/H/S だけを用いる。Windows は両方を用いる。
Linux では C/H/S は使わない。

.B fdisk
は、
可能な場合にはディスクのジオメトリを自動的に取得する。
これはディスクの物理的なジオメトリであるとは限らない
(実際、最近のディスクでは、本当に物理的な \- 単純な
C/H/S 形式で記述できるような \- ジオメトリを持っていないものもある)。
しかしいずれにせよ、
MS-DOS はこのジオメトリをパーティションテーブルで利用する。

Linux しか置かないディスクなら、通常はデフォルトで問題なくすべてうまくいく。
しかし他の OS とディスクを共有しなければならない場合には、
まず他の OS 上で、その OS 付属の fdisk を先に実行し、
少なくとも一つのパーティションを作っておくと良い場合が多い。
Linux は、他の OS とうまく付き合うために、
ブート時にパーティションテーブルを参照し、
どんなジオメトリが要求されているのかを判断・決定しようとする
(要求されているジオメトリは、
物理的なものとは異なっているかもしれないから)。

パーティションテーブルが表示されるときには、パーティションテーブルの
エントリに対して整合性チェックが行われる。このチェックは、パーティション
の開始と終了に関する、物理的な情報と論理的なそれとが同一であるか、また
パーティションの開始/終了点がシリンダ境界にあるかを調べる (ただし後者
のチェックでは、最初のパーティションは例外である)。

MS-DOS のバージョンによっては、最初のパーティションの開始点をシリンダ
境界ではなく先頭シリンダの第 2 セクタにするものがある。
シリンダ 1 から始まるパーティションの開始点はシリンダ境界にならないが、
これは問題になることはあまりないだろう。
ただし OS/2 を同じマシンで使っていなければ、であるが。

パーティションテーブルが更新されると、終了する前に sync() と BLKRRPART
ioctl() (ディスクからパーティションテーブルを読み込みなおす) が
実行される。とても昔には、fdisk を利用した後にはリブートが
必須だったこともあった。
多分これは現在では直っていると思う \- むしろ、あまりに急いで
リブートすると、まだ書き込まれていないデータを失うかもしれない。
カーネルとディスクハードウェアの両方にバッファーデータが存在することに
注意すること。

.SH "DOS 6.x 向けの警告"

DOS 6.x の FORMAT コマンドはパーティションのデータエリアの
第一セクタからある種の情報を検索し、
これをパーティションテーブルにある情報より信頼できるものとして扱う。
DOS の FORMAT は、容量が変更されたときには最初の 512 バイト分の
データ領域が DOS 版 FDISK によってクリアされていることを仮定している。
DOS の FORMAT はこの拡張情報を /U フラグを指定した場合でも見ようとする
\- これは DOS FORMAT と DOS FDISK のバグであると我々は考える。

結局のところ、cfdisk や fdisk を用いて DOS パーティションの容量を
変更したときは、DOS FORMAT を使ってパーティションをフォーマットする前に
.B dd
を使って先頭の 512 バイトを 0 で埋めなければならない、というわけである。
例えば cfdisk を用いて /dev/hda1 の DOS パーティションの
テーブルエントリを作成した場合には、(fdisk または cfdisk を終了し、
Linux をリブートしてパーティションテーブルの情報を有効にしたあとで)
先頭の 512 バイトをゼロにするために
"dd if=/dev/zero of=/dev/hda1 bs=512 count=1"
などと実行する必要がある。

.B dd
コマンドを使う場合には\fB特に注意すること\fP。ちょっとしたタイプミスで、
ディスク上のすべてのデータがパーになる可能性もある。

できるだけ問題を起こしたくなければ、常に OS 固有のパーティション
テーブル用プログラムを用いることである。
例えば DOS パーティションは DOS FDISK プログラムで作り、
Linux のパーティションは Linux の fdisk または cfdisk で作るべきなのである。

.SH オプション
.TP
.BI "\-b " sectorsize
ディスクのセクタサイズを指定する。
指定できる値は 512, 1024, 2048 のいずれかである。
(最近のカーネルはセクタサイズをうまく扱える。
このオプションを用いるのは、カーネルが古い場合や、
カーネルの考えを上書きする場合だけにすること。)
.TP
.BI "\-C " cyls
ディスクのシリンダ数を指定する。
なぜこれを指定したいと思うのかは分からない。
.TP
.BI "\-H " heads
ディスクのヘッダ数を指定する
(もちろん物理的なヘッダ数ではなく、
パーティションテーブルに使われるヘッダ数である)。
適切な値は 255 または 16 である。
.TP
.BI "\-S " sects
ディスクの 1 トラック当りのセクタ数を指定する
(もちろん物理的なセクタ数ではなく、
パーティションテーブルに使われるセクタ数である)。
適切な値は 63 である。
.TP
.B \-l
指定したデバイスのパーティションテーブルをリストして終了する。
デバイスを何も指定しないと、
.I /proc/partitions
があれば、そこにあるデバイスを対象にする。
.TP
.B \-u
パーティションテーブルをリストするときに、サイズをシリンダ単位ではなく
セクタ単位で表示する。
.TP
.BI "\-s " partition
パーティションのサイズを (ブロック単位で) 標準出力に表示する。
.TP
.B \-v
.B fdisk
プログラムのバージョン番号を表示して終了する。
.SH バグ
この種の *fdisk プログラムには、同じ機能を持ったものが複数存在する。
それぞれ長所短所がある。
.BR cfdisk ,
.BR fdisk ,
.B sfdisk
の順に試してみると良いだろう。
(実際のところ、
.B cfdisk
は美しいプログラムであり、受付けるパーティションテーブルに
厳しい条件を課し、品質の高いパーティションテーブルを生成する。
可能な場合はこれを用いること。
.B fdisk
はバグっぽいプログラムで、やることもややあやふやである -
通常は真っ当な結果を出力するけれど。一つ利点があるとすると、
.B fdisk
は BSD のディスクラベルや、その他の非 DOS パーティションテーブルを
多少サポートしている点である。
.B sfdisk
はハッカー専用である。ユーザーインターフェースはひどいが、
fdisk よりも正しく、また fdisk, cfdisk のどちらよりもパワフルだ。
それに、インタラクティブでない使い方もできる)
.PP
最近は
.B parted
というツールもある。
cfdisk のインタフェースは優れているが、parted はより優れている。
parted はパーティションのサイズを変更するだけではなく、
パーティションにあるファイルシステムのサイズも変更する。
.PP
IRIX/SGI 形式のディスクラベルは、現時点ではカーネルでサポートされていない。
また IRIX/SGI ヘッダディレクトリはまだ完全にはサポートできていない。
.PP
「パーティションテーブルをファイルにダンプする」
オプションは存在しない。
.\" .SH AUTHORS
.\" A. V. Le Blanc (LeBlanc@mcc.ac.uk)
.\" Bernhard Fastenrath (fasten@informatik.uni-bonn.de)
.\" Jakub Jelinek (jj@sunsite.mff.cuni.cz)
.\" Andreas Neuper (ANeuper@GUUG.de)
.\" and many others.
.SH 関連項目
.BR cfdisk (8),
.BR mkfs (8),
.BR parted (8),
.BR sfdisk (8)