Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説

コマンドリファレンス

/etc/fstab(filesystem table)は、OS起動時にどのデバイスをどこへマウントするかを定義する設定ファイルです。ここにディスクやUSBメモリ、ネットワークストレージなどの対応関係を書いておくと、起動のたびに手動で mount コマンドを叩かなくても自動でマウントされます。書式を誤ると最悪の場合システムが起動しなくなるため、書き方と安全な反映手順を順番に解説します。

fstabとは

/etc/fstab は、起動時(正確には systemd 環境では起動時の local-fs.target 生成時)に読み込まれ、記載されたファイルシステムを自動的にマウントするためのテキストファイルです。1行につき1つのファイルシステムを、スペースまたはタブ区切りのフィールドで記述します。# から始まる行はコメントとして無視されます。

ヒント: いま一時的にマウントしたいだけなら fstab は不要です。mount コマンドで直接マウントしてください。fstab は「再起動しても自動でマウントされる状態」を作るためのものです。

fstabの書き方|6つのフィールド

1行は次の6つのフィールドで構成されます。

フィールド名称内容
1fs_specマウント対象。デバイス名(/dev/sdb1)、UUID=...LABEL=...、NFSなら server:/path
2fs_file(mount point)マウント先のディレクトリ。スワップの場合は none
3fs_vfstypeファイルシステム種別(ext4, xfs, vfat, nfs, cifs, tmpfs, swap など)
4fs_mntopsマウントオプション(カンマ区切り)。省略時は defaults
5fs_freqdump によるバックアップ対象か(1=対象/0=対象外)。多くの環境で 0 のまま
6fs_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

よく使うマウントオプション一覧

オプション説明
defaultsrw,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 -fUUID・ラベル・ファイルシステム種別の確認
mountfstabの内容を一括反映(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に書いても大丈夫?

書けますが、noautonofailを必ず付けてください。付けないと、デバイスが未接続のときに起動が止まったり遅延したりすることがあります。

fstabの設定ミスで起動しなくなったらどうすればいい?

emergency modeに入り、mount -o remount,rw / でルートを書き込み可能にしてから、事前に取ったバックアップ(/etc/fstab.bak)に戻すか該当行を修正します。

まとめ

fstabは6つのフィールドの意味を理解し、UUID指定・用途に応じたオプション(noauto,nofail_netdevなど)を付ければ、初めてでも安全に自動マウントを設定できます。編集後は必ずバックアップを取り、mount -aで事前テストしてから再起動する流れを徹底してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント