mke2fsコマンドを徹底解説!Linuxでext2/ext3/ext4ファイルシステムを作成する方法
生徒
「Linuxで新しいハードディスクを使えるようにしたいのですが、パーティションを作った後に何をすればいいんですか?」
先生
「パーティションを作成しただけでは、まだデータを保存できません。土地(パーティション)に、どんなルールで家を建てるか決める作業、つまり『ファイルシステムの作成』が必要です。」
生徒
「ファイルシステムって、WindowsでいうNTFS(エヌティーエフエス)みたいなものですか?」
先生
「その通り!Linuxでは主にext4(イーエックスティーフォー)という形式が使われます。今回は、そのファイルシステムを作るためのmke2fsコマンドについて学んでいきましょう。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. mke2fsコマンドとは?
mke2fs(読み方はエムケーイーニエフエス)は、Linux(リナックス)においてext2、ext3、ext4といったext(イーエックスティー)系のファイルシステムを作成するためのコマンドです。
コンピュータのストレージ(HDDやSSD)は、物理的に接続しただけでは使えません。OSがデータを管理するための仕組みである「ファイルシステム」を構築する必要があります。この作業を一般的に「フォーマット(初期化)」と呼びます。
mke2fsは、まさにこのフォーマットを実行する役割を持っています。もともとはext2(イーエックスティーニ)向けに作られたコマンドですが、現在ではオプションを指定することで最新のext4まで作成可能です。
2. ファイルシステムの種類とext4の重要性
Linuxには多くのファイルシステムが存在しますが、最も標準的なのがextシリーズです。それぞれの特徴を簡単に押さえておきましょう。
- ext2(イーエックスティーニ): 古い形式。ジャーナリング機能がなく、異常終了時にファイルが壊れやすい。
- ext3(イーエックスティーサン): ext2にジャーナリング機能(読み方はジャーナリングキノウ。変更履歴を記録する仕組み)を追加したもの。
- ext4(イーエックスティーフォー): 現在の主流。非常に高速で、大容量のストレージにも対応している信頼性の高い形式。
現代のシステム構築やサーバー運用では、特別な理由がない限りext4を選択するのが一般的です。mke2fsを使う際は、オプションでこれらを切り替えることができます。
3. mke2fsコマンドの基本的な使い方
最もシンプルな使い方は、作成したいデバイス名を指定することです。ただし、このコマンドはシステムを破壊する可能性があるため、通常はroot(ルート)権限で実行します。
まずは、引数なしで実行した場合の挙動を見てみましょう。標準設定ではext2が作成されます。
mke2fs /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
上記の例では、/dev/sdb1というパーティションにext2ファイルシステムを作成しました。しかし、前述の通り現在はext4が推奨されるため、次の章で紹介するオプションを組み合わせて使うのが一般的です。
4. ext4ファイルシステムを作成するオプション
mke2fsでext4を作成するには、-tオプションを使用してファイルシステムの種類を指定します。これにより、ジャーナリング機能などが有効になった最新の形式が構築されます。
IT現場で最もよく使われる実用的な例を紹介します。
mke2fs -t ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 1048576 4k blocks and 262144 inodes
Filesystem UUID: 550e8400-e29b-41d4-a716-446655440000
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
実行結果に「Creating journal(ジャーナルを作成しています)」と表示されているのが分かりますね。これがext3やext4の大きな特徴です。
5. 詳細なカスタマイズ設定(ブロックサイズとラベル)
中級者以上の管理者は、mke2fsを使ってさらに細かな設定を行うことがあります。例えば、大きな動画ファイルばかりを保存する場合は「ブロックサイズ」を大きく設定し、細かいテキストファイルが多い場合は標準のままにする、といった調整が可能です。
また、デバイスに「ボリュームラベル(名前)」を付けることで、デバイス名が変わっても識別しやすくすることができます。
mke2fs -t ext4 -L MY_BACKUP -b 4096 /dev/sdc1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479
Setting label 'MY_BACKUP'
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
ここで使った-Lはラベル設定、-bはブロックサイズ(単位はバイト)を指定するオプションです。読み方はラベル、ブロックサイズ(ブロックサイズ)です。
6. mkfs.ext4との違いを知っておこう
Linuxを学んでいると、mkfs.ext4(読み方はエムケーエフエスドットイーエックスティーフォー)というコマンドも目にするはずです。実は、多くの場合mkfs.ext4は内部的にmke2fsを呼び出しているフロントエンド(読み方はフロントエンド。操作を簡略化する窓口)に過ぎません。
mkfs.ext4を使えば、わざわざ-t ext4と入力する手間が省けます。どちらを使っても結果は同じですが、mke2fsの方がより詳細なパラメータ(読み方はパラメータ。設定値のこと)を直接制御できるという利点があります。
mkfs.ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 1048576 4k blocks and 262144 inodes
...(以下省略)...
コマンドの実行結果をよく見ると、最初の行に「mke2fs 1.46.5...」と表示されていますね。これはmkfs.ext4が裏側でmke2fsを動かしている証拠です。
7. 安全に実行するための確認手順
ファイルシステムの作成は、対象のパーティションにあるデータをすべて消去します。間違ったデバイス(例えばOSが入っているディスク)を指定すると、システムが起動しなくなる致命的な事態を招きます。
コマンドを実行する前に、必ずlsblk(読み方はエルエスビーエルケー)コマンドで、対象のデバイス名(/dev/sdb1など)とサイズを確認する癖をつけましょう。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
└─sda1 8:1 0 20G 0 part /
sdb 8:16 0 4G 0 disk
└─sdb1 8:17 0 4G 0 part
このように、マウントポイント(MOUNTPOINTS)が空欄になっており、自分が新しく追加した容量と一致しているかを確認してから、慎重にmke2fsを実行してください。不慮の事故を防ぐための「指差し確認」のようなものです。
8. 歴史から見るmke2fsの進化
mke2fsの歴史は非常に古く、Linuxの初期から存在しています。元々はLinux標準のファイルシステムであったext(Extended File System)シリーズを支えるために開発されました。開発者のセオドア・ツォー(Theodore Ts'o)氏は、ファイルシステムの安定性を極限まで高めることに注力しました。
初期のLinuxでは、ファイルシステムのチェックに膨大な時間がかかっていましたが、mke2fsが進化し、ジャーナリングをサポートするext3や、エクステント機能(データを効率よく配置する仕組み)を持つext4に対応したことで、現代のサーバー運用でも欠かせない存在となったのです。
初心者の方にとって、最初は難しく感じるかもしれませんが、この歴史を知ることで「なぜLinuxのファイル管理がこれほどまでに堅牢なのか」を理解する第一歩になります。インフラエンジニアやシステム管理者を目指すなら、必ずマスターしておきたい基本中の基本コマンドです。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
Linuxシステム管理における「ストレージの初期化」は、物理的なデバイスをOSが認識可能なデータ構造へと変換する極めて重要なプロセスです。本記事で詳しく解説したmke2fsコマンドは、単にファイルシステムを作成するだけでなく、システムのパフォーマンスや信頼性を左右する細かなカスタマイズを可能にする強力なツールです。特に、現代の標準であるext4ファイルシステムの作成においては、ジャーナリング機能によるデータの整合性保護や、大規模ストレージへの対応といった恩恵を受けるために、正しいオプション指定が欠かせません。
mke2fsコマンドの重要ポイント
これまでの内容を振り返り、実務で役立つ知識を整理しましょう。Linuxサーバーの構築や運用において、以下の3点は必ず覚えておくべき項目です。
- 1. ファイルシステムの種類: ext2、ext3、ext4の使い分けを理解すること。特に、耐障害性の高いext4が現在の主流です。
- 2. 安全な実行:
lsblkやfdisk -lコマンドを使用して、対象となるデバイス名を二重、三重に確認すること。 - 3. フロントエンドの存在:
mkfs.ext4はmke2fsのラッパー(簡易的な窓口)であり、内部では同じエンジンが動いていること。
実務で使える応用テクニック
さらに一歩踏み込んだ設定として、特定の用途に合わせた最適化が挙げられます。例えば、データベースサーバーや大規模なバックアップサーバーなど、格納するデータの特性に応じてブロックサイズ(-bオプション)や予約ブロックの割合(-mオプション)を変更することで、ディスク使用効率やアクセス速度を向上させることができます。
以下に、実務で頻繁に使用される「名前(ラベル)を付けてext4形式でフォーマットする」際のコマンド例を再掲します。
# デバイス /dev/sdb1 に対して、ラベル名を "DATA_DISK" として ext4 でフォーマットする例
sudo mke2fs -t ext4 -L DATA_DISK /dev/sdb1
このように、コマンド一つでストレージの性質を決定づけることができるのがLinuxの醍醐味です。誤操作は大きな事故に繋がりますが、正しく使いこなせば、より堅牢で効率的なシステム環境を構築することが可能になります。今回学んだmke2fsの基礎を土台にして、実際の環境でも慎重かつ確実に操作を行っていきましょう。
生徒
「先生、mke2fsコマンドについて詳しく教えていただきありがとうございました。パーティションを作った後に、このコマンドで『住所録』のような管理の仕組み(ファイルシステム)を作るというイメージがよく分かりました!」
先生
「その通りです。理解が早いですね。特に、Windowsでのフォーマット作業と同じだと考えるとイメージしやすいでしょう。ただし、Linuxの場合はコマンド一つで非常に細かく設定を変更できるのが特徴です。他に気になったことはありますか?」
生徒
「はい、記事の中でmkfs.ext4というコマンドも出てきましたが、結局どちらを使うのが正解なのでしょうか?」
先生
「良い質問ですね。日常的な作業であれば、入力を簡略化できるmkfs.ext4を使うのが一般的です。しかし、LPICなどの資格試験や、より深いシステム最適化を行いたい場合には、基本となるmke2fsのオプションを知っておく必要があります。裏側で何が起きているかを知っていることは、エンジニアとしての強みになりますからね。」
生徒
「なるほど!『魔法の杖』を使うだけでなく、その仕組みを知ることが大切なんですね。あと、実行する前にlsblkで確認するというのは、絶対に忘れないようにします。もし間違えてOSの入っているディスクをフォーマットしてしまったら…と想像するだけで冷や汗が出ます。」
先生
「ははは、その緊張感は大切ですよ。インフラエンジニアにとって、破壊的なコマンドを打つ前の確認作業は『儀式』のようなものです。常にバックアップがあるか、対象のパスが正しいかを指差し確認する癖をつけましょう。では、最後に簡単な確認テストとして、現在のファイルシステムの状態を確認するコマンドも覚えておきましょうか。」
生徒
「あ、それ知っています!df -Tコマンドですよね?」
先生
「正解です!作成した後に、実際に自分が指定した型(ext4など)でマウントされているかを確認するまでが一連の流れです。これで、新しいディスクの追加作業も怖くないですね。これからもコツコツと学習を続けて、Linuxマスターを目指しましょう!」
生徒
「はい!頑張ります!ありがとうございました!」