OSDN Git Service

util-linux: update the manpages of fdisk, cfdisk and sfdisk to 2.35.2.
[linuxjm/jm.git] / manual / util-linux / release / man8 / fdisk.8
index 6a1813b..23cebbc 100644 (file)
 .\" Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu)
 .\" Copyright 1998 Andries E. Brouwer (aeb@cwi.nl)
+.\" Copyright 2012 Davidlohr Bueso <dave@gnu.org>
+.\" Copyright (C) 2013 Karel Zak <kzak@redhat.com>
 .\" May be distributed under the GNU General Public License
+.\"*******************************************************************
 .\"
-.\" Japanese Version Copyright (c) 1997-1998 NAKANO Takeo all rights reserved.
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\" Japanese Version Copyright (c) 1997-1998 NAKANO Takeo
+.\"   and 2004 Yuichi Sato,
+.\"   and 2020 Chonan Yoichi,
+.\"         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 Sun 14 May 2000 by NAKANO Takeo 
 .\" Updated & Modified Tue May  4 23:47:43 JST 2004
 .\"         by Yuichi SATO <ysato444@yahoo.co.jp>
+.\" Updated & Modified (util-linux 2.35.2) Sun Jul 12 08:32:01 JST 2020
+.\"         by Chonan Yoichi <cyoichi@maple.ocn.ne.jp>
 .\"
-.TH FDISK 8 "11 June 1998" "Linux 2.0" "Linux Programmer's Manual"
+.TH FDISK 8 "February 2016" util\-linux "System Administration"
+
 .SH 名前
-fdisk \- Linux 用のパーティションテーブル操作ツール
+fdisk \- ディスクのパーティションテーブルを操作する
+
 .SH 書式
-.BI "fdisk [\-u] [\-b " sectorsize ]
-.BI "[\-C " cyls "] [\-H " heads "] [\-S " sects "] " device
-.sp
-.BI "fdisk \-l [\-u] [" "device ..." ]
+\fBfdisk\fP [options] \fIdevice\fP
 .sp
-.BI "fdisk \-s " "partition ..."
-.sp
-.BI "fdisk \-v
+\fBfdisk \-l\fP [\fIdevice\fP...]
+
 .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 で作るべきなのである。
+\fBfdisk\fP は、パーティションテーブルの作成と操作を行う対話方式のプログラムである。
+この \fBfdisk\fP は、GPT, MBR, Sun, SGI, BSD
+のパーティションテーブルを理解することができる。
+
+ブロックデバイスは、\fIパーティション\fPと呼ばれる
+1 個以上の論理ディスクに分割することができる。この分割に関する情報は、通常ディスクのセクタ
+0 に存在する\fIパーティションテーブル\fPに記録される。(BSD の世界では、
+「ディスクスライス」とか「ディスクラベル」という言い方をする。)
+.IP "[\fB訳注\fP]" 8
+このマニュアルでは、「パーティションテーブル」と「ディスクラベル」の両方を、
+ほぼ同じ意味で、混ぜて使っている。強いて言えば、Linux や DOS
+(GPT や MBR) については「パーティションテーブル」を使い、他の OS
+の場合も含めて、より一般的に言うときは「ディスクラベル」を使うようにしているらしいが、
+必ずしもそうとは言えないところもある。
+.PP
+すべてのパーティション分割は、デフォルトではデバイスの I/O リミット
+(I/O トポロジーとも言う) に基づいて行われる。そのため \fBfdisk\fP
+は、4K\-sector のサイズにふさわしくディスクレイアウトを最適化したり、MBR や GPT
+のために最近のデバイスで開始点や終了点のオフセットを適切な値に揃えたりできるのである。
+だから、デフォルトの値に (たとえば、パーティションの最初や最後のセクタの値に)
+\fBfdisk\fP の提示するデフォルトを使うのは、いつだって賢明なことである。
+また、パーティションのサイズを +/\-<size>{M,G,...}
+の表記で指定すれば、必ずデバイスのプロパティに合わせて大きさが調整されることになる。
+.IP "[\fB訳注\fP]" 8
+util-linux 所収の \fBblkid\fP(8) の man によれば、\fBblkid \-i\fP
+\fIdevice\fP で「I/O Limits (aka I/O topology)
+の情報を表示する」ことになっている。そこで、それを実行すると、MINIMUM_IO_SIZE,
+PHYSICAL_SECTOR_SIZE, LOGICAL_SECTOR_SIZE が表示された。I/O
+リミットとは、そうしたもののことなのだろう。「I/O 境界」「I/O 制約」と訳せるかもしれない。
+.PP
+CHS (Cylinder\-Head\-Sector)
+アドレシングは非推奨であり、デフォルトでは使用されない。だから、SSD や 4K\-sector
+のデバイスを使うときは、"fdisk \-S <n> \-H <n>"
+といったアドバイスのある古い記事や助言には、どうか従わないでいただきたい。
+
+なお、ディスクレイアウトを表示するスクリプトのためには、\fBpartx\fP(8)
+が豊富なインターフェースを提供している。
+\fBfdisk\fP の方は、主として人間が使うことを想定しているのである。\fBfdisk\fP
+は、出力については後方互換を保証していない。入力 (コマンド)
+については、どれも後方互換のはずである。
 
 .SH オプション
