このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:パーティションとファイルシステムの作成

パーティションとファイルシステムの作成

 Linux システムでディスクを増設した後、そのままではデータを保存することはできません。ディスクはまず パーティション に分割し、その上に ファイルシステム を作成することで、初めてファイルやディレクトリを管理できるようになります。
 パーティションとは、1台のハードディスクを複数の領域に区切って利用する仕組みであり、ファイルシステムはデータをどのように管理するかを決める仕組みです。適切にパーティションとファイルシステムを構築することで、システム障害時のリスクを軽減したり、バックアップや運用を容易にすることができます。

 ここでは Rocky Linux を例に、パーティションの作成からファイルシステムの構築までを順を追って解説します。実際のコマンド例や出力例も示しながら、fdisk・mkfs コマンドの使い方を理解していきましょう。

1.パーティションの基本

1.1. パーティションの種類

1台のディスクは、基本的に次のように分けられます。

種類説明
基本パーティション (Primary)最大4つまで作成可能。通常の領域として利用できる。
拡張パーティション (Extended)基本パーティションの1つを拡張領域に指定可能。
論理パーティション (Logical)拡張パーティションの内部に作成される領域。番号は 5番以降 から始まる。

例:ディスク /dev/sda の場合

  • /dev/sda1/dev/sda4 → 基本パーティション
  • /dev/sda5 以降 → 論理パーティション

 注意点として、拡張パーティションを作成すると、その番号が /dev/sda2 であっても、論理パーティションは /dev/sda5 から始まります。

1.2. パーティションテーブルの種類

パーティション情報はパーティションテーブルに記録されます。代表的な種類は以下のとおりです。

方式特徴
MBR (Master Boot Record)古い方式。最大4つの基本パーティション。2TBまでのディスクを扱える。
GPT (GUID Partition Table)新しい方式。最大128個のパーティション。2TB以上の大容量ディスクに対応。

2.fdisk コマンドによるパーティション操作

2.1. コマンド書式

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

2.2. コマンドの役割

fdisk はパーティションの作成・削除・表示を行うコマンドです。主に MBR 形式ディスクに利用され、Linux では最も基本的なツールの1つです。

2.3. 主なオプション

オプション説明
-lシステム内のディスクとパーティション一覧を表示
-u出力をセクタ単位で表示
-s デバイスデバイスのサイズを KB 単位で表示

2.4. 使用例(Rocky Linux)

[user@rocky9 ~]$ su -
パスワード:
[root@rocky9 ~]# fdisk /dev/sdb

fdisk (util-linux 2.37.4) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。

デバイスには認識可能なパーティション情報が含まれていません。
新しい DOS ディスクラベルを作成しました。識別子は 0x4793cfb2 です。

対話モードが開始されます。新しいパーティションを作成する場合の操作例は以下の通りです。

コマンド (m でヘルプ): n
パーティションタイプ
   p   基本パーティション (0 プライマリ, 0 拡張, 4 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): p
パーティション番号 (1-4, 既定値 1): 1
最初のセクタ (2048-41943039, 既定値 2048): [Enter]
最終セクタ, +/-セクタ番号 または +/-サイズ{K,M,G,T,P} (2048-41943039, 既定値 41943039): +1G

新しいパーティション 1 をタイプ Linux、サイズ 1 GiB で作成しました。

ここでは /dev/sdb1 が 1GB の基本パーティションとして作成されます。
確認のため p を入力すると一覧が表示され、w で保存して終了します。

コマンド (m でヘルプ): p
ディスク /dev/sdb: 20 GiB, 21474836480 バイト, 41943040 セクタ
ディスク型式: VBOX HARDDISK   
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x4793cfb2

デバイス   起動 開始位置 終了位置  セクタ サイズ Id タイプ
/dev/sdb1           2048  2099199 2097152     1G 83 Linux

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。

3.ファイルシステムの作成

3.1. ファイルシステムの種類

Linux では多くのファイルシステムを利用できます。代表的なものは以下の通りです。

種類説明
ext2古い標準ファイルシステム。ジャーナリング機能なし。
ext3ext2 にジャーナリング機能を追加。
ext4ext3 の改良版。現在の主流。
XFS高速で信頼性の高いファイルシステム。大規模環境で利用される。
Btrfs高機能な新世代ファイルシステム。スナップショット対応。
FATMS-DOSやWindowsで広く使用されるファイルシステム。
ISO9660CDなどの光ディスクのための標準的なファイルシステム。
UDFDVDで使われているファイルシステム。

3.2. mkfs コマンド

パーティションにファイルシステムを作成するには mkfs コマンドを使用します。

コマンド書式

mkfs -t ファイルシステムタイプ デバイスファイル名

主なオプション

オプション説明
-t type作成するファイルシステムの種類を指定(ext4, xfs など)
-cファイルシステム作成前に不良ブロックを検査
-v詳細情報を表示

3.3. 使用例

例として /dev/sdb1 に ext4 ファイルシステムを作成します。

[root@rocky9 ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: da882546-0311-43b0-9d63-3031e6653b39
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

このように出力されれば、ファイルシステムの作成は成功です。

3.4. fdisk コマンドでディスク確認

ディスクの認識状況を確認するために、fdisk -l を実行します。

[root@rocky9 ~]# fdisk -l /dev/sdb
ディスク /dev/sdb: 20 GiB, 21474836480 バイト, 41943040 セクタ
ディスク型式: VBOX HARDDISK   
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x4793cfb2

デバイス   起動 開始位置 終了位置  セクタ サイズ Id タイプ
/dev/sdb1           2048  2099199 2097152     1G 83 Linux

まとめ

パーティションとファイルシステムは、Linux におけるディスク管理の基礎です。

  • パーティション:ディスクを複数の領域に分割する仕組み。
  • ファイルシステム:パーティション内でファイルやディレクトリを管理する仕組み。

 fdisk でパーティションを作成し、mkfs でファイルシステムを作成することで、ディスクが利用可能な状態になります。
 次のステップでは、作成したファイルシステムをマウントし、実際に利用できるように設定していきます。