こんにちは!いつもブログを読んでいただき、ありがとうございます。
前回の記事では、LinuC 201試験の最初の重要テーマ「システムの起動とLinuxカーネル(2.01)」について解説しました。まだご覧になっていない方は、ぜひ先にチェックしてみてください。
👉 【前回記事】 2.01 システムの起動とLinuxカーネル①
👉 【前回記事】 2.01 システムの起動とLinuxカーネル②
今回からは新テーマ、「主題2.02.1:ファイルシステムの設定とマウント」 に入ります。
「/etc/fstabの書き方をど忘れしちゃう…」「mountオプションが多くて覚えられない!」という声をよく耳にします。
重要度が 4 と非常に高いテーマなので、ここを固めておくと合格にグッと近づきます。試験に出るポイントを一つずつ丁寧に確認していきましょう!
まずは、この主題で絶対に外せない「キーワード」を確認しましょう。
| 項目 | 内容 |
|---|---|
| 主題番号 | 2.02.1 ファイルシステムの設定とマウント |
| 重要度 | 4(5段階中、非常に高い!) |
| 主なファイル | /etc/fstab, /etc/mtab, /proc/mounts |
| 主なコマンド | mount, umount, blkid, lsblk, findmnt, swapon, swapoff, sync |
📌 この記事のゴール
/etc/fstabの全フィールドを完璧に理解し、記述できる- 状況に応じた
mountオプションを選択できる- UUIDやLABELを使った安全なデバイス指定ができる
- スワップ領域の有効化・無効化をマスターする
/etc/fstabは、Linuxが起動する時に「どのデバイスを、どのディレクトリに、どんなルールでマウントするか」を決める超重要ファイルです。
fstabの基本書式(6つのフィールド)
試験では、この 「フィールドの順番」 が入れ替え問題としてよく出ます。
<デバイス> <マウントポイント> <タイプ> <オプション> <dump> <pass>
第1フィールド:デバイスの指定
デバイスを指定する方法は主に3つ。最近の試験(実務)では UUID が主流です!
- デバイスファイル名:
/dev/sdb1(分かりやすいが、ディスク構成変更で名前が変わるリスクあり) - UUID:
UUID=550e8400-e29b-41d4-a716-446655440000(一意のID。最も推奨!) - LABEL:
LABEL=DATA_DISK(人間が分かりやすい名前を付けたもの)
第2フィールド:マウントポイント
ディレクトリの場所を指定します。スワップの場合は none と記述します。
第3フィールド:ファイルシステムタイプ
| タイプ | 説明 |
|---|---|
ext4 | Linuxの標準的なファイルシステム |
xfs | RHEL/CentOS系のデフォルト。大容量に強い |
vfat | WindowsのFAT32。USBメモリなどで使用 |
nfs | ネットワーク経由で共有されるファイルシステム |
iso9660 | CD-ROMやDVD |
auto | システムが自動で判別する |
第4フィールド:マウントオプション(ここが試験の山!)
複数のオプションを指定する場合は、カンマ「,」区切り(スペース厳禁!)で書きます。特に重要なのが defaults の中身です。
💡 試験に出る!
defaultsに含まれる7つのオプション
rw:読み書き可能suid:SetUID/SetGIDビットを有効にするdev:デバイスファイルを解釈するexec:バイナリファイルの実行を許可するauto:mount -a時に自動マウントするnouser:一般ユーザーのマウントを禁止するasync:非同期入出力を行う
その他の重要オプション:
ro:読み取り専用noexec:実行を禁止(セキュリティ向上のため/tmpなどで使う)usrquota/grpquota:ディスククォータ(使用量制限)を有効にする_netdev:ネットワークが有効になってからマウントする(NFSなどで必須)
第5フィールド:dump
dump コマンドでバックアップを取るかどうかを決めます。
0:バックアップしない1:バックアップする
第6フィールド:pass(fsckの順序)
起動時に fsck(整合性チェック)を行う順番です。
0:チェックしない1:最初にチェック(ルートファイルシステム/のみ!)2:ルート以外のチェック対象に使用
マウントする前に、「どのデバイスがどのUUIDか」「今どこにマウントされているか」を調べる必要がありますよね。
blkid コマンド
デバイスのUUIDやファイルシステムタイプを表示します。
# blkid
/dev/sda1: UUID="abc12345-..." TYPE="ext4" PARTUUID="..."
lsblk コマンド
ブロックデバイスの階層構造をツリー形式で表示します。パーティション構成を一目で把握できます。
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 ext4 ROOT abc12345-6789-abcd-ef01-234567890abc /
findmnt コマンド
現在マウントされているファイルシステムをツリー形式で表示します。lsblk より詳細なマウント情報(オプション等)を確認できるため、試験でも実務でも頻出です。
# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda1 ext4 rw,relatime
└─/mnt/data /dev/sdb1 xfs rw,relatime
# 特定のマウントポイントだけ確認したい場合
# findmnt /mnt/data
特定のデバイスやマウントポイントを絞り込んで確認したい場面で威力を発揮します。
mount の代表的な使い方
# 基本形
mount -t [タイプ] [デバイス] [マウントポイント]
# すべて再読み込み(fstabの修正を反映させる)
mount -a
# 読み取り専用で再マウント(緊急時によく使います!)
mount -o remount,ro /
umount
デバイスを取り外す時に使います。
# マウントポイントを指定して解除
umount /mnt/data
sync コマンド
アンマウント前やシャットダウン前に sync を実行すると、メモリ上のキャッシュデータをディスクに強制的に書き込みます。手動アンマウント前の実行が推奨されています。
sync
umount /mnt/data
⚠️ 「target is busy」と怒られたら?
そのディレクトリを誰かが使っている(cdしている、ファイルを開いている)証拠です。lsofやfuserコマンドで犯人(プロセス)を特定しましょう!
試験範囲 2.02.1 に含まれる大事なセクションです。スワップは「メモリが足りなくなった時にディスクを身代わりにする仕組み」のこと。
スワップの有効化・確認
# 指定したパーティションをスワップとして有効化
swapon /dev/sdb2
# スワップの状態を確認(重要!)
swapon -s
# または
free -h
スワップの無効化
swapoff /dev/sdb2
fstab への記述例
スワップを自動で有効にするには、以下のように記述します。
/dev/sdb2 none swap sw 0 0
第2フィールドのマウントポイントは none と書くのが正しい表記です。オプションは sw または defaults が一般的です。
最近のLinuCでは、従来の fstab だけでなく systemd による管理も出題されます。
.mount ユニットのルール
/etc/systemd/system/ に設定ファイルを作成します。
★ ここがポイント!ファイル名はマウントパスと一致させること!
/dataにマウントする場合 →data.mount/var/log/extraにマウントする場合 →var-log-extra.mount(スラッシュをハイフンに変える)
[Unit]
Description=Mount /data
[Mount]
What=/dev/sdb1
Where=/data
Type=xfs
Options=defaults
[Install]
WantedBy=multi-user.target
Options= には fstab の第4フィールドと同じオプションを記述できます。自動起動させるには [Install] セクションの WantedBy= も忘れずに記述しましょう。
fstab の誤記は最も多いトラブルのひとつです。実際に遭遇したときの対処手順を覚えておきましょう。
手順① レスキュー(シングルユーザー)モードで起動する
GRUBのブートメニューが表示されたら e キーを押して編集モードへ入り、linux の行末に以下を追記します。
systemd.unit=rescue.target
Ctrl+X で起動すると、ネットワークなしのシングルユーザー環境に入れます。
手順② ルートファイルシステムを読み書き可能で再マウント
レスキューモードではルートが読み取り専用になっていることがあるため、先にこのコマンドを実行します。
mount -o remount,rw /
手順③ fstab を修正する
vi /etc/fstab
誤記している行を修正するか、# でコメントアウトします。
手順④ 確認してから再起動
# mount -a で構文エラーがないか確認(エラーがあれば修正)
mount -a
reboot
💡 試験でも実務でも覚えておきたい鉄則:
fstabを編集したら必ずmount -aでエラーチェックをしてから再起動しましょう!
| ポイント | 内容 |
|---|---|
| fstabの順序 | デバイス → ポイント → タイプ → オプション → dump → pass |
| defaultsの中身 | rw, suid, dev, exec, auto, nouser, async の7つ |
| fsck順序 | ルートは 1、その他は 2、不要なら 0 |
| swapon -s | 現在のスワップ使用状況を確認する |
| findmnt | 現在のマウント状況をツリーで確認できる |
| systemd .mount | パスのスラッシュをハイフンに変える命名規則 |
| fstab誤記時 | レスキューモード → remount,rw → 編集 → mount -a で確認 |
VirtualBoxなどの仮想環境で「あえて fstab を書き間違えて、レスキューモードで直す」という練習をしておくと、知識が定着するうえに、いざ実務でトラブルが起きても慌てずに対処できますよ!
勉強、大変だと思いますが、焦らず一つずつ積み重ねていきましょう。
皆さんにとって、今日も素敵な1日になりますように!
👉 【次回記事】 2.02.1 ファイルシステムの設定とマウント③
【PR】▶ もっと体系的に学びたい方はこちら
![]()
![]()
参考:LPI-Japan 公式試験範囲 https://linuc.org/linuc2/range/201.html