Linuxのファイルシステムの種類と特徴|ext4・xfs・btrfsの違いとマウント方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ディレクトリ・ファイル操作 > Linuxのファイルシステムの種類と特徴|ext4・xfs・btrfsの違いとマウント方法
「Linuxのディスクをフォーマットしようとしたとき、ext4とxfsとbtrfsの違いが分からず、どれを選べばいいか迷っている」

こういった場面はLinuxサーバーの構築・管理を始めたエンジニアがよく直面します。ファイルシステムの選択を誤ると、後からのパフォーマンス問題やデータ保護の不足につながります。

この記事では、Linuxの主要ファイルシステムであるext4・xfs・btrfsの特徴と違いを比較し、各ファイルシステムのフォーマットとマウント手順を実コマンド付きで解説します。Rocky Linux 9 / RHEL 9 / Ubuntu 24.04 LTS で動作確認済みです。

【この記事でわかること】
・ext4・xfs・btrfsの違いと用途の使い分け方
・mkfsコマンドでフォーマットする手順(ext4/xfs/btrfs対応)
・mountコマンドで一時マウントする方法
・/etc/fstabへのUUID登録と永続マウントの設定方法
・ファイルシステムの確認コマンド(df -hT / lsblk -f)

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Linuxのファイルシステムとは何か

ファイルシステムとは、ディスク上のデータをどのように管理・アクセスするかを定義する仕組みです。データの格納方法・ファイル名の管理・パーミッション・ジャーナリング(障害復旧機能)などが、ファイルシステムの種類によって異なります。

Linuxで使われる主要なファイルシステムは以下の3つです。

ext4:Linux標準の汎用ファイルシステム。互換性が最も高い
xfs:大規模ストレージ・高負荷環境向け。RHEL/Rocky Linuxのデフォルト
btrfs:スナップショット・サブボリューム・圧縮を内蔵した次世代型

ext4:Linux標準の汎用ファイルシステム

ext4(Fourth Extended Filesystem)はLinuxカーネル 2.6.28 からメインラインに組み込まれた、最も広く使われているファイルシステムです。

1. ext4の主な特徴

最大ファイルサイズ:16TiB(4KiBブロックサイズ時)
最大ボリュームサイズ:1EiB
ジャーナリング:対応(data=ordered がデフォルト)
エクステント:連続ブロックをまとめて管理し、断片化を抑制
遅延アロケーション:ブロック割り当てを遅延させることで書き込みパフォーマンスを向上

ext4は Ubuntu 系ディストリビューションのデフォルトであり、古いハードウェア・仮想環境・小規模サーバーに最適です。

2. ext4でフォーマットとマウントを行う

# /dev/sdb1 を ext4 でフォーマット $ sudo mkfs.ext4 /dev/sdb1 mke2fs 1.46.5 (30-Dec-2021) Creating filesystem with 5242880 4k blocks and 1310720 inodes Filesystem UUID: 7a3b4c5d-e6f7-8901-abcd-2345678901ef Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, ... ... Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done # マウントポイントを作成してマウント $ sudo mkdir -p /data $ sudo mount /dev/sdb1 /data # マウント確認 $ df -hT /data Filesystem Type Size Used Avail Use% Mounted on /dev/sdb1 ext4 20G 44M 19G 1% /data

xfs:大容量・高スループット向けファイルシステム

xfsはSGI(Silicon Graphics)が開発し、現在はRed Hat / Rocky Linux / RHEL系のデフォルトファイルシステムです。大規模データ・高並列I/O・大容量ファイルの扱いに特化しています。

1. xfsの主な特徴

最大ファイルサイズ:8EiB(実質無制限)
最大ボリュームサイズ:8EiB
ジャーナリング:メタデータのみ(高速)
遅延ログ:ジャーナリングの高速化機能
動的inode割り当て:inode枯渇が起きにくい構造

xfsの注意点は、ファイルシステムの縮小ができないことです。容量を削減したい場合はデータを退避してフォーマットし直す必要があります。

2. xfsでフォーマットとマウントを行う