-.TP
-.BI "\-b " sectorsize
-ディスクのセクタサイズを指定する。
-指定できる値は 512, 1024, 2048 のいずれかである。
-(最近のカーネルはセクタサイズをうまく扱える。
-このオプションを用いるのは、カーネルが古い場合や、
-カーネルの考えを上書きする場合だけにすること。)
-.TP
-.BI "\-C " cyls
+.TP 
+\fB\-b\fP, \fB\-\-sector\-size\fP \fIsectorsize\fP
+ディスクのセクタサイズを指定する。有効な値は、512, 1024, 2048, 4096
+である。(最近のカーネルはセクタサイズの情報を持っている。
+このオプションを使うのは、カーネルが古い場合や、
+カーネルの持っている情報を変更したい場合のみにすること。) util\-linux\-2.17
+以来 \fBfdisk\fP は、論理セクタサイズと物理セクタサイズを区別している。
+このオプションは、両方のセクタサイズを \fIsectorsize\fP に変更する。
+.TP 
+\fB\-B\fP, \fB\-\-protect\-boot\fP
+新しいディスクラベルを作成するとき、ディスクの最初のセクタの先頭部分を消去しない。
+この機能は、GPT と MBR に対してサポートされている。
+.TP 
+\fB\-c\fP, \fB\-\-compatibility\fP[=\fImode\fP]
+互換モードが 'dos' か 'nondos' か指定する。デフォルトは、non\-DOS
+モードである。後方互換のために、このオプションは、引き数の
+\fImode\fP なしで使うこともできる。その場合は、デフォルトが使用される。
+気を付けてほしいのは、オプションの \fB\-c\fP と、指定が任意の引き数 \fImode\fP
+との間を空白で区切ってはいけないことだ。正しい書式は、たとえば '\-c=dos' である。
+.TP 
+\fB\-h\fP, \fB\-\-help\fP
+ヘルプテキストを表示して終了する。
+.TP 
+\fB\-L\fP, \fB\-\-color\fP[=\fIwhen\fP]
+出力をカラー表示にする。指定が任意の引き数 \fIwhen\fP には、\fBauto\fP, \fBnever\fP,
+\fBalways\fP が使える。引き数 \fIwhen\fP を省略すると、デフォルトの
+\fBauto\fP になる。カラー表示は無効にすることもできる。
+プログラムに埋め込まれた現在のデフォルトが有効か無効かを知りたければ、\fB\-\-help\fP
+の出力を見ればよい。「\fBカラー表示\fP」セクションも参照していただきたい。
+.TP 
+\fB\-l\fP, \fB\-\-list\fP
+指定されたデバイスのパーティションテーブルを一覧表示して、終了する。
+デバイスをひとつも指定しなかった場合は、 \fI/proc/partitions\fP
+というファイルが存在するなら、そこに記載されているデバイスを対象にする。
+.TP 
+\fB\-o\fP,\fB \-\-output \fP\fIlist\fP
+どの出力項目 (columns)
+を表示するかを指定する。サポートされている全項目のリストを知るには、\fB\-\-help\fP
+オプションを使用すればよい。
+
+\fIlist\fP を \fI+list\fP
+という書式で指定すれば、デフォルトのリストに項目を追加することができる
+(たとえば \fB\-o +UUID\fP のように)。
+.TP 
+\fB\-s\fP, \fB\-\-getsz\fP
+指定した各ブロックデバイスについて 512\-byte
+セクタでサイズを表示する。このオプションは非推奨であり、\fBblockdev\fP(8)
+を使った方がよい。(訳注: 実のところ、手元の v2.35.2 の \fBfdisk \-s\fP
+では、1 セクタ 1024 バイト計算のセクタ数を表示する。\fBblockdev \-\-getsz\fP
+の方は 1 セクタ 512 バイトのセクタ数。)
+.TP 
+\fB\-t\fP, \fB\-\-type\fP \fItype\fP
+指定したタイプ (\fItype\fP) のディスクラベルに対してのみサポートを有効にし、
+ほかのすべてのタイプに対するサポートは無効にする。
+.TP 
+\fB\-u\fP, \fB\-\-units\fP[=\fIunit\fP]
+パーティションテーブルの一覧表示をするとき、
+「セクタ数」または「シリンダ数」でサイズを表示する。
+デフォルトは、セクタ数でのサイズ表示である。後方互換を考慮して、このオプションは、
+\fIunit\fP 引き数なしでも使えるようになっている。その場合は、デフォルトが使用される。
+気を付けてほしいのは、オプションの \fB\-u\fP と、指定が任意の引き数 \fIunit\fP
+との間を空白で区切ってはいけないことだ。すなわち、正しい書式は、たとえば
+\&'\-u=cylinders' である。
+
+.TP 
+\fB\-C\fP, \fB\-\-cylinders\fP \fInumber\fP
 ディスクのシリンダ数を指定する。
