fstab(File System Table)は、Linuxシステムで使用されるファイルシステムのマウント情報を記述したファイルです。このファイルには、システム起動時に自動的にマウントされるべきファイルシステムの情報が記載されています。ここでは fstab ファイルの基本的な構造と設定方法について説明します。
fstab ファイルの構造
fstab ファイルは以下のような形式で記述されます。
<ファイルシステムのデバイスまたはラベル> <マウントポイント> <ファイルシステムのタイプ> <マウントオプション> <dump> <fsck順序>
各フィールドの意味は以下の通りです。
-
ファイルシステムのデバイスまたはラベル: マウントするデバイス(例:
/dev/sda1)や、ラベル(例:LABEL=home)、UUID(例:UUID=12345678-1234-1234-1234-123456789abc)を指定します。 -
マウントポイント: デバイスがマウントされるディレクトリのパスを指定します(例:
/home)。 -
ファイルシステムのタイプ: マウントするファイルシステムの種類を指定します(例:
ext4,ntfs,xfs)。 -
マウントオプション: マウント時のオプションをカンマ区切りで指定します(例:
defaults,noauto,rw,noexec)。詳細はマニュアル (man fstab) を参照してください。 -
dump: バックアップ時に使用されるフィールドで、通常は
0を設定します(バックアップを行わないことを意味します)。 -
fsck順序: ファイルシステムのチェック順序を設定します。通常は
0または1を設定します(1は先にチェックすることを意味します)。
fstab ファイルの例
以下は fstab ファイルの例です。
# /etc/fstab: static file system information.
#
# <file system> <dir> <type> <options> <dump> <pass>
/dev/sda1 / ext4 defaults 1 1
/dev/sda2 /home ext4 defaults,noatime 0 2
/dev/sdb1 /data ext4 defaults 0 2
UUID=12345678-1234-1234-1234-123456789abc /backup xfs defaults,noauto 0 0
LABEL=SWAP none swap sw 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
主な注意点と推奨事項
-
fstabファイルを編集する際は、root 権限が必要です。一般的にはsudoを使用して編集します。 -
マウントポイントとして指定するディレクトリは、存在している必要があります。存在しない場合は作成してから設定します。
-
オプションは環境や使用目的に応じて適切に設定する必要があります。誤った設定はシステムの安定性やデータの整合性に影響を与える可能性があります。
-
変更を加えた後は、
mount -aコマンドを使用してfstabファイルのエントリを再読み込みするか、システムを再起動する必要があります。
fstab ファイルはシステムの自動化と安定性に重要な役割を果たします。適切に管理し、システムの要件に合わせて設定することが重要です。
マウントオプションは、Linuxシステムでファイルシステムをマウントする際に使用するパラメータです。これらのオプションを指定することで、マウントされるファイルシステムの挙動を制御することができます。以下によく使用されるマウントオプションとその意味を説明します。
よく使用されるマウントオプション
-
ro/rw:-
ro: ファイルシステムを読み取り専用でマウントします。 -
rw: ファイルシステムを読み書き可能でマウントします。
mount -o ro /dev/sda1 /mnt/read-only mount -o rw /dev/sdb1 /mnt/read-write -
-
noexec/exec:-
noexec: バイナリ実行ファイルの実行を禁止します。 -
exec: バイナリ実行ファイルの実行を許可します。
mount -o noexec /dev/sda2 /mnt/no-exec mount -o exec /dev/sdb1 /mnt/exec -
-
noatime/atime:-
noatime: ファイルやディレクトリへのアクセス時刻の更新を抑制します(読み取りだけで更新しない)。 -
atime: ファイルやディレクトリへのアクセス時刻を更新します。
mount -o noatime /dev/sda1 /mnt/no-atime mount -o atime /dev/sdb1 /mnt/atime -
-
nodev/dev:-
nodev: デバイスファイルのマウントを禁止します。 -
dev: デバイスファイルのマウントを許可します。
mount -o nodev /dev/sda2 /mnt/no-devices mount -o dev /dev/sdb1 /mnt/devices -
-
nosuid/suid:-
nosuid: setuid(実行時に所有者の権限でプロセスを実行する機能)を無効にします。 -
suid: setuid を有効にします。
mount -o nosuid /dev/sda1 /mnt/no-suid mount -o suid /dev/sdb1 /mnt/suid -
-
nofail:-
nofail: マウントに失敗してもエラーを発生させず、警告だけを出力します。通常はネットワークドライブなどで使用されます。
mount -o nofail /dev/sdc1 /mnt/network-drive -
その他の一般的なオプション
-
defaults: 一般的なデフォルトのマウントオプションを使用します(rw, suid, dev, exec, auto, nouser, asyncの組み合わせ)。 -
auto/noauto:autoはシステム起動時に自動的にマウントします。noautoは手動でマウントする必要があることを示します。 -
user/nouser:userは一般ユーザーがマウントとアンマウントを許可します。nouserは root 以外のユーザーがマウントできないことを示します。 -
async/sync:asyncは非同期書き込みを許可します(速度向上が見込まれますが、データの損失が発生する可能性があります)。syncは同期書き込みを行います(安全ですが、パフォーマンスが低下する場合があります)。
これらのオプションは、mount コマンドで直接指定する他に、/etc/fstab ファイルに記述して永続的に設定することもできます。適切なオプションを選択して、システムやデータのセキュリティとパフォーマンスを調整することが重要です。