/etc/fstab(filesystem table)は、OS起動時にどのデバイスをどこへマウントするかを定義する設定ファイルです。ここにディスクやUSBメモリ、ネットワークストレージなどの対応関係を書いておくと、起動のたびに手動で mount コマンドを叩かなくても自動でマウントされます。書式を誤ると最悪の場合システムが起動しなくなるため、書き方と安全な反映手順を順番に解説します。
fstabとは
/etc/fstab は、起動時(正確には systemd 環境では起動時の local-fs.target 生成時)に読み込まれ、記載されたファイルシステムを自動的にマウントするためのテキストファイルです。1行につき1つのファイルシステムを、スペースまたはタブ区切りのフィールドで記述します。# から始まる行はコメントとして無視されます。
ヒント: いま一時的にマウントしたいだけなら fstab は不要です。
mountコマンドで直接マウントしてください。fstab は「再起動しても自動でマウントされる状態」を作るためのものです。
fstabの書き方|6つのフィールド
1行は次の6つのフィールドで構成されます。
| フィールド | 名称 | 内容 |
|---|---|---|
| 1 | fs_spec | マウント対象。デバイス名(/dev/sdb1)、UUID=...、LABEL=...、NFSなら server:/path |
| 2 | fs_file(mount point) | マウント先のディレクトリ。スワップの場合は none |
| 3 | fs_vfstype | ファイルシステム種別(ext4, xfs, vfat, nfs, cifs, tmpfs, swap など) |
| 4 | fs_mntops | マウントオプション(カンマ区切り)。省略時は defaults |
| 5 | fs_freq | dump によるバックアップ対象か(1=対象/0=対象外)。多くの環境で 0 のまま |
| 6 | fs_passno | 起動時の fsck 実行順(ルートは 1、それ以外は 2、チェック不要は 0) |
#
UUID=1234abcd-...-5678 /data ext4 defaults 0 2
UUIDを使ったマウント設定
/dev/sdb1 のようなデバイス名は、ディスクの増設・USBの抜き差し・再起動の順序次第で番号がずれることがあります。fstab では基本的に UUID(またはパーティションのLABEL)で指定し、番号ずれによる誤マウントを避けます。
UUIDを確認する
# UUID・ファイルシステム種別を一覧表示
sudo blkid
# ツリー表示でマウント状況もあわせて確認
lsblk -f
$ sudo blkid
/dev/sdb1: UUID="1234abcd-56ef-78gh-90ij-1234567890ab" TYPE="ext4" PARTUUID="..."
表示された UUID の値を、そのまま fstab の1フィールド目に UUID=1234abcd-... の形式で書き写します。
用途別の設定例
追加ディスクを自動マウントする
# マウントポイントを先に作成
sudo mkdir -p /data
# /etc/fstab に追記
UUID=1234abcd-56ef-78gh-90ij-1234567890ab /data ext4 defaults 0 2
USBメモリなど外付けデバイス
常時接続されているとは限らない外付けデバイスは、noauto(起動時に自動マウントしない)と nofail(未接続でも起動を止めない)を必ず付けます。付けないと、デバイスが無い状態で起動が止まる/遅延することがあります。
UUID=aaaa1111-bbbb-2222-cccc-333344445555 /mnt/usb vfat noauto,nofail,user,uid=1000,gid=1000 0 0
NFS・CIFSなどネットワークストレージ
ネットワーク越しのファイルシステムには _netdev(ネットワーク接続後にマウントする)を付けます。付けないと、ネットワークが上がる前にマウントを試みて失敗することがあります。
# NFS
192.168.1.10:/share /mnt/nfs nfs _netdev,vers=4.1,soft,timeo=30 0 0
# CIFS(Windows共有)
//192.168.1.10/share /mnt/cifs cifs _netdev,credentials=/etc/samba/creds,vers=3.0 0 0
swap領域
UUID=eeee5555-ffff-6666-aaaa-777788889999 none swap sw 0 0
tmpfsで一時領域を作る
tmpfs /tmp tmpfs defaults,size=1G,noatime 0 0
よく使うマウントオプション一覧
| オプション | 説明 |
|---|---|
defaults | rw,suid,dev,exec,auto,nouser,async をまとめて適用する標準設定 |
noauto | 起動時に自動マウントしない(mount -a や手動指定時のみ) |
nofail | デバイスが無くても起動を失敗させない(外付け・USB・NFSに必須) |
_netdev | ネットワークが利用可能になってからマウントする(NFS/CIFS用) |
user / users | 一般ユーザーによるマウント/アンマウントを許可(userは実行者のみ解除可、usersは誰でも解除可) |
ro / rw | 読み取り専用/読み書き |
x-systemd.automount | 実際にアクセスされた時点でオンデマンドにマウントする(systemd環境) |
uid= / gid= | vfat/ntfs など所有者概念のないFSで、ファイルの所有者を指定 |
noatime / relatime | アクセス時刻の更新を抑制し、ディスクI/Oを軽減 |
設定を安全に反映する手順
1. 編集前にバックアップを取る
sudo cp -a /etc/fstab /etc/fstab.bak
2. 再起動する前に mount -a でテストする
再起動して初めてエラーに気付くと復旧が面倒になります。編集後は必ず mount -a で先にエラーの有無を確認してください。
# 文法・マウント可否を事前にテスト
sudo mount -a
# systemdのユニット生成側でエラーが無いかも確認
sudo systemd-analyze verify /etc/fstab
3. systemctl daemon-reload で反映する
systemd環境では、fstabの内容をもとに .mount ユニットが自動生成されます。mount -a だけでも即時反映されますが、systemd側の定義も合わせて再読込しておくと確実です。
sudo systemctl daemon-reload
systemdの基本や他ユニットとの関係は systemdユニットの基本と再起動戦略、サービスの起動状態を見る方法は systemctlコマンドの使い方 で解説しています。
fstabの設定ミスで起動しなくなった時の対処
UUIDの書き間違いやマウントポイントの未作成などがあると、起動時にファイルシステムのチェックで止まり、emergency mode(緊急シェル)に落ちることがあります。
- emergency modeではrootパスワードを求められるので入力してシェルに入る
mount -o remount,rw /でルートを書き込み可能にする/etc/fstab.bakに戻すか、該当行を修正・コメントアウトして保存するmount -aでエラーが出ないことを確認してから再起動する
復旧作業に不慣れな場合は、事前に Linuxトラブルシューティング総合ハブ の手順もあわせて確認しておくと安心です。
関連コマンド
| コマンド | 用途 |
|---|---|
blkid / lsblk -f | UUID・ラベル・ファイルシステム種別の確認 |
mount | fstabの内容を一括反映(mount -a)や一時的な手動マウント |
umount | マウントの解除 |
df | マウント済みファイルシステムの空き容量確認 |
systemctl | 生成された.mountユニットの状態確認・再読込 |
よくある質問
fstabを編集しても反映されないのはなぜ?
fstabの編集内容は自動では反映されません。sudo mount -a(即時マウント)と sudo systemctl daemon-reload(systemd側の再読込)を実行してください。
UUIDとデバイス名(/dev/sdX)はどちらを使うべき?
UUIDを使ってください。/dev/sdb1のようなデバイス名は、ディスクの増設順序やUSBの抜き差しで変わることがあり、誤った場所にマウントしてしまう危険があります。
USBメモリのような外部デバイスをfstabに書いても大丈夫?
書けますが、noautoとnofailを必ず付けてください。付けないと、デバイスが未接続のときに起動が止まったり遅延したりすることがあります。
fstabの設定ミスで起動しなくなったらどうすればいい?
emergency modeに入り、mount -o remount,rw / でルートを書き込み可能にしてから、事前に取ったバックアップ(/etc/fstab.bak)に戻すか該当行を修正します。
まとめ
fstabは6つのフィールドの意味を理解し、UUID指定・用途に応じたオプション(noauto,nofailや_netdevなど)を付ければ、初めてでも安全に自動マウントを設定できます。編集後は必ずバックアップを取り、mount -aで事前テストしてから再起動する流れを徹底してください。

コメント