-なぜこれを指定したいと思うのかは分からない。
-.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 のどちらよりもパワフルだ。
-それに、インタラクティブでない使い方もできる)
+どうしてそんなことをしたがるのか、筆者にはさっぱりわからないが。
+.TP 
+\fB\-H\fP, \fB\-\-heads\fP \fInumber\fP
+ディスクのヘッド数を指定する (もちろん、物理的なヘッド数ではなく、
+パーティションテーブルで使うヘッド数である)。
+妥当な値は、255 または 16 である。
+.TP 
+\fB\-S\fP, \fB\-\-sectors\fP \fInumber\fP
+ディスクの 1 トラックあたりのセクタ数を指定する
+(もちろん、物理的なセクタ数ではなく、パーティションテーブルで使うセクタ数である)。
+妥当な値は、63 である。
+
+.TP 
+\fB\-w\fP, \fB\-\-wipe\fP \fIwhen\fP
+デバイスからファイルシステムや RAID
+やパーティションテーブルのシグナチャーを消去する
+(訳注: 前から存在する古いシグナチャーを消去するということだろう)。衝突 (collision)
+が起きないようにするためである。引き数の \fIwhen\fP には、\fBauto\fP, \fBnever\fP,
+\fBalways\fP が使える。このオプションが指定されない場合のデフォルトは、\fBauto\fP
+であり、その場合シグナチャーが消去されるのは、対話モードのときだけである。
+いずれの場合でも、新しいパーティションテーブルが作成される前に、検出されたシグナチャーが、
+警告メッセージとして通知される。\fBwipefs\fP(8) コマンドの説明もご覧いただきたい。
+
+.TP 
+\fB\-W\fP, \fB\-\-wipe\-partition\fP \fIwhen\fP
+新たに作成するパーティションからファイルシステムや RAID
+やパーティションテーブルのシグナチャーを消去する
+(訳注: 前から存在する古いシグナチャーを消去するということだろう)。衝突 (collision)
+が起きないようにするためである。引き数の \fIwhen\fP には、\fBauto\fP, \fBnever\fP,
+\fBalways\fPが使える。このオプションが指定されない場合のデフォルトは、
+\fBauto\fP であり、その場合シグナチャーが消去されるのは、対話モードのときだけで、
+それもユーザが承認した後である。
+いずれの場合でも、新しいパーティションが作成される前に、検出されたシグナチャーが、
+警告メッセージとして通知される。\fBwipefs\fP(8) コマンドの説明もご覧いただきたい。
+
+.TP 
+\fB\-V\fP, \fB\-\-version\fP
+バージョン情報を表示して終了する。
+
+.SH デバイス
+「デバイス」は普通、/dev/sda, /dev/sdb
+などである。デバイス名は、ディスク全体を指している。libata
+(ATA ホストコントローラーと ATA デバイスをサポートするために Linux
+カーネルの内部で使われるライブラリ) の存在しない古いシステムでは、IDE と
+SCSI のディスクを区別している。そうした場合は、デバイス名が /dev/hd* (IDE)
+や /dev/sd* (SCSI) になるだろう。
+
+「パーティション」は、デバイス名の後ろにパーティション番号が付いたものだ。
+たとえば、/dev/sda1 は、そのシステムの最初のハードディスクの最初のパーティションである。
+Linux kernel 文書 (この場合は、Documentation/admin\-guide/devices.txt
+というファイル) もご覧になっていただきたい。
+
+.SH サイズ
+"Last sector (最終セクタ)"
+という問い合わせに対しては、パーティションサイズをセクタ数でも
++/\-<size>{K,B,M,G,...} という表記でも指定できる。
+.IP "[\fB訳注\fP]" 8
+デフォルトでは、最終セクタ番号を指定するようになっている。
+サイズを、バイト数ではなく、セクタの数で指定する +/-<セクタ数>
+という指定法もある。
+.PP
+サイズの前に '+' を付けると、そのパーティションの最初のセクタからの相対的なサイズと解釈される。
+サイズの前に '\-' を付けた場合は、最大位置
+(そのパーティションのために利用できる最後のセクタ) からのサイズになる。
+
+サイズをバイト数で指定する場合は、数字の後に KiB=1024, MiB=1024*1024
+のような乗数を表す接尾辞を付けることができる。GiB, TiB, PiB, EiB,
+ZiB, YiB も同様に使える。"iB" を続けるのは任意であり、たとえば、"K"
+は "KiB" と同じ意味である。
+
+相対的なサイズは、必ずデバイスの I/O リミットに合わせて大きさが調整される。
++/\-<size>{K,B,M,G,...} というこの表記法をお勧めする所以である。
+
+後方互換のため、fdisk は KB=1000, MB=1000*1000 といった接尾辞も解する。
+GB, TB, PB, EB, ZB, YB も同様に使える。ただし、こういった
+10^N を表す接尾時は非推奨である。
+
+.SH スクリプトファイル
+\fBfdisk\fP では、sfdisk 互換のスクリプトファイルを読み込むことができる
+('I' コマンドを使用する)。スクリプトはメモリ中のパーティションテーブルに適用されるので、
+そのパーティションテーブルに変更を加えてから、それをデバイスに書き出すことが可能である。
 .PP