# /dev/sdc1 を xfs でフォーマット $ sudo mkfs.xfs /dev/sdc1 meta-data=/dev/sdc1 isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 data = bsize=4096 blocks=5242880, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # マウント $ sudo mkdir -p /bigdata $ sudo mount /dev/sdc1 /bigdata # マウント確認 $ df -hT /bigdata Filesystem Type Size Used Avail Use% Mounted on /dev/sdc1 xfs 20G 34M 20G 1% /bigdata

btrfs:スナップショットと圧縮を内蔵した次世代型

btrfs(B-Tree Filesystem)はOracle が開発を主導した次世代ファイルシステムです。SuSE/openSUSEではデフォルト採用されており、Fedoraでも採用されています。

1. btrfsの主な特徴

スナップショット:CoW(Copy-on-Write)により、コピーなしで瞬時にスナップショットを作成
サブボリューム:1つのファイルシステム内に独立した仮想ボリュームを作成可能
インライン圧縮:zlib / lzo / zstd による透過的なデータ圧縮
内蔵RAID:RAID 0, 1, 5, 6, 10 に対応(RAID 5/6は本番非推奨)
最大ボリュームサイズ:16EiB

2. btrfsでフォーマットとマウントを行う

# /dev/sdd1 を btrfs でフォーマット $ sudo mkfs.btrfs /dev/sdd1 btrfs-progs v5.16.2 See https://btrfs.readthedocs.io for more information. Label: (null) UUID: c1d2e3f4-a5b6-7890-cdef-4567890123ab Node size: 16384 Sector size: 4096 Filesystem size: 20.00GiB Block group profiles: Data: single 8.00MiB Metadata: DUP 1.00GiB System: DUP 8.00MiB ... # 圧縮を有効にしてマウント $ sudo mkdir -p /compressed $ sudo mount -o compress=zstd /dev/sdd1 /compressed # マウント確認 $ df -hT /compressed Filesystem Type Size Used Avail Use% Mounted on /dev/sdd1 btrfs 20G 17M 20G 1% /compressed # スナップショットの作成 $ sudo btrfs subvolume snapshot /compressed /compressed/snap_20260407 Create a snapshot of '/' in '/compressed/snap_20260407'

/etc/fstabへの登録(永続マウント)

再起動後もマウントを維持するには、/etc/fstab に設定を追記します。デバイス名ではなく UUID を使うことで、ディスクの追加・交換後も設定が狂いにくくなります。

1. UUIDを確認する

# blkid コマンドで UUID を確認 $ sudo blkid /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdb1: UUID="7a3b4c5d-e6f7-8901-abcd-2345678901ef" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="..." /dev/sdc1: UUID="8b4c5d6e-f7a8-9012-bcde-5678901234fg" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="..." /dev/sdd1: UUID="c1d2e3f4-a5b6-7890-cdef-4567890123ab" UUID_SUB="..." TYPE="btrfs" PARTUUID="..."

2. /etc/fstabに追記する

# /etc/fstab への追記例 # ext4 UUID=7a3b4c5d-e6f7-8901-abcd-2345678901ef /data ext4 defaults,nofail 0 2 # xfs UUID=8b4c5d6e-f7a8-9012-bcde-5678901234fg /bigdata xfs defaults,nofail 0 2 # btrfs(圧縮有効) UUID=c1d2e3f4-a5b6-7890-cdef-4567890123ab /compressed btrfs compress=zstd,nofail 0 0 # fstab の構文チェック(-a オプションで全エントリを再マウント) $ sudo mount -a && echo "fstab OK" fstab OK

nofail オプション:このオプションを付けると、デバイスが存在しない場合でもOSが起動できます。データディスクには必ず付けることを推奨します。

実務Tips:ファイルシステムの確認コマンド

1. 現在のファイルシステムを確認する

