連載
» 2018年03月01日 05時00分 公開

Linux基本コマンドTips(187):【 fdisk 】コマンド――パーティションを作成、削除する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、パーティションの作成や削除などに使う「fdisk」コマンドです。cfdiskコマンドについても触れます。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、パーティションの作成や削除などに使う「fdisk」コマンドです。cfdiskコマンドについても触れます。

fdiskコマンドとは?

 「fdisk」は、パーティションの作成や削除などに使うコマンドです。

 LinuxではHDDなどの記憶装置を論理的に分割して利用します。分割された領域をパーティションと呼び、パーティションの位置や長さなどの管理情報(パーティションテーブル)を、パーティションとは別の領域に記録しています。

 パーティションを管理する方式は大きく2つあります。MBR(Master Boot Record)とGPT(GUID Partition Table)です。いずれも内部にパーティションテーブルを含みます。fdiskはMBRのみに対応しています。

 MBRは古くから使われており、旧式のハードウェアやOSにも対応していますが、管理可能なパーティションのサイズが最大2TBまでという制約があります。これに対し、新しい方式であるGPTにはほぼ制約がありません ※1。

※1 MBRで管理できるパーティションのサイズは約2TBまで(2^32×512バイト)。これに対しGPTではセクタを64ビットで管理するため、計算上は最大8ZB(ゼタはテラ、ペタ、エクサの次の単位)まで扱うことが可能。GPTに対応しているコマンドには、fdiskと同等の機能を備えるgdiskコマンド(連載第188回)やpartedコマンドなどがある。





fdiskコマンドの書式

fdisk [オプション] デバイス名

※[ ]は省略可能な引数を示しています。-lオプション使用時はデバイス名の指定を省略できます。




fdiskの主なオプション

短いオプション 意味
-l 指定したデバイスのパーティションテーブルを一覧表示する(デバイス名を指定しなかった場合、/proc/partitionsの情報を使用する)
-u=単位 パーティションテーブルを一覧表示する際の始点と終点の位置を「cylinders(シリンダ数)」か「sectors(セクタ数)」で指定する(デフォルト設定はsectors)
-s 指定したパーティションのサイズをブロック単位で表示する

fdiskの主なオプション(操作関係)※2

短いオプション 意味
-b セクタサイズ ディスクのセクタサイズを指定する(512、1024、2048のいずれか)
-C シリンダ数 ディスクのシリンダ数を指定する
-H ヘッド数 ディスクのヘッド数(パーティションテーブル用)を指定する。物理的な磁気ヘッドの数とは必ずしも関係がない
-S セクタ数 ディスクの1トラック当たりのセクタ数を指定する

※2 通常は自動で設定されるため、これらのオプションを使用する必要はない。





パーティション情報を表示する

 「fdisk -l デバイス名」で、指定したデバイスのパーティション情報を表示します。デバイス名を省略した場合、「/proc/partitions」に書かれているパーティション情報(カーネルが認識しているパーティションのリスト)を表示します。

 指定したデバイスのブロック数を表示するには「fdisk -s デバイス名」とします。「-s」オプションでは、デバイス名を省略できません。

 fdiskコマンドの実行には、root権限が必要です(連載第68回)。

コマンド実行例

fdisk -l デバイス名

(指定したデバイスのパーティション情報を表示する)

fdisk -l /dev/sda

(/dev/sdaの情報を表示する)(画面1

fdisk -s デバイス名

(指定したデバイスのブロック数を表示する)


画面1 画面1 /dev/sdaの情報を表示したところ root権限で実行した(以下同じ)


対話モードでパーティション情報を表示する

 fdiskを対話モードで起動するには、「-l」や「-s」オプションを使用せず、デバイス名だけを付けます。

コマンド実行例

fdisk デバイス名

(fdiskを対話モードで起動する)


 対話モードの操作では、アルファベット1文字のコマンドを使います。例えばパーティションテーブルを一覧表示するには「p」と入力します。

対話モードで使用する主なコマンド

コマンド 意味
m 対話モード用コマンドを一覧表示する
p パーティションテーブルを表示する
v パーティションテーブルを検査する
n 新しいパーティションを作成する
a ブート可能フラグを切り替える
d パーティションを削除する
w パーティションテーブルの変更を保存して終了する
q パーティションテーブルの変更を「保存せずに」終了する

 画面2では、「fdisk /dev/sda」で対話モードを開始しています。その後「p」コマンドでパーティションテーブルの情報を表示し、「q」コマンドで終了しました。表示内容は「fdisk -l /dev/sda」と同じです。

画面2 画面2 対話モードでfdiskコマンドを使ったところ

 fdiskコマンドの対話モードと同じ操作を、メニューとカーソルキーを使って進めるコマンドもあります。「cfdisk」コマンドです。画面3には「cfdisk /dev/sda」を起動した結果を示しています。

画面3 画面3 cfdiskコマンドを起動したところ


パーティションを作成する、削除する

 対話モードのコマンドのうち、「w」コマンドだけがディスクの状態を実際に変更し、確定します。「n」コマンドを用いて新しいパーティションを作成したり、「d」コマンドで削除したりしても、「w」コマンドでパーティションの情報をMBRに保存しなければ、ディスクのパーティションには何も変更が加わりません。

 なお、「w」以外のコマンドを実行した後、パーティションの状態を変えたくない場合は「q」コマンドでfdiskコマンドを終了してください。

 以下ではパーティションの確認、削除、新しいパーティションの作成、確定といった内容を複数の画面に分けて紹介していきます。

 画面4では、「fdisk /dev/sdb」としてfdiskコマンドを対話モードで起動しました。起動後「p」でパーティションの情報を表示し、「d」でパーティションを削除、もう一度「p」で削除後のパーティションを確認しています(画面5に続く)。

画面4 画面4 パーティションを削除したところ

 続いて、「n」で新しいパーティションを作成しました(画面5)。ここではブートが可能なプライマリパーティションを選びました。

 パーティションの先頭位置はデフォルト設定のまま、終点は「+32G」とサイズを指定しました。サイズを1000の倍数で指定したい場合はKB、MB、GBで指定します。1024の倍数で指定したい場合はK(KibiByte)、M(MebiByte)、G(GibiByte)を使います。

画面5 画面5 新しいパーティションを作成したところ

 画面6ではプライマリパーティションとして確保した部分以外を、まとめて1つのパーティションにしました。「n」で新しいパーティションを作成後、[Enter]でデフォルト設定のまま処理を進めています。

 最後にもう一度「p」で現在のテーブルを確認し、「w」でMBRに保存して終了しました。ここで「q」を選ぶと、パーティション情報はfdiskコマンドを起動した時点のまま変わりません。

 fdiskコマンドでパーティションを設定後は、mkfsコマンドなどを用いてフォーマットします。フォーマット後、マウントして使用できるようになります(第183回)。

画面6 画面6 残ったディスク領域にもう1つパーティションを確保したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。