-最近は
-.B parted
-というツールもある。
-cfdisk のインタフェースは優れているが、parted はより優れている。
-parted はパーティションのサイズを変更するだけではなく、
-パーティションにあるファイルシステムのサイズも変更する。
+また逆に、現在メモリ中にあるディスクレイアウトを、'O'
+コマンドを使って、スクリプトファイルに書き出すこともできる。
 .PP
-IRIX/SGI 形式のディスクラベルは、現時点ではカーネルでサポートされていない。
-また IRIX/SGI ヘッダディレクトリはまだ完全にはサポートできていない。
+こうしたスクリプトファイルは、cfdisk, sfdisk, fdisk などの libfdisk
+アプリケーションの間で互換性がある。より詳しいことは、\fBsfdisk\fP をご覧いただきたい。
+
+.SH ディスクラベル
+\fBGPT (GUID Partition Table)\fP
+.RS
+GPT は、パーティションテーブルのレイアウトについての最近の規格である。
+GPT は、各パーティションに対して、64 ビットの論理ブロックアドレス、チェックサム、
+UUID、それに、どんなパーティションかを示す名前を使用する。
+また、パーティションの数に制限がない
+(とは言え、パーティショニングツールの多くでは、パーティション数の上限をたいてい
+128 にしている)。
+.IP "[\fB訳注\fP]" 8
+ここで言う「どんなパーティションかを示す名前」は、\fBfdisk -l -o +Name\fP
+を実行すると (存在すれば) 表示される、簡単なパーティションの説明のことだろう。"EFI 
+system partition" とか "Basic data partition" のようなものである。
+\fBsfdisk\fP の \fB\-\-part\-label\fP オプションの説明や、
+「\fB入力の書式\fP」セクションのフィールド名の説明もご覧になっていただきたい。
 .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.