# マウント済みのファイルシステム一覧 $ df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/nvme0n1p1 xfs 50G 12G 38G 25% / /dev/sdb1 ext4 20G 100M 19G 1% /data /dev/sdc1 xfs 20G 5.0G 15G 25% /bigdata # ブロックデバイスの一覧(パーティションとファイルシステム確認) $ lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 |-nvme0n1p1 xfs / ... 37G 25% / |-nvme0n1p2 swap 1 ... [SWAP] sdb |-sdb1 ext4 1.0 7a3b4c5d-... 19G 1% /data sdc |-sdc1 xfs ... 8b4c5d6e-... 15G 25% /bigdata

2. ファイルシステムの使用状況を詳細確認する

# ext4 の詳細情報 $ sudo tune2fs -l /dev/sdb1 | grep -E "Filesystem|Block|Inode|Last|Mount" Filesystem volume name: /data Last mounted on: /data Filesystem UUID: 7a3b4c5d-... Block count: 5242880 Reserved block count: 262144 Free blocks: 5191234 Inode count: 1310720 Free inodes: 1310709 # xfs の詳細情報 $ sudo xfs_info /dev/sdc1 meta-data=/dev/sdc1 isize=512 agcount=4, agsize=1310720 blks ...

トラブルシュート:ファイルシステムのエラー対処

「mount: wrong fs type, bad option, bad superblock」が出る

指定したデバイスのファイルシステムタイプが一致しない場合に発生します。

# ファイルシステムタイプを確認してからマウント $ sudo blkid /dev/sdb1 /dev/sdb1: UUID="7a3b4c5d-..." TYPE="ext4" # タイプを明示してマウント $ sudo mount -t ext4 /dev/sdb1 /data

「You can't shrink an xfs filesystem」のエラー

xfsはファイルシステムの縮小をサポートしていません。容量を変更したい場合は、データをバックアップしてフォーマットし直す必要があります。

# xfs は拡張のみ可能(縮小不可) $ sudo xfs_growfs /dev/sdc1 meta-data=/dev/sdc1 isize=512 ... # 縮小が必要な場合: データをrsyncでバックアップ → 再フォーマット → 復元 $ sudo rsync -av /bigdata/ /backup/ $ sudo umount /bigdata $ sudo mkfs.xfs -f /dev/sdc1 $ sudo mount /dev/sdc1 /bigdata $ sudo rsync -av /backup/ /bigdata/

ext4のfsckでファイルシステムを修復する

ファイルシステムが破損した場合、アンマウント状態で fsck を実行します。

# 必ずアンマウントしてから実行 $ sudo umount /data # 自動修復モードで実行(-y で全質問に yes) $ sudo fsck.ext4 -y /dev/sdb1 e2fsck 1.46.5 (30-Dec-2021) /dev/sdb1: clean, 11/1310720 files, 51646/5242880 blocks # 再マウント $ sudo mount /dev/sdb1 /data

本記事のまとめ

ファイルシステム 特徴 向いている用途
ext4 安定・互換性最高・縮小可能 汎用・小~中規模・仮想環境
xfs 大容量・高スループット・RHEL標準 大規模DB・ビッグデータ・高I/O
btrfs スナップショット・圧縮・RAID内蔵 開発環境・バックアップ・NAS
mkfs.ext4 /dev/sdX1 ext4フォーマット -
mkfs.xfs /dev/sdX1 xfsフォーマット -
mkfs.btrfs /dev/sdX1 btrfsフォーマット -
df -hT マウント済みFSの確認 -
lsblk -f ブロックデバイスとFSタイプ確認 -
ファイルシステムの選択は「迷ったらext4」が基本方針です。RHEL/Rocky Linux 9 の環境ではxfsがデフォルトになっており、大容量ストレージには xfs が適しています。btrfs はスナップショット機能を活かした開発・検証環境向けです。いずれも /etc/fstab への UUID 登録と nofail オプションの指定を忘れずに設定してください。

関連記事として「Linuxの主要な設定ファイルの場所と内容まとめ」や「LinuxのDNS設定の基本」も合わせてご覧ください。

Linuxのストレージ管理を体系的に学びませんか?

ファイルシステムの仕組みが分かると、ディスク管理・パーティション設計・障害対応の全体像が見えてきます。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。