---
title: ファイルシステムの特徴と選定 ─ 構築の入口の新卒未経験学生向け 学習支援スペシャル編
tags: 
author: [smile_yukiko_it](https://docswell.com/user/smile_yukiko_it)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GE5MZ63LE4.jpg?width=480
description: ファイルシステムの特徴と選定 ─ 構築の入口の新卒未経験学生向け 学習支援スペシャル編 by smile_yukiko_it
published: May 13, 26
canonical: https://docswell.com/s/smile_yukiko_it/K9NWDV-2026-05-13-020240
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GE5MZ63LE4.jpg)

LinuC LEVEL 2 / 102試験範囲｜30分前半
5章 5.5 - 5.8
ファイルシステム
の特徴と選定 ─ 構築の入口の新卒未経験学生向け
学習支援スペシャル編
ext4 / xfs / btrfs の特徴と選定
パーティション → mkfs → mount → fstab の流れ
fdisk / parted / mkfs.ext4 / mount / fstab
Yukiko Ishiguro
Filesystem
公式: LinuC試験範囲 https://linuc.org/
Layer Foundation


# Page. 2

![Page Image](https://bcdn.docswell.com/page/9729RMZ3JR.jpg)

AGENDA / 30分前半の流れ
本セッションのゴール
「なぜそのファイルシステムを選ぶのか」を、原理から説明できるようになる
01
なぜFSが必要か
Why
ブロックデバイスの「生」をユーザー視点で扱える形に変える層が必要 ── これがFS
02
ext4 / xfs / btrfs の特徴
What
ジャーナリング・スケーラビリティ・CoW ── 3つの代表FSの設計思想と適用領域
03
How
04
Verify
実装の4ステップ
fdisk/parted で区画 → mkfs.* でFS作成 → mount で接続 → fstab で永続化
確認・障害復旧の入り口
df / lsblk / blkid / fsck ── 「いま何が起きているか」を観測する手段
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分
02 / 22


# Page. 3

![Page Image](https://bcdn.docswell.com/page/DJY4DXR87M.jpg)

§5.5 INTRO
03 / 22
なぜファイルシステムが必要か
ストレージは「番地付きブロックの集まり」── 名前で扱える層が必要
USER / アプリケーション層
「report.pdf を開く」
ファイルシステム層 (ext4/xfs/btrfs)
ファイル名
inode
ブロック番号 の変換
ブロックデバイス層 (/dev/sda1 等)
セクタ・ブロックの集合（番地のみ）
▷ 原理原則 [理系]
ファイルシステムの本質は「変換テーブル」。ファイル名 → inode番号 → データブロック群、を辞書引きで解決する仕組み。
この「辞書」が壊れると、ブロック自体が無事でもデータは見えなくなる ── これがFS破損の正体。fsckはこの辞書を整合性チェック・修復する。
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 4

![Page Image](https://bcdn.docswell.com/page/V7NY61D9E8.jpg)

SECTION 5.5
5.5
ファイルシステムの種類と特徴
EXT4 / XFS / BTRFS
なぜ 3つあるのか ── 設計思想と適用領域を理解する
04 / 22


# Page. 5

![Page Image](https://bcdn.docswell.com/page/YJ9PL5G373.jpg)

§5.5 ファイルシステムの種類
05 / 22
ext4 ── Linux標準のジャーナリングFS
「迷ったらext4」と言われる定番。安定・互換性・運用ノウハウ量で勝る
● 系譜
ext2（1993, 非ジャーナル）→ ext3（2001, ジャーナル追加）→ ext4（2008, エクステント・大容量対応）
最大サイズ
1EiB / 16TB
ファイルシステム最大1エクサバイト、ファイル最大16TB（実用上は事実上無制限）
ジャーナリング
メタデータ + 任意でデータ
書込み前にジャーナル領域へ操作記録 → 障害時もFS整合性を回復可能（fsck高速化）
エクステント
連続ブロック範囲管理
ブロック1個ずつ管理する旧方式から、「N〜M番」と範囲指定に。フラグメンテーション抑制・大容量に強い
▷ 適用領域: 汎用サーバ / デスクトップ / 既存システム移行先 / 「とりあえず」の選択
Debian/Ubuntu系の既定。RHEL系では7まで既定だった（8以降xfsへ）
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 6

![Page Image](https://bcdn.docswell.com/page/GJ8DXYVLJD.jpg)

§5.5 ファイルシステムの種類
06 / 22
xfs ── 大容量・並列性能特化のジャーナリングFS
RHEL系 7以降の既定。エンタープライズのDB・大量データに強い
● 系譜
SGI が IRIX 向けに開発（1993）→ Linuxへ移植（2001）→ RHEL 7 で既定FS に採用（2014）
最大サイズ
8EiB / 8EiB
FS・ファイル共に8エクサバイト。ext4より2桁大きく、ペタバイト級ストレージで採用
並列I/Oに強い
アロケーショングループ構造
ストレージを複数のAG（独立した管理領域）に分割 → 同時I/Oを並列化。マルチコア・SSDで真価
動的inode割当
縮小不可・拡張のみ
inodeを動的確保（ext4は事前固定）。xfs_growfsで拡張可、ただし縮小は不可能（要再作成）
▷ 適用領域: 大容量データウェアハウス / DB / 高並列I/O / RHEL系本番環境
AlmaLinux/Rocky/CentOS Stream の既定。「縮小不可」を運用設計で意識する必要あり
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 7

![Page Image](https://bcdn.docswell.com/page/LJLM845QER.jpg)

§5.5 ファイルシステムの種類
07 / 22
btrfs ── CoW + スナップショット + 統合RAID
「次世代Linux FS」── 機能豊富、SUSE系の既定、用途次第で強力
● 系譜
Oracle 主導で開発開始（2007）→ Linux 3.0 でstable宣言（2011）→ SUSE/openSUSE で既定採用
CoW (Copy-on-Write)
書込み時に新ブロックへ複製
上書きせず新領域に書き、ポインタを切替。整合性保証＋スナップショット容易（差分のみ保存）
スナップショット
瞬時のFSコピー
btrfs subvolume snapshot で論理スナップ即作成。バックアップ・更新前の安全弁として運用
RAID統合
FSレイヤーでRAID 0/1/10
mdadm/LVMに頼らずFS層で冗長化・分散。デバイス追加削除がコマンド一発（btrfs device add/remove）
▷ 適用領域: スナップショット運用 / コンテナホスト / バックアップサーバ / SUSE環境
RAID 5/6は2024年時点でも実験的扱い。本番ではRAID 1/10に限定推奨
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 8

![Page Image](https://bcdn.docswell.com/page/47MY6KRK7W.jpg)

§5.5 ファイルシステムの種類
08 / 22
3つのFS 比較表 ── 選定のための一枚
「どれを使うか」迷ったら、要件側から逆引きで選ぶ
観点
ext4
xfs
btrfs
登場年
2008
1993（IRIX）
2007
ジャーナル
○ メタ+任意でデータ
○ メタデータ
× （CoWで実現）
最大FSサイズ
1 EiB
8 EiB
16 EiB
拡張縮小
拡張○ 縮小○
拡張○ 縮小×
拡張○ 縮小○
スナップショット
× (LVM併用)
× (LVM併用)
○ 標準機能
CoW
×
×
○
RAID内蔵
×
×
○ (1/10は安定)
既定の代表ディストリ
Debian/Ubuntu
RHEL/Alma/Rocky
openSUSE
▷ 選定: 迷ったらext4／RHEL系本番ならxfs／スナップショット運用ならbtrfs
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 9

![Page Image](https://bcdn.docswell.com/page/P7R9PXR6E9.jpg)

SECTION 5.6
5.6
ファイルシステムの作成 (mkfs)
MKFS FAMILY
パーティション → FS変換の儀式 ── 作ったら戻せないことを意識する
09 / 22


# Page. 10

![Page Image](https://bcdn.docswell.com/page/PJXQ36RD7X.jpg)

§5.6 mkfs ファミリ
10 / 22
mkfs ── 「番地のブロック」をFSとして使える形に
実体は mkfs.&lt;type&gt; のラッパー。スーパーブロック・inodeテーブルを書き込む
(1) 区画あり
(2) mkfs.ext4
/dev/sdb1
(3) FSとして使える
mkfs.ext4 /dev/sdb1
/dev/sdb1 (ext4)
FS情報なし
スーパーブロック
mount可能な状態
=「未整地の土地」
+ inodeテーブル書込み
UUID付与済み
● mkfs の実体 ── FS別の専用コマンドを呼ぶラッパー
$ mkfs -t ext4 /dev/sdb1
→ mkfs.ext4 を呼ぶ
$ mkfs -t xfs
/dev/sdb1
→ mkfs.xfs を呼ぶ
$ mkfs -t btrfs /dev/sdb1
→ mkfs.btrfs を呼ぶ
▷ 原理: mkfs はブロックデバイスにスーパーブロック・inodeテーブル等のFSメタデータを書く。既存データは破壊される（=フォーマット）
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 11

![Page Image](https://bcdn.docswell.com/page/3JK9Y1RDJD.jpg)

§5.6 mkfs ファミリ
11 / 22
mkfs.ext4 / mkfs.xfs ── 実践オプション
現場でよく使う3つだけ覚える ── ラベル / UUID / ブロックサイズ
mkfs.ext4
mkfs.xfs
Debian/Ubuntu系の定番フォーマット
RHEL/Alma/Rocky系の定番フォーマット
-L LABEL
ラベル付与（fstab で LABEL= 指定可）
-L LABEL
ラベル付与（最大12文字）
-U UUID
UUID明示指定（通常は自動生成）
-b size=4096
ブロックサイズ（既定4096）
-b 4096
ブロックサイズ指定（既定4096）
-d agcount=N
アロケーショングループ数（並列性能）
-m 1
予約ブロック率1%（root用、既定5%）
-i size=512
inodeサイズ（拡張属性用に大きく）
-T largefile
大ファイル向け inode少なめ設定
-f
強制実行
-F
強制実行（既にFSがあっても上書き）
-m crc=1
CRC32整合性チェック有効（既定）
$ mkfs.ext4 -L data -b 4096 /dev/sdb1
$ mkfs.xfs -L data -i size=512 /dev/sdb1
既存パーティションの中身は完全消失する。実行前に必ず df, lsblk, blkid で対象を確認 ── 1文字違いで本番破壊
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LE3W9Q8PE5.jpg)

SECTION 5.7
5.7
マウントと永続化
MOUNT &amp; FSTAB
「FSをディレクトリツリーに接続する」 ── マウントの仕組み
12 / 22


# Page. 13

![Page Image](https://bcdn.docswell.com/page/8EDKG9M37G.jpg)

§5.7 マウント
13 / 22
mount ── 「FSをディレクトリツリーに接続する」
Unixの世界では、ストレージは「ディレクトリのどこかに生える」もの
● マウント前: /dev/sdb1 はブロックデバイスとしてだけ存在
/ (ルート)
/dev/sdb1 (ext4, 未マウント)
├── bin/
[ doc1.txt ]
├── etc/
[ doc2.txt ]
├── home/
[ photos/ ]
← 空ディレクトリ
└── mnt/
→ アクセス手段なし
$ mount /dev/sdb1 /mnt
● マウント後: /mnt 配下が sdb1 の中身に切り替わる
/ (ルート)
├── bin/
├── etc/
└── mnt/
├── home/
← /dev/sdb1 が接続され、中身が見える
├── doc1.txt
├── doc2.txt
（sdb1 のファイル）
└── photos/
▷ 原理: カーネルのVFSが「マウントポイント」を切替え、以後そのパスへのI/Oを当該FSドライバへ転送する
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 14

![Page Image](https://bcdn.docswell.com/page/V7PK3ZRPJ8.jpg)

§5.7 マウント
14 / 22
mount / umount ── 実践コマンド
覚える基本構文と現場で使う主要オプション
$ mount
# 例:
[-t TYPE]
[-o OPTIONS]
&lt;デバイス&gt;
&lt;マウントポイント&gt;
$ mount -t ext4 -o rw,noatime /dev/sdb1 /mnt/data
● よく使う -o オプション
● 確認・解除コマンド
rw / ro
読書可 / 読取専用
$ mount
現在のマウント一覧表示
noatime
アクセス時刻を更新しない（SSD推奨・性能向上）
$ mount | grep sdb
特定デバイスのみ
nodev
デバイスファイル無効化（セキュリティ）
$ findmnt
ツリー形式でマウント一覧
nosuid
SUID/SGID無効化（セキュリティ）
$ df -h
FS使用量＋マウントポイント
noexec
実行ファイル禁止（/tmp等で使用）
$ lsblk
ブロックデバイス＋マウント先
defaults
rw,suid,dev,exec,auto,nouser,async の組合せ
$ umount /mnt
マウント解除
remount
マウント解除せず設定変更
$ umount -l /mnt
遅延解除（busy時）
▷ umount時 &quot;target is busy&quot; → lsof /mnt や fuser -m /mnt で掴んでいるプロセスを特定 → 終了後 umount
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 15

![Page Image](https://bcdn.docswell.com/page/2JVV4WRVJQ.jpg)

§5.7 マウント
15 / 22
/etc/fstab ── 再起動後もマウントを自動復元する
「次回起動時にもこのデバイスをここに繋いで」と OS に伝える宣言ファイル
● fstab の1行 = 6フィールド構造
UUID=abc-123
/data
ext4
defaults,noatime
デバイス指定
①
②
③
UUID=xxx / LABEL=xxx / /dev/sdb1 のいずれか
0
マウントオプション
④
defaults / noatime / nofail など
UUID推奨（デバイス名は順序変動で変わる）
mount -o と同じ書式（カンマ区切り）
マウントポイント
dump
/data / /home / /var/log など
⑤
0 (使わない) / 1 (バックアップ対象)
事前にディレクトリ作成が必要
現代ではほぼ 0 でOK
FSタイプ
fsck順序
ext4 / xfs / btrfs / swap / nfs など
mkfsで作ったFS種別と一致させる
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分
2
⑥
0 (チェック無) / 1 (/) / 2 (その他)
起動時の整合性チェック順


# Page. 16

![Page Image](https://bcdn.docswell.com/page/5EGL1DM1JL.jpg)

§5.7 マウント
16 / 22
fstab 実例 &amp; 安全な編集フロー
fstab を壊すと起動不能 ── 検証してから再起動する
● 実例: /etc/fstab の典型エントリ
# &lt;device&gt;
&lt;mount&gt;
&lt;type&gt;
&lt;options&gt;
&lt;dump&gt; &lt;fsck&gt;
UUID=aaaa-bbbb
/
xfs
defaults
0
1
UUID=cccc-dddd
/home
ext4
defaults,noatime
0
2
UUID=eeee-ffff
none
swap
sw
0
0
/dev/sr0
/media/cdrom iso9660 ro,user,noauto
0
0
nas.local:/share
/mnt/nas
0
0
nfs
rw,nofail
● 安全な編集フロー（再起動前に必ず実施）
1
cp /etc/fstab /etc/fstab.bak
バックアップ取得（鉄則）
2
編集（UUIDを blkid で確認しコピペ）
デバイス名でなくUUID推奨
3
mount -a
fstab全体を試走 ── エラーがあれば指摘
4
findmnt --verify
fstab構文＋整合性をチェック
5
問題なければ再起動 / 問題あれば fstab.bak を戻す
再起動で確認
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4JQYD1RN7P.jpg)

SECTION 5.8
5.8
パーティション編集
FDISK / PARTED
ディスクという土地を区画整理する ── すべての出発点
17 / 22


# Page. 18

![Page Image](https://bcdn.docswell.com/page/K74WZR83E1.jpg)

§5.8 パーティション編集
18 / 22
MBR と GPT ── 2つのパーティションテーブル形式
ディスクサイズと用途で使い分け ── これを誤ると後で困る
MBR (Master Boot Record)
GPT (GUID Partition Table)
1983年〜の旧式
2000年〜の現代規格
● 最大容量
2 TiB まで
● 最大容量
9.4 ZB（事実上無制限）
● 最大パーティション
プライマリ4個まで（拡張で論理拡張可）
● 最大パーティション
128個（既定）／拡張不要
● BIOSとの相性
○ レガシーBIOS対応
● UEFIとの相性
◎ UEFI標準
● ブートコード
MBRに直接書込み（446バイト）
● ブートコード
EFIシステムパーティション(ESP)に分離
● ツール
fdisk が伝統的
● ツール
parted / gdisk / fdisk（新版）
● 用途
小容量HDD / 古いシステム / 互換性重視
● 用途
現代の大容量SSD / 本番サーバ / UEFI機
$ fdisk -l /dev/sda
$ parted /dev/sda print
▷ 現代のサーバ・SSD は GPT が標準。2TiB超では GPT 必須。新規構築なら基本 GPT を選ぶ
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 19

![Page Image](https://bcdn.docswell.com/page/LJ1YRQ2ZEG.jpg)

§5.8 パーティション編集
19 / 22
fdisk ── MBR向け対話型パーティション編集
対話モードのキー操作を覚える ── 最低限の n / p / w
● fdisk 対話モードの主要キー
m
ヘルプ（迷ったら）
p
現在のパーティションテーブル表示
n
新規パーティション作成
d
パーティション削除
● 実行例: 新規パーティション作成
$ sudo fdisk /dev/sdb
Command (m for help): p
→ 現状確認
Command (m for help): n
Partition type: p (primary)
Partition number: 1
First sector: [Enter]
t
パーティションタイプ変更
Last sector: +10G
← 10GB分作成
Command (m for help): w
l
タイプ一覧表示
w
変更を書き込んで終了（commit）
q
変更を捨てて終了
→ 書込み確定
$ partprobe /dev/sdb
$ lsblk
← 反映
← 確認
w するまで変更はディスクに書かれない／間違えたら q で全部破棄。GPTディスクには fdisk より parted 推奨
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分


# Page. 20

![Page Image](https://bcdn.docswell.com/page/GJWG1MR672.jpg)

§5.8 パーティション編集
20 / 22
parted ── GPT/MBR両対応の現代的ツール
コマンドラインで非対話実行も可能 ── 自動化スクリプトに組込みやすい
● parted の主要サブコマンド
print
パーティションテーブル表示
mklabel TYPE
● 実行例: GPT作成 + パーティション
$ sudo parted /dev/sdb
(parted) print
→ 現状確認
パーティションテーブル作成（gpt/msdos）
mkpart NAME FS START END
(parted) mklabel gpt
→ GPTテーブル作成
パーティション作成
rm N
(parted) mkpart data ext4 0% 50%
パーティションN削除
resizepart N END
パーティションサイズ変更
set N FLAG on/off
フラグ設定（boot/lvm/raid等）
quit
終了（変更は即時反映）
→ 先頭50%にパーティション作成
(parted) mkpart backup ext4 50% 100%
(parted) print
(parted) quit
$ partprobe /dev/sdb
$ lsblk -f
▷ parted は fdisk と違い、サブコマンド実行時点で即書込み（commit不要）。慎重に
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分
← FS含めて確認


# Page. 21

![Page Image](https://bcdn.docswell.com/page/4EZLPQRR73.jpg)

STORAGE PROVISIONING FLOW
21 / 22
全体フロー ── 「新ディスクを使える状態にする」4ステップ
5.5〜5.8で学んだコマンドを順序で繋ぐと、こうなる
lsblk
①
現状確認
パーティション作成
$ parted /dev/sdb mkpart data 0% 100%
$ mkfs.ext4 -L data /dev/sdb1
ファイルシステム作成
ext4 / xfs / btrfs から選び、ラベル等を付与
mount + fstab
④
$ parted /dev/sdb mklabel gpt
GPTテーブル作成 → 必要数のパーティションを切る
mkfs.&lt;type&gt;
③
$ blkid
/dev/sdb があるか確認 ── 既存FSが無いことも
parted / fdisk
②
$ lsblk
マウントと永続化
テストマウント → 動作確認 → fstabに登録
LinuCレベル2 5章 5.5-5.8｜ファイルシステム前半30分
$ mount /dev/sdb1 /data
$ echo &#039;UUID=... /data ext4 defaults 0 2&#039; &gt;&gt; /etc/fstab


# Page. 22

![Page Image](https://bcdn.docswell.com/page/Y76WM6R17V.jpg)

22 / 22
SUMMARY
まとめ ── 30分前半で押さえたこと
「ストレージを使える状態にする」一連の流れと、その背後にある原理
5.5
5.6
5.7
5.8
FS3選
ext4 = 汎用安定 ／ xfs = 大容量並列 ／ btrfs = CoW+スナップ
mkfs
FSメタデータをデバイスに書込む。ラッパー mkfs.&lt;type&gt;
mount + fstab
VFS経由でディレクトリツリーに接続。fstabで永続化
fdisk/parted
MBR(2TiB) vs GPT(現代標準)。partedはGPT/非対話可
● 参考資料・公式ドキュメント
▷ 小豆本
LinuCレベル2 試験対策本（5章 5.5-5.8 該当範囲）
▷ LPI-Japan
Linuxサーバー構築標準教科書 https://linuc.org/textbooks/server/
▷ LinuC公式
試験範囲一覧 https://linuc.org/linuc2/range/
▷ man pages
$ man mkfs.ext4 / man mount / man fstab / man parted / man fdisk


