fdiskを学ぼう!~拡張、論理パーティション編~

fdiskを学ぼう!~拡張、論理パーティション編~

2016.02.02

前回に引き続き、fdiskコマンドを紹介いたします。 前回のコラムでは、基本パーティションの作成方法を紹介いたしました。今回は、拡張パーティションと論理パーティションについてご紹介いたします。 今回も、RHEL7 の環境で実行の流れを紹介します。fdisk コマンドは、RHEL(Red Hat Enterprise Linux)のコアの資格である、RHCSA(Red Hat Certified System Administrator)の資格取得にも必要な知識ですので、資格取得されたい方は実際に実行して確認してみましょう。

基本パーティション、拡張パーティション、論理パーティションとは

前回の記事「fdiskを学ぼう!~基本パーティション編~」

  • 基本(primary)パーティション
    OSを起動できるパーティションです。
    基本パーティションは1本のディスクに対し最大4つまで作成できます。
  • 拡張(extended)パーティションと論理(logical)パーティション
    4つ以上のパーティションに分割したい場合には、基本パーティションの番号(1-4)のどれか1つを拡張パーティションとして定義し、その中に論理パーティションを作成します。

検証環境

今回、fdiskを実行するRed Hatのバージョンとカーネルは以下の通りです。

# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.0 (Maipo)
#
# uname -r
3.10.0-123.el7.x86_64

ディスクの確認

使用するマシンのディスクは fdisk コマンドの -l オプションで確認します。
この検証環境では、Red Hatが提供しているKVMという仮想化環境で試しているため、ディスク名は、/dev/vdX となります。Xはaが1本目、bが2本目をあらわします。 今回は、/dev/vdbに、基本パーティションを3つ作成済みの状態にしてあります。

# fdisk -l /dev/vdb
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x15370984

デバイス ブート 始点 終点 ブロック Id システム
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 83 Linux
/dev/vdb3 411648 616447 102400 83 Linux
#

パーティション編集

(1) 拡張パーティションの作成

/dev/vdbに対し、早速パーティション編集をしていきましょう。
パーティション編集は、fdisk デバイス名 と実行します。

新しいパーティションを作成するには、n と入力します。
e と入力し、今回は拡張パーティションを作成していきます。
パーティション番号は4、パーティション開始セクタと終了位置はデフォルト値で進めます。

# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ): n
Partition type:
 p primary (3 primary, 0 extended, 1 free)
 e extended
Select (default e):
Using default response e
Selected partition 4
最初 sector (616448-20971519, 初期値 616448):
初期値 616448 を使います
Last sector, +sectors or +size{K,M,G} (616448-20971519, 初期値 20971519):
初期値 20971519 を使います
Partition 4 of type Extended and of size 9.7 GiB is set 

fdiskコマンドは、4番目の基本パーティションを作成しようとするとデフォルトが拡張パーティション(e)になります。
拡張パーティションの終了位置指定もデフォルトを使用するのをお勧めいたします。パーティションサイズのデフォルトは最終セクタになっており、残り全てを拡張パーティションで使いきることができるためです。

(2) 作成したパーティションの確認

作成した拡張パーティションを p コマンドで確認します。

コマンド (m でヘルプ): p

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x15370984

デバイス ブート 始点 終点 ブロック Id システム
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 83 Linux
/dev/vdb3 411648 616447 102400 83 Linux
/dev/vdb4 616448 20971519 10177536 5 Extended

拡張パーティションは、Idフィールドは5、システムフィールドには Extendedが自動的に入るためパーティションテーブル上では一目でわかるようになっています。

(3) 論理パーティションの作成

拡張パーティションは論理パーティションを入れるための範囲を定義しただけのため、ここまでで終了してもまだパーティションとして利用できません。

論理パーティションを作成するには、n と入力します。

これ以上作成できる基本パーティションはないため、自動的に論理パーティションが選択されます。論理パーティションは、拡張パーティション内に作成されていきます。 パーティション開始セクタはデフォルト値で進めます。サイズは+100Mと指定します。

コマンド (m でヘルプ): n
All primary partitions are in use
Adding logical partition 5
最初 sector (618496-20971519, 初期値 618496):
初期値 618496 を使います
Last sector, +sectors or +size{K,M,G} (618496-20971519, 初期値 20971519): +100M
Partition 5 of type Linux and of size 100 MiB is set

コマンド (m でヘルプ): p

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x15370984

デバイス ブート 始点 終点 ブロック Id システム
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 83 Linux
/dev/vdb3 411648 616447 102400 83 Linux
/dev/vdb4 616448 20971519 10177536 5 Extended
/dev/vdb5 618496 823295 102400 83 Linux

論理パーティションとして作成すると、パーティション番号は5番から割り当てられます。

以降の論理パーティションも、開始セクタはデフォルトで、サイズ指定だけ使用したいサイズを入力するだけです。

コマンド (m でヘルプ): n
All primary partitions are in use
Adding logical partition 6
最初 sector (825344-20971519, 初期値 825344):
初期値 825344 を使います
Last sector, +sectors or +size{K,M,G} (825344-20971519, 初期値 20971519): +100M
Partition 6 of type Linux and of size 100 MiB is set

(4) 作成したパーティションの保存

できあがったパーティションに問題がないか確認し、w コマンドにて保存終了します。

コマンド (m でヘルプ): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x15370984

デバイス ブート 始点 終点 ブロック Id システム
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 83 Linux
/dev/vdb3 411648 616447 102400 83 Linux
/dev/vdb4 616448 20971519 10177536 5 Extended
/dev/vdb5 618496 823295 102400 83 Linux
/dev/vdb6 825344 1030143 102400 83 Linux

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
# 

まとめ

fdisk コマンドで作成した論理パーティションには、基本パーティションと同様にファイルシステムを作成したり、swapとして使用するなどさまざまな使用用途があります。これら全ての一通りの流れを実機を通して確認できるトレーニングもありますので、体系的にfdiskを学びたい、サポートを受けながら実機操作をしたいという方、ぜひチェックしてみてください。

トレーニングや資格試験について

以下に、Linuxのシステム管理のおすすめトレーニングをご紹介します。

システム管理が始めての方
Red Hat システム管理 I
・Red Hat システム管理 II 試験付き / コースのみ

Linux、UNIXを使用したシステム管理を1~3年経験したことがある方
・RHCSA 速習 試験付き / コースのみ

トレーニングなしで試験のみ受験したい方 ※試験は実技試験のみ
Red Hat 認定システム管理者 (RHCSA) 認定試験

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。