fstabとは

2025/11/16

Linuxにおけるfstabの役割

fstabとは

/etc/fstab(file systems table)は、Linuxシステムにおいてファイルシステムのマウント情報を定義する重要な設定ファイルです。システム起動時に自動的にマウントするファイルシステムや、その際のオプションを指定します。

主な役割

自動マウントの管理
  • システム起動時に必要なファイルシステムを自動的にマウント
  • ルートファイルシステム、swap領域、追加ストレージなどの設定を一元管理
マウントオプションの指定
  • 各ファイルシステムに対する詳細な動作設定
  • セキュリティ、パフォーマンス、互換性の調整
システム管理の簡素化
  • mountコマンドでデバイス名のみでマウント可能に
  • 一貫性のあるマウント設定を維持

fstabの書式

各行は6つのフィールドで構成されます:

<device> <mount point> <fs type> <options> <dump> <pass>

各フィールドの詳細

第1フィールド:デバイス

デバイスの指定方法には複数あります:

  • デバイスファイル:/dev/sda1
  • UUID:UUID=550e8400-e29b-41d4-a716-446655440000
  • ラベル:LABEL=ROOT
  • ネットワークファイルシステム:server:/export/home

UUIDを使用する利点は、デバイス名が変更されても影響を受けないことです。

第2フィールド:マウントポイント

ファイルシステムをマウントするディレクトリパスを指定します。swapの場合はnoneを指定。

第3フィールド:ファイルシステムタイプ
  • ext4:Linux標準ファイルシステム
  • xfs:高性能ファイルシステム
  • btrfs:次世代ファイルシステム
  • vfat:FAT32(USBメモリなど)
  • ntfs:Windows NTFS
  • nfs:ネットワークファイルシステム
  • swap:スワップ領域
  • auto:自動検出
第4フィールド:マウントオプション

カンマ区切りで複数指定可能:

基本オプション
  • defaults:標準オプション(rw,suid,dev,exec,auto,nouser,async)
  • ro/rw:読み取り専用/読み書き可能
  • noauto:起動時に自動マウントしない
  • user/nouser:一般ユーザのマウント許可/禁止
セキュリティ関連
  • nosuid:SUIDビットを無効化
  • nodev:デバイスファイルを無効化
  • noexec:実行ファイルの実行を禁止
パフォーマンス関連
  • async/sync:非同期/同期I/O
  • noatime:アクセス時刻を更新しない(パフォーマンス向上)
  • nodiratime:ディレクトリのアクセス時刻を更新しない
  • relatime:アクセス時刻の更新を制限
第5フィールド:dump
  • 0:バックアップ不要
  • 1:dumpコマンドでバックアップ対象
第6フィールド:pass(fsckの順序)
  • 0:チェックしない
  • 1:ルートファイルシステム(最優先)
  • 2:その他のファイルシステム

設定例

典型的なfstabの例:

# <device>                                <mount point>  <type>  <options>           <dump> <pass>
UUID=8f2d4c6a-9b1e-4d8a-b3c5-1a2b3c4d5e6f /              ext4    defaults            1      1
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /boot          ext4    defaults            1      2
UUID=12345678-90ab-cdef-1234-567890abcdef swap           swap    defaults            0      0
UUID=fedcba98-7654-3210-fedc-ba9876543210 /home          ext4    defaults,noatime    1      2

# 外部ストレージ
/dev/sdb1                                 /mnt/backup    ext4    noauto,user         0      0

# ネットワークドライブ
192.168.1.100:/share                      /mnt/nfs       nfs     defaults,_netdev    0      0

# Windows共有
//192.168.1.101/share                     /mnt/smb       cifs    credentials=/home/user/.smbcreds,uid=1000,gid=1000,iocharset=utf8 0 0

# tmpfs(メモリ上のファイルシステム)
tmpfs                                      /tmp           tmpfs   defaults,noatime,mode=1777,size=2G 0 0

実用的な設定のポイント

UUIDの確認方法
blkid
# または
lsblk -f
fstab編集時の注意点
  1. 編集前にバックアップを作成
  2. 編集後はmount -aで構文エラーをチェック
  3. ルートファイルシステムの設定は特に慎重に
トラブルシューティング
  • 起動時にエラーが発生した場合、シングルユーザーモードまたはレスキューモードで修正
  • systemctl statusでマウント失敗の詳細を確認
  • _netdevオプションでネットワークドライブの起動順序を制御
セキュリティ考慮事項
  • 外部メディアにはnosuid,nodev,noexecを設定
  • 機密データを含むパーティションには適切な権限設定
  • NFSやCIFSの認証情報は別ファイルで管理

まとめ

fstabは、Linuxシステムの起動と運用において中核的な役割を果たす設定ファイルです.