書式
cfdisk [ -agvz ] [ -c cylinders ] [ -h heads ] [ -s sectors-per-track ] [ -P opt ] [ device ]説明
cfdisk は、ハードディスクドライブのパーティション分割をする curses ベースのプログラムである。 device 引き数の典型的な値は、以下のものがある:
- /dev/hda [default] /dev/hdb /dev/sda /dev/sdb /dev/sdc /dev/sdd
パーティションテーブルを書き込むために、 cfdisk はディスクの「ジオメトリ」と呼ばれるものを必要とする: ジオメトリとは、「ヘッド数」と「1 トラック当たりのセクタ数」である。 Linux はジオメトリを使わないので、 ディスクが他のオペレーティングシステムからアクセスされることがなければ、 cfdisk が選んだデフォルトを受け入れても安全である。 cfdisk が使うジオメトリは、次のようにして見付ける。 初めにパーティションテーブルを調べる。 これは、以前にジオメトリを変更したプログラムが どのようなジオメトリを使ったかを見るためである。 パーティションテーブルが空である・ゴミを含んでいる・ 整合性の取れたジオメトリを指していない、といった場合は、 カーネルから情報をもらう。 うまく動かない場合は、ヘッド数 255, トラック当たりのセクタ数 63 を仮定する。 ジオメトリは、コマンドラインまたは `g' コマンドを使って上書きできる。 大容量の最近のディスクを何も書かれていない状態から パーティション分割する場合、 通常はヘッド数 255, トラック当たりのセクタ数 63 を選ぶのが良い。 cfdisk はディスクサイズを知っているので、 シリンダ数を設定する必要はない。
次に cfdisk はディスクドライブからパーティションテーブルを読み込みこもうとする。 パーティションテーブルが検出できなかった場合は、 エラーを表示してプログラムが終了する。 これは間違ったジオメトリ情報によっても起こることなので、 コマンドライン上から上書きすることができる。 この問題を回避するもう 1 つの方法は、 -z オプションを使うことである。 このオプションにより、ディスクのパーティションテーブルは無視される。
メインの表示画面は 4 つのセクションから構成される: 上から順に、ヘッダ・パーティション・コマンド行・警告行がある。 ヘッダには、プログラム名・バージョン番号・ ディスクドライブ・ジオメトリが書かれている。 パーティションのセクションには、 現在のパーティションテーブルが常に表示される。 コマンド行は、コマンドとテキストが入力される場所である。 使用できるコマンドは、通常、大括弧の中に表示される。 警告行は、表示すべき重要な情報があるとき以外、通常は何も表示されない。 現在選択しているパーティションは反転してハイライト表示される (-a オプションが指定された場合は、矢印で示される)。 パーティション毎に適用される全てのコマンドは、 現在選択されているパーティションに適用される。
パーティションセクションにあるパーティションテーブルのフォーマットは、 左から右へ、名前・フラグ・パーティションタイプ・ファイルシステムタイプ・ (訳註: ラベル)・サイズのようになっている。 名前はパーティションのデバイス名である。 フラグは、ブート可能パーティションを表す ブート、 または「DOS や OS/2 と互換性がない (Not Compatible) 」 ことを表す NC である。 DOS, OS/2 では (もしかしたら他の OS でも)、 第 2 ヘッドを起こすために、 ディスクの第 1 パーティションと 全ての論理パーティションの第 1 セクタを必要とする。 これは第 1 ヘッドの第 1 トラックにある 第 2 セクタから最終セクタまでを無駄にしている (第 1 セクタはパーティションテーブル自身に使用される)。 cfdisk は、この「失われた」セクタを最大化 (maximize) コマンド (m) で回復させることができる。 注意: fdisk(8) と幾つかの初期バージョンの DOS は、 セクタ数を最大化した状態で全パーティションを作成する。 より詳細な情報は、後述の最大化コマンドを参照すること。 パーティションタイプは、 基本 (Primary) または 論理 (Logical) のどちらかである。 ドライブ内の割り当てられていない領域では、 そのパーティションタイプは、 基本/論理 、 または (その領域を使用していないのであれば) 空白にしておくことができる。 もし既知のファイルシステムである場合は、 ファイルシステムタイプのセクションに パーティションで使われているファイルシステム名が表示される。 不明の場合は、 不明 という文字列とファイルシステムタイプを示す 16 進数の値が表示される。 (全ての基本パーティションが使われているために) ディスクドライブのセクタが使用できない、という特殊なケースがある。 この様なケースを検知した場合、 ファイルシステムタイプは 使用不可 と表示される。 サイズフィールドには、パーティションのサイズが (デフォルトでは) MB 単位で表示される。 サイズをセクタ数やシリンダ数で表示することもできる (以下の単位変更コマンドを参照すること)。 アスタリスク (*) がサイズの後に表示されている場合、 パーティションがシリンダの境界線上に並んでいないことを示す。
DOS 6.x 向けの警告
DOS 6.x の FORMAT コマンドはパーティションのデータエリアの 第一セクタからある種の情報を検索し、 これをパーティションテーブルにある情報より信頼できるものとして扱う。 DOS の FORMAT は、容量が変更されたときには 最初の 512 バイト分のデータ領域が DOS 版 FDISK によってクリアされていることを仮定している。 DOS の FORMAT はこの拡張情報を /U フラグを指定した場合でも見ようとする - これは DOS FORMAT と DOS FDISK のバグであると我々は考える。結局のところ、 cfdisk や fdisk を用いて DOS パーティションの容量を変更したときは、 DOS FORMAT を使ってパーティションをフォーマットする前に dd を使って先頭の 512 バイトを 0 で埋めなければならない、というわけである。 例えば cfdisk を用いて /dev/hda1 の DOS パーティションの テーブルエントリを作成した場合には、(fdisk または cfdisk を終了し、 Linux をリブートしてパーティションテーブルの情報を有効にしたあとで) 先頭の 512 バイトをゼロにするために "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" などと実行する必要がある。 注意点:
dd コマンドを使う場合には特に注意すること。 ちょっとしたタイプミスで、 ディスク上のすべてのデータがパーになる可能性もある。
できるだけ問題を起こしたくなければ、 常に OS 固有のパーティションテーブル用プログラムを用いることである。 例えば DOS パーティションは DOS FDISK プログラムで作り、 Linux のパーティションは Linux の fdisk または cfdisk で作るべきなのである。
コマンド
cfdisk コマンドは、キーを押すことで入力できる (コマンドの後に Enter を押す必要はない)。 使用可能なコマンドは、以下の通りである:- b
- 選択しているパーティションのブート可能フラグを切替える。 このコマンドにより、ドライブ上で どの基本パーティションをブート可能にするかを選択できる。
- d
- 選択しているパーティションを削除する。 このコマンドは、パーティションを空き領域に変換し、 そのパーティションのすぐ前後にある空き領域と統合する。 既に空き領域とマークされているパーティションや、 既に使用不能と使用不可パーティションは、削除できない。
- g
- ディスクジオメトリ (シリンダ数・ヘッド数・トラック当たりのセクタ数) を変更する。 警告: このコマンドは、何をしているかを理解している人のみが使うべきである。 ディスクジオメトリを変更するコマンドラインオプションもある。 ディスクジオメトリを変更するコマンドラインでは、 シリンダ数の変更 (c), ヘッダ数の変更 (h), トラック当たりのセクタ数の変更 (s) を選ぶことができる。 単純に Enter キーを押すと、使用できるデフォルトの値がプロンプトに表示される。 また、 ESC キーを押して変更せずに終了することもできる。 デフォルトの値を変更したい場合は、 希望する値を入力し、 Enter を押すだけでよい。 変更されたディスクパラメータの値は、 (ディスクジオメトリ変更のコマンドラインで Enter または ESC を押して) メインメニューに戻るまで反映されない。 ディスク容量が大きくなるようにジオメトリを変更した場合、 余分のセクタがディスクの終りに空き領域として追加される。 ディスク容量が小さくなるようにした場合、 新たな最終セクタより後のパーティションは削除され、 ドライブの最後のパーティション (またはドライブの終りにある空き領域) が新たな最終セクタになる。
- h
- ヘルプ画面を表示する。
- m
- 選択されているパーティションのディスク使用量を最大化する。 このコマンドは、パーティションテーブルとパーティションの先頭の間にある 未使用領域を回復する (訳注: 利用できるようにする)。 しかし、パーティションが DOS, OS/2, その他の OS との 互換性を失うというコストを伴う。 このコマンドは、ディスク使用量を最大にするのか、 DOS, OS/2 などと互換性のあるディスクを使用するのかを切替える。 パーティションを作成する場合、 デフォルトでは DOS, OS/2 などと互換性のあるパーティションを作成する。
- n
- 空き領域から新しいパーティションを作成する。 パーティションのタイプが、 基本領域 または 論理領域 の場合、そのタイプのパーティションが作成される。 しかし、 基本/論理 の場合、作成するパーティションタイプを質問される。 (1) プライマリパーティションは 4 スロットしか使用できない。 (2) 全ての論理ドライブを収める拡張パーティションは 1 つしか使用できないので、 全ての論理ドライブは (基本パーティションを挟まずに) 連続していなければならない。 という点を知っておくこと。 次に cfdisk は、作成するパーティションのサイズを聞いてくる。 選択されている空き領域全体のサイズと同じデフォルトのサイズが、 MB 単位で表示される。 デフォルトのサイズにするには Enter を押せばいいし、 別のサイズにするにはプロンプトで望みのサイズを入力すればよい。 cfdisk は、サイズ数の直後に (M, K, C, S) を付けて入力することにより、サイズを (デフォルトの) メガバイト (M) ・キロバイト (K) ・シリンダ (C) ・セクタ (S) で設定することができる。 パーティションが使用可能な空き領域を埋める場合は、 パーティションが作成された後にメインのコマンドラインに戻る。 そうでない場合は、 パーティションが空き領域の最初または最後に作成されることになり、 cfdisk はパーティションをどこに配置するかを聞いてくる。 パーティションが作成された後、 全ての基本パーティションが使われている場合には、 cfdisk は他のパーティションのタイプを自動的に調整する。
- p
-
パーティションテーブルを画面またはファイルに出力する。
以下に示すいくつかの異なるフォーマットから選択できる:
-
- r
- 生データフォーマット (ディスクに書き込まれる正確な形式)
- s
- セクタ順フォーマットのパーティションテーブル
- t
- 生データフォーマットのパーティションテーブル
-
生データフォーマット
は、
write
コマンドが選択された場合に、ディスクに書き込まれるセクタを表示する。
最初に基本パーティションテーブルが表示され、
続いて各論理パーティションに関連づけられた
パーティションテーブルが表示される。
データはバイト単位で 1 行に 16 バイトずつ 16 進数で表示される。
セクタ順フォーマットのパーティションテーブル は、セクタ番号で並べたパーティションテーブルを表示する。 フィールドは、左から右に、 パーティション番号・パーティションタイプ・最初のセクタ・最後のセクタ・ パーティションの最初のセクタからデータの始まりまでのオフセット・ パーティションの長さ・ ファイルシステムタイプ (括弧内にその 16 進数の値が表示される)・ フラグ (括弧内にその 16 進数の値が表示される) がある。 基本パーティションと論理パーティションに加え、 空き領域と使用不可領域が表示される。 拡張パーティションは、最初の論理パーティションの前に表示される。
パーティションがシリンダの境界で始まるか終るかしていない場合、 またはパーティションの長さがシリンダサイズで表示できない場合、 並んでいないセクタ番号/カウントの後にアスタリスク (*) が表示される。 通常、これは、 パーティションをシリンダ境界に並べて作成されない OS か、 異なるディスクジオメトリ情報を使う OS によって パーティションが作成されたことを示す。 他の OS のディスクジオメトリが分かる場合には、 ジオメトリ変更コマンド (g) を使ってジオメトリ情報を入力することができる。
ディスクの最初のパーティションと全ての論理パーティションでは、 パーティションの先頭からのオフセットが トラック当たりのセクタ数に一致しない場合 (つまり、データが最初のヘッドから始まっていない場合)、 番号記号 (#) がオフセットの後に表示される。 残りのパーティションでは、 オフセットが 0 でない場合、番号記号がオフセットの後に表示される。 これは、メイン画面のパーティションセクションにおける NC フラグに対応する。
生データフォーマットのパーティションテーブル では、パーティションの番号順にパーティションテーブルが表示される。 この場合、全ての使用不可領域と空き領域は無視される。 フィールドは、左から右へ、パーティション番号・(16 進数の) フラグ・ 最初のヘッド・セクタとシリンダ・(16 進数の) ファイルシステム ID・ 最後のヘッド・セクタとシリンダ・パーティションの最初のセクタと パーティション内のセクタ数となっている。 このテーブルの情報は、直接 生データフォーマット に変換される。
パーティションテーブルのエントリは、 最初と最後のシリンダを表すのに 10 ビットしか使用できない。 よって、最初 (最後) のセクタの絶対的なセクタ番号が シリンダ数で 1023 を超える場合、 最初 (最後) のヘッド・セクタ・シリンダの最大値が表示される。 これは OS/2 で使われている方法で、 このフォーマットで書かれていない場合でも、 OS/2 の fdisk によるパーティションテーブルの再書き込みに 関連する問題を修正する。 Linux と OS/2 は絶対的なセクタカウントを使うので、 最初と最後のヘッド・セクタ・シリンダの値は使われない。
-
- q
- プログラムを終了する。 このコマンドは、データをディスクに書き込まずにプログラムを終了する。
- t
- ファイルシステムタイプを変更する。 デフォルトでは、新しいパーティションは Linux パーティションとして作成されるが、 cfdisk は他の OS 用のパーティションも作成できるので、 パーティションタイプの変更では 希望するファイルシステムを 16 進数で入力できる。 ファイルシステムタイプをプロンプトで入力することも、 デフォルトのファイルシステムタイプ [Linux] を受け入れることもできる。
- u
- パーティションサイズ表示の単位を変更する。 単位はメガバイト・セクタ・シリンダと切り替わる。
- W
- パーティションテーブルをディスクに書き込む (大文字 W を入力しなければならない)。 このコマンドはディスク上のデータを破壊するかもしれないので、 `yes' または `no' を入力して、 書き込みを承認するか拒否するかしなければならない。 `yes' を入力した場合、 cfdisk はパーティションテーブルをディスクに書き込み、 カーネルに対してディスクからパーティションテーブルを 再読み込みするように指示する。 ほとんどの場合、パーティションテーブルの再読み込みはうまく動作するが、 失敗するのを見たこともある。 (このようになっても) 慌てないこと。 システムを再起動した後で改訂されるだろう。 全ての場合で、-- 安全のために -- システムを再起動することを勧める。
- 上矢印 (↑)
- 下矢印 (↓)
- カーソルを前または次のパーティションに移動する。 画面上に表示できる以上のパーティションがある場合、 画面に表示されている最後 (最初) のパーティションで 下 (上) に移動することで、 次 (前) のパーティションセットを表示できる。
- CTRL-L
- 画面を再描画する。 何か問題が発生し、何も表示が読めなくなった場合、 メインコマンドラインから画面をリフレッシュすることができる。
- ?
-
ヘルプ画面を表示する。
全てのコマンドは大文字でも小文字でも入力できる (Writes は例外である)。 サブメニューやファイル名を入力するプロンプトにいる場合、 ESC キーを入力することでメインコマンドラインに戻ることができる。
オプション
- -a
- 選択しているパーティションをハイライトするために、 反転表示ではなく、矢印カーソルを使う。
- -g
- ディスクドライバが与えるジオメトリを使わず、 パーティションテーブルからジオメトリを推測する。
- -v
- バージョン番号と著作権を表示する。
- -z
- 白紙のパーティションテーブルで起動する。 このオプションは、ディスク全体を再分割する場合に役立つ。 注意: このオプションはディスクのパーティションを白紙にするわけではない; 白紙にすると言うよりは、 単に既存のパーティションテーブルを読み込ませずに プログラムを起動するだけである。
- -c cylinders
- -h heads
- -s sectors-per-track
- BIOS から読み込んだシリンダ数・ヘッド数・トラック当たりのセクタ数を 上書きする。 BIOS やアダプタがこれらの情報を提供しない場合や、 間違った情報を提供する場合、 ディスクジオメトリの値を設定するためにこれらのオプションを使うこと。
- -P opt
- 指定されたフォーマットでパーティションテーブルを表示する。 opt は "r", "s", "t" のうちの 1 つまた複数で指定する。 表示フォーマットのより詳細な情報は、(上記の) print コマンドを参照すること。
終了状態
0: エラーなし; 1: 起動エラー; 2: I/O エラー; 3: ジオメトリが取得できない; 4: ディスクのパーティションテーブルが不正であるバグ
現在のバージョンでは、複数のディスクをサポートしていない。著者
Kevin E. Martin ([email protected])翻訳者謝辞
この man ページの翻訳にあたり、 <http://www.debian.or.jp/Documents/manuals_not_sgml/cfdisk.ja.txt> を参考にさせていただいた。