+なお、GPT の仕様では、今でも最初のセクタが \fBprotective MBR\fP
+のために留保されている。MBR 専用のパーティショニングツールが、誤認識して
+GPT ディスクを上書きしてしまうのを防ぐためである。
+
+GPT は、MBR より常によい選択である。UEFI
+のブートローダーを持つ最近のハードウェアでは、なおさらのことだ。
+.RE
+
+\fBDOS\-type (MBR)\fP
+.RS
+DOS 形式のパーティションテーブルは、記述できるパーシションの数に上限がない。
+セクタ 0 には、4 パーティションを記述する余地がある (これらは基本パーティションと呼ばれる)。
+そのうちのひとつは拡張パーティションにすることができる。
+これは、言わば、論理パーティションを入れる容器であり、セクタの連鎖リストの形になっている記述子
+(descriptors) が、それぞれの対応する論理パーティションの前に付いている。
+4 個の基本パーティションは、存在する、しないにかかわらず、1\-4
+の番号を取る。論理パーティションの番号は、5 から始まる。
+
+DOS 形式のパーティションテーブルでは、各パーティションの開始オフセットとサイズは、
+二つの方法で記録される。すなわち、セクタの絶対数 (32 ビットで指定される)
+と、\fBシリンダ数/ヘッド数/セクタ数\fP (\fBC/H/S\fP) の三つ組としてである
+(10+8+6 ビットで指定される)。前者には問題がない。512\-byte セクタで最大
+2 TB まで表現できる。後者には二つの問題がある。第一に、こうした C/H/S
+のフィールドを埋めることができるのは、ヘッド数や
+1 トラックあたりのセクタ数が分かっているときだけだ。
+第二には、そうした数値の妥当な値が分かっている場合でも、利用できる 24
+ビットでは十分ではない。DOS は C/H/S のみを使い、Windows は両方を使う。Linux は
+C/H/S を全く使わない。\fBC/H/S 方式のアドレス指定は非推奨である\fP。
+fdisk の将来のバージョンではサポートされないかもしれない。
+
+\fBDOS 互換のパーティションを作成したいなら\fP、「\fBDOS
+モード ...\fP」\fBセクションをお読みになるとよい\fP。\fBfdisk\fP
+はデフォルトでは、シリンダ境界に留意しない。
+.RE
+
+\fBBSD/Sun\-type\fP
+.RS
+BSD/Sun 形式のディスクラベルは、8 個のパーティションを記述できる。そのうちの
+3 番目は、ディスク全体を表すパーティションになるはずだ。
+パーティションが (スワップパーティションのように)
+その最初のセクタを実際に使用する場合には、そのパーティションをシリンダ 0
+から始めてはいけない。ディスクラベルを破壊することになるからである。
+なお、\fBBSD ラベル\fP は、通常 DOS パーティションの中にネストされる。
+.RE
+
+\fBIRIX/SGI\-type\fP
+.RS
+IRIX/SGI 形式のディスクラベルは、16 個のパーティションを記述できる。そのうちの
+11 番目は、ボリューム全体を表すパーティションであり、
+9 番目は、ボリュームヘッダと名付けられるはずだ。
+このボリュームヘッダには、パーティションテーブルも含まれることになる。
+すなわち、ブロック 0 から始まって、デフォルトでは
+5 シリンダ分を占めるのである。ボリュームヘッダの残りのスペースは、
+ヘッダのディレクトリエントリ用に使用することができる。
+どのパーティションも、ボリュームヘッダと重なってはいけない。
+また、ボリュームヘッダのパーティションタイプを変更してはならないし、
+そこにファイルシステムを作ってもいけない。
+パーティションテーブルがなくなってしまうからである。このタイプのラベルを使うのは、
+IRIX/SGI マシンで Linux を動かすときか、Linux の元で IRIX/SGI
+のディスクを扱うときだけにするべきである。
+.RE
+
+パーティションテーブルが更新されたときは、プログラムを終了する前に、
+sync() と ioctl(BLKRRPART) (ディスクからパーティションテーブルを再読み込みする)
+が実行される。
+
+.SH "DOS モードと DOS 6.x に関する警告"
+\fBご注意いただきたいが、このセクションで述べることの全てが非推奨である。\fP
+\fB最近のオペレーティングシステムでは、ジオメトリやシリンダ数といったことに気を使う必要はない。\fP
+\fBそれでも、本当に DOS 互換のパーティション分割をなさりたいのならば、fdisk \fP
+\fBのコマンドラインオプション '\-c=dos \-u=cylinders' を使用して\fP
+\fBDOS モードと cylinder 単位を有効にしなければならない。\fP
+
+DOS 6.x の FORMAT
+コマンドは、パーティションのデータ領域の最初のセクタに、ある種の情報を探しに行き、
+それをパーティションテーブルの情報より信頼できるものとして扱う。また、DOS の FORMAT
+は、DOS の FDISK が、サイズの変更があったときには必ず、パーティションのデータ領域の最初の
+512 バイトをクリアすることを当てにしている。DOS の FORMAT
+は、/U フラグが指定されたときでさえ、上記の追加情報を見に行こうとする。
+我々としては、こうした振る舞いは、DOS の FORMAT や FDISK のバグだと思う。
+
+要するにこういうことだ。\fBfdisk\fP や \fBcfdisk\fP
+を使って、パーティションテーブル上の DOS の領域のサイズを変更する場合には、DOS の
+FORMAT でそのパーティションをフォーマットする前に、\fBdd\fP(1)
+コマンドを使って、そのパーティションの\fB最初の 512 バイトを 0
+で初期化することも\fP行わなければならないのである。
+たとえば、\fBfdisk\fP を使って、パーティションテーブル中の /dev/sda1 に
+DOS の領域を作成しているのならば、(\fBfdisk\fP
+を終了し、パーティションテーブルの情報が有効になるように Linux をリブートした後で)
+"dd if=/dev/zero of=/dev/sda1 bs=512 count=1"
+というコマンドを実行して、そのパーティションの最初の 512
+バイトを 0 で初期化することになるだろう。
+
+通常 \fBfdisk\fP はディスクジオメトリを自動的に取得する。
+それは必ずしも実際の物理的なディスクジオメトリとはかぎらない
+(そうなのだ。最近のディスクには、物理的なジオメトリのようなものは実のところ存在しない。
+「シリンダ数/ヘッド数/セクタ数」といった単純化された形で記述できるようなものは、
+確かに存在しないのだ)。それでも、MS\-DOS
+がパーティションテーブルで使用するのは、このディスクジオメトリなのである。
+
+たいていの場合、デフォルトで万事うまく行くし、Linux
+がディスク上の唯一のシステムなら、問題はまったく起きない。
+それでも、ディスクを他のオペレーティングシステムと共有しなければならないのなら、他の
+OS の FDISK でパーティションを少なくとも
+1 つ作っておくのは、多くの場合、よい考えである。Linux
+は、ブートするとき、パーティションテーブルを調べて、
+他のシステムとうまくやって行くためには、どんな (見せかけの)
+ジオメトリが必要かを推測しようとと試みるからである。
+
+パーティションテーブルが DOS モードで表示される際には、
+パーティションテーブルの各領域について、整合性のチェックが必ず行われる。
+このチェックは、物理開始点と論理開始点、物理終了点と論理終了点が同じかどうかと、
+各パーティションの開始点や終了点が、シリンダ境界と一致しているかどうかをチェックしている
+(ただし後者のチェックでは、最初のパーティションは除外される)。
+
+MS\-DOS のバージョンによっては、作成する最初のパーティションを、シリンダ境界ではなく、
+先頭シリンダの第 2 セクタから始めるものがある。
+開始点が先頭シリンダ中にあるパーティションでは、
+シリンダ境界からパーティションが始まるわけがないが
+(訳注: 何故なら、先頭シリンダの先頭には
+MBR などがあるはずだから)、それが問題になることは、お手元のマシンに OS/2
+も入っていないかぎり、まずないだろう。
+
+最善の結果を得るためには、必ずその OS
+に固有のパーティションテーブル作成プログラムを使うべきである。
+たとえば、DOS のパーティションは、DOS の FDISK プログラムで作り、Linux
+のパーティションは、Linux の fdisk か cfdisk プログラムで作るべきなのだ。
+.SH カラー表示
+自動的なカラー表示は、\fI/etc/terminal\-colors.d/fdisk.disable\fP
+という空ファイルを作ることで無効にできる。
+
+カラー表示の設定についてもっと詳しいことを知りたかったら、\fBterminal\-colors.d\fP(5)
+をご覧になるとよい。\fBfdisk\fP は、以下の論理カラー名をサポートしている。
+.TP 
+\fBheader\fP
+出力するパーティションテーブルのヘッダ。
+.TP 
+\fBhelp\-title\fP
+ヘルプセクションのタイトル。
+.TP 
+\fBwarn\fP
+警告メッセージ。
+.TP 
+\fBwelcome\fP
+ウェルカムメッセージ。
+
+.SH 作者
+Karel Zak <kzak@redhat.com>
+.br
+Davidlohr Bueso <dave@gnu.org>
+.PP
+最初のバージョンを書いたのは、Andries E. Brouwer, A. V. Le Blanc,
+その他の人たちだった。
+
+.SH 環境変数
+.IP FDISK_DEBUG=all
+fdisk のデバッグ出力を有効にする。
+.IP LIBFDISK_DEBUG=all
+libfdisk デバッグ出力を有効にする。
+.IP LIBBLKID_DEBUG=all
+libblkid デバッグ出力を有効にする。
+.IP LIBSMARTCOLS_DEBUG=all
+libsmartcols デバッグ出力を有効にする。
+.IP LIBSMARTCOLS_DEBUG_PADDING=on
+目に見える埋め文字 (padding characters) を使用する。LIBSMARTCOLS_DEBUG
+を有効にしておく必要がある。
+
 .SH 関連項目
-.BR cfdisk (8),
-.BR mkfs (8),
-.BR parted (8),
-.BR sfdisk (8)
+\fBcfdisk\fP(8), \fBmkfs\fP(8), \fBpartx\fP(8), \fBsfdisk\fP(8)
+
+.SH 入手方法
+この fdisk コマンドは、util\-linux パッケージの一部であり、以下の URL
+から入手できる。https://www.kernel.org/pub/linux/utils/util\-linux/