「パーティションを作ったあと、次に何をすればいいのかわからない」
こういう状況で詰まってしまうのは、ディスクの準備手順に「ファイルシステムの作成」というステップが抜けているためです。パーティションを切るだけでは使えません。その上にファイルシステムを作成して初めて、データを書き込める状態になります。
この記事では、Linuxでファイルシステムを作成する mkfs コマンド の実践的な使い方を解説します。ext4・xfs・vfatの違いと使い分け、実行環境での出力例、fstabへの永続マウント設定、よくあるエラーへの対処まで、現場で必要な情報を一通りカバーします。
動作確認環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS
この記事のポイント
・mkfs.ext4 が最もよく使われるファイルシステム作成コマンド
・RHEL系サーバーの /data パーティションは xfs が標準的な選択肢
・mkfs 実行前に lsblk でデバイス名を必ず確認し、誤消去を防ぐ
・fstab に UUID で記述すると再起動後も自動マウントできる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
ファイルシステムとは何か、なぜ必要なのか
ディスクやパーティションは、初期状態では「何もない空間」です。OSがそこにファイルを保存・管理するためには、あらかじめルールを設定しておく必要があります。そのルールの体系が「ファイルシステム」です。Windowsで言うところの「フォーマット」に相当する操作が、Linuxでは
mkfs コマンドによるファイルシステムの作成にあたります。Linuxでよく使われるファイルシステムの種類は以下のとおりです。
| ファイルシステム | 主な用途 | 特徴 |
|---|---|---|
| ext4 | 汎用(Debian系・Ubuntu系の標準) | 安定性が高く情報も豊富、ほぼ全ディストロで使える |
| xfs | 大容量データ・RHEL系サーバー | RHEL/Rocky Linuxの標準、大ファイルのI/O性能が高い |
| vfat | USBメモリ・外付けディスク | WindowsとLinux両方で読み書きできる |
| tmpfs | 一時ファイル領域(/tmp等) | メモリ上に存在し、再起動で消える |
mkfsコマンドの基本構文
mkfs は Make FileSystem の略で、指定したデバイスにファイルシステムを作成するコマンドです。基本構文は以下のとおりです。
# 基本構文 mkfs -t ファイルシステム種別 デバイス名 # または短縮形(ファイルシステム種別を直接サブコマンドで指定) mkfs.ext4 デバイス名 mkfs.xfs デバイス名 mkfs.vfat デバイス名
mkfs.ext4 のような短縮形がよく使われます。可読性が高く、コマンド補完でも見つけやすいためです。※ mkfs は実行すると既存データが全て消去されます。 デバイス名を間違えると取り返しのつかない事態になります。必ず実行前に
lsblk でデバイスを確認してください。実行前の確認:lsblkでデバイスを特定する
1. lsblkでブロックデバイス一覧を確認する
# ブロックデバイスを一覧表示する lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 4G 0 part [SWAP] └─sda3 8:3 0 45G 0 part / sdb 8:16 0 100G 0 disk
sdb が新しく追加した100GBのディスクで、まだ MOUNTPOINTS が空欄です。このデバイスに対してファイルシステムを作成します。確認ポイント:
・MOUNTPOINTS が空欄のデバイスが対象
・TYPE が disk のもの(partではなく、パーティションを切ってから使う場合は part が対象)
・SIZE の値が意図したディスクのサイズと一致しているか
2. パーティションを切ってからmkfsする場合
ディスク全体をひとつのファイルシステムとして使う場合はsdb のままで構いませんが、複数パーティションに分割する場合は事前に Linux ポート確認の全コマンド のようにパーティション操作を行い、sdb1 のようなパーティションデバイスに対してmkfsを実行します。ls コマンドの基本オプション と同様、デバイス名の一覧を丁寧に確認する習慣をつけておくと、誤操作を防げます。
ext4ファイルシステムの作成手順
1. mkfs.ext4でファイルシステムを作成する
# /dev/sdb に ext4 ファイルシステムを作成する mkfs.ext4 /dev/sdb
mke2fs 1.46.5 (30-Dec-2021) Creating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: a7c3f812-4e5b-48d2-91f0-7d3c8e2b1f44 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
2. マウントして動作確認する
# マウントポイントを作成する mkdir -p /data # /dev/sdb を /data にマウントする mount /dev/sdb /data # マウントされたことを確認する df -h /data
Filesystem Size Used Avail Use% Mounted on /dev/sdb 98G 24K 93G 1% /data
3. ext4のよく使うオプション
・-L ラベル名:ファイルシステムにラベルをつける(例:mkfs.ext4 -L data /dev/sdb)・-b ブロックサイズ:ブロックサイズを指定する(1024/2048/4096。通常はデフォルトの4096で良い)
・-m 予約パーセント:rootユーザー用の予約領域を変更する(デフォルト5%、
-m 1 で節約可能)データ領域として使うパーティションでは
-m 1 が有効です。デフォルトだと100GBのディスクで5GBが予約されてしまいます。xfsファイルシステムの作成手順
RHEL 9・Rocky Linux 9ではルートパーティションのデフォルトがxfsです。大容量ファイルのI/O性能に優れており、データベースや動画ファイルを扱うサーバーでよく採用されます。1. mkfs.xfsでファイルシステムを作成する
# /dev/sdb に xfs ファイルシステムを作成する mkfs.xfs /dev/sdb
meta-data=/dev/sdb isize=512 agcount=4, agsize=6553600 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=1 inobtcount=1 data = bsize=4096 blocks=26214400, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=12800, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Discarding blocks...Done.
注意点:xfsに対してはxfs_repairを使う
ファイルシステムに問題が発生したときの修復ツールが ext4 と異なります。ext4 は
fsck.ext4、xfs は xfs_repair を使います。xfs に誤って fsck.ext4 を実行するとデータが破損するため、ファイルシステムの種別は必ず確認してください。2. xfsのよく使うオプション
・-f:既存のファイルシステムが存在しても強制的に上書きする(mkfs.xfs -f /dev/sdb)・-L ラベル名:ラベルをつける(
mkfs.xfs -L data /dev/sdb)既にxfsが作成済みのデバイスに再度mkfs.xfsを実行しようとすると「already contains a XFS filesystem」というエラーが出ます。その場合は
-f オプションで強制実行できますが、既存データは全て消えるため慎重に行ってください。fstabに登録して再起動後も自動マウントする
mount コマンドでマウントするだけでは、サーバーを再起動するとマウントが解除されてしまいます。永続的にマウントするには /etc/fstab に設定を記述します。1. UUIDを確認する
fstab ではデバイス名(/dev/sdb)ではなくUUIDを使うのが鉄則です。デバイス名はディスクの増減で変わることがありますが、UUIDは変わりません。# デバイスのUUIDを確認する blkid /dev/sdb
/dev/sdb: UUID="a7c3f812-4e5b-48d2-91f0-7d3c8e2b1f44" BLOCK_SIZE="4096" TYPE="ext4"
2. /etc/fstabに追記する
# /etc/fstab に以下の行を追記する # UUID=xxx マウント先 ファイルシステム オプション dump pass UUID=a7c3f812-4e5b-48d2-91f0-7d3c8e2b1f44 /data ext4 defaults 0 2
・UUID=...:マウントするデバイスのUUID
・/data:マウント先のディレクトリ
・ext4:ファイルシステムの種別(xfsの場合はxfs)
・defaults:標準的なマウントオプション(rw, suid, exec, auto, nouser, async)
・0:dumpバックアップ対象(0=対象外)
・2:fsckチェック順序(0=スキップ、1=最優先、2=順番待ち)
3. fstabの設定を確認してからリブートする
fstabの記述ミスは、起動時にシステムが正常に立ち上がらない原因になります。記述後は必ず以下のコマンドで確認してください。# fstab の記述に基づいてマウントをテストする(--fake はマウントを実行せず検証のみ) mount -a # エラーが出なければ問題なし # マウント状態を確認する df -h /data
mount -a でエラーが出なければ、再起動後も自動マウントされます。エラーが出た場合は fstab を修正してから再度試してください。mount コマンドの使い方 もあわせて参照すると、マウントオプションの詳細を理解できます。
vfatファイルシステムの作成(USBメモリ・外付けディスク向け)
WindowsとLinuxの両方でアクセスしたい場合は vfat(FAT32)を使います。# vfat ファイルシステムを作成する(USBメモリなど) mkfs.vfat /dev/sdc1 # ラベルをつけて作成する(-n オプション) mkfs.vfat -n USBDRIVE /dev/sdc1
iocharset=utf8 オプションを指定すると良いです。# vfat を日本語対応でマウントする mount -o iocharset=utf8 /dev/sdc1 /mnt/usb
トラブルシュート:よくあるエラーと対処法
「is mounted」エラー:マウント中のデバイスにmkfsを実行しようとした
mke2fs: /dev/sdb is mounted; will not make a filesystem here!
# まずアンマウントする umount /dev/sdb # アンマウントできない場合はumountせずに使用しているプロセスを確認する lsof /dev/sdb
「already contains a XFS filesystem」エラー:既存xfsに上書きしようとした
mkfs.xfs: /dev/sdb appears to contain an existing filesystem (xfs). Use the -f option to force overwrite.
-f オプションを追加する。# 強制上書き(既存データはすべて消える) mkfs.xfs -f /dev/sdb
「command not found」エラー:mkfs.xfsがインストールされていない
bash: mkfs.xfs: command not found
# RHEL系 dnf install xfsprogs # Debian/Ubuntu系 apt install xfsprogs
fstabの設定ミスでブート失敗した場合
fstab の記述ミスでシステムが起動しなくなった場合は、レスキューモードで起動して/etc/fstab を修正します。問題の行を一時的にコメントアウト(行頭に # を付ける)して再起動してください。これは mount コマンドの使い方 の記事でも触れているトラブルですが、事前に
mount -a で確認するだけで防げるケースがほとんどです。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| ext4 ファイルシステムを作成する | mkfs.ext4 /dev/sdb |
| xfs ファイルシステムを作成する | mkfs.xfs /dev/sdb |
| vfat ファイルシステムを作成する | mkfs.vfat /dev/sdc1 |
| ラベルをつけて ext4 を作成する | mkfs.ext4 -L data /dev/sdb |
| 予約領域を1%に変更して ext4 を作成する | mkfs.ext4 -m 1 /dev/sdb |
| 既存 xfs に強制上書きする | mkfs.xfs -f /dev/sdb |
| デバイスの UUID を確認する | blkid /dev/sdb |
| fstab の設定をテストする | mount -a |
lsblk でデバイス名を確認してから実行する習慣をつけてください。ext4 は汎用性が高く初心者にも扱いやすい選択肢です。RHEL系サーバーでデータパーティションを追加する場合は xfs が本番環境での実績が豊富です。用途に応じて使い分けてください。
関連記事として、mount コマンドの使い方 も確認しておくと、マウントオプションの詳細理解に役立ちます。また、ディスク構成の全体把握には dmidecode でハードウェア情報を取得 が参考になります。
ファイルシステムの作成を覚えたら、次はサーバー構築を体系的に学びませんか?
mkfsコマンドでディスクを自在に扱えるようになったら、そのスキルを活かしてサーバー全体を設計・構築する力を身につけてみませんか。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:dateコマンドでLinuxの日時を操作する方法|フォーマット変換・計算・シェルスクリプト活用も
- 前のページへ:cutコマンドでテキストを切り出す方法|-f・-dオプションとCSVログ解析の実践例も
- この記事の属するカテゴリ:Linuxtips・ディスク操作